Lines Matching defs:sdev

122 				  struct intel_svm_dev *sdev,
126 struct device_domain_info *info = get_domain_info(sdev->dev);
131 qi_flush_piotlb(sdev->iommu, sdev->did, svm->pasid, address, pages, ih);
133 qi_flush_dev_iotlb_pasid(sdev->iommu, sdev->sid, info->pfsid,
134 svm->pasid, sdev->qdep, address,
139 struct intel_svm_dev *sdev,
149 __flush_svm_range_dev(svm, sdev, start, align >> VTD_PAGE_SHIFT, ih);
157 struct intel_svm_dev *sdev;
160 list_for_each_entry_rcu(sdev, &svm->devs, list)
161 intel_flush_svm_range_dev(svm, sdev, address, pages, ih);
179 struct intel_svm_dev *sdev;
194 list_for_each_entry_rcu(sdev, &svm->devs, list)
195 intel_pasid_tear_down_entry(sdev->iommu, sdev->dev,
209 #define for_each_svm_dev(sdev, svm, d) \
210 list_for_each_entry((sdev), &(svm)->devs, list) \
211 if ((d) != (sdev)->dev) {} else
217 struct intel_svm_dev *d, *sdev = NULL;
244 sdev = d;
252 *rsdev = sdev;
261 struct intel_svm_dev *sdev = NULL;
303 ret = pasid_to_svm_sdev(dev, data->hpasid, &svm, &sdev);
307 if (sdev) {
341 sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
342 if (!sdev) {
346 sdev->dev = dev;
347 sdev->sid = PCI_DEVID(info->bus, info->devfn);
348 sdev->iommu = iommu;
352 sdev->users = 1;
355 ret = intel_iommu_enable_pasid(iommu, sdev->dev);
358 kfree(sdev);
381 kfree(sdev);
387 init_rcu_head(&sdev->rcu);
388 list_add_rcu(&sdev->list, &svm->devs);
402 struct intel_svm_dev *sdev;
410 ret = pasid_to_svm_sdev(dev, pasid, &svm, &sdev);
414 if (sdev) {
416 sdev->users--;
417 if (!sdev->users) {
418 list_del_rcu(&sdev->list);
422 kfree_rcu(sdev, rcu);
470 struct intel_svm_dev *sdev;
514 for_each_svm_dev(sdev, svm, dev) {
515 if (sdev->ops != ops) {
519 sdev->users++;
527 sdev = kzalloc(sizeof(*sdev), GFP_KERNEL);
528 if (!sdev) {
532 sdev->dev = dev;
533 sdev->iommu = iommu;
537 kfree(sdev);
542 sdev->did = FLPT_DEFAULT_DID;
543 sdev->sid = PCI_DEVID(info->bus, info->devfn);
545 sdev->dev_iotlb = 1;
546 sdev->qdep = info->ats_qdep;
547 if (sdev->qdep >= QI_DEV_EIOTLB_MAX_INVS)
548 sdev->qdep = 0;
552 sdev->users = 1;
553 sdev->ops = ops;
554 init_rcu_head(&sdev->rcu);
560 kfree(sdev);
572 kfree(sdev);
587 kfree(sdev);
605 kfree(sdev);
628 kfree(sdev);
632 list_add_rcu(&sdev->list, &svm->devs);
634 sdev->pasid = svm->pasid;
635 sdev->sva.dev = dev;
637 *sd = sdev;
646 struct intel_svm_dev *sdev;
655 ret = pasid_to_svm_sdev(dev, pasid, &svm, &sdev);
659 if (sdev) {
660 sdev->users--;
661 if (!sdev->users) {
662 list_del_rcu(&sdev->list);
673 kfree_rcu(sdev, rcu);
894 struct intel_svm_dev *sdev = NULL;
928 /* No need to find the matching sdev as for bad_req */
951 if (!sdev || sdev->sid != req->rid) {
954 sdev = NULL;
958 sdev = t;
980 if (sdev && !intel_svm_prq_report(sdev->dev, req))
1009 WARN_ON(!sdev);
1010 if (sdev && sdev->ops && sdev->ops->fault_cb) {
1013 sdev->ops->fault_cb(sdev->dev, req->pasid, req->addr,
1018 sdev = NULL;
1078 struct intel_svm_dev *sdev = NULL;
1090 ret = intel_svm_bind_mm(dev, flags, NULL, mm, &sdev);
1093 else if (sdev)
1094 sva = &sdev->sva;
1096 WARN(!sdev, "SVM bind succeeded with no sdev!\n");
1105 struct intel_svm_dev *sdev;
1108 sdev = to_intel_svm_dev(sva);
1109 intel_svm_unbind_mm(sdev->dev, sdev->pasid);
1115 struct intel_svm_dev *sdev;
1119 sdev = to_intel_svm_dev(sva);
1120 pasid = sdev->pasid;
1131 struct intel_svm_dev *sdev = NULL;
1169 ret = pasid_to_svm_sdev(dev, prm->pasid, &svm, &sdev);
1170 if (ret || !sdev) {