@@ -25,7 +25,6 @@ struct arm_smmu_mmu_notifier {
25
25
#define mn_to_smmu (mn ) container_of(mn, struct arm_smmu_mmu_notifier, mn)
26
26
27
27
struct arm_smmu_bond {
28
- struct iommu_sva sva ;
29
28
struct mm_struct * mm ;
30
29
struct arm_smmu_mmu_notifier * smmu_mn ;
31
30
struct list_head list ;
@@ -376,8 +375,7 @@ static void arm_smmu_mmu_notifier_put(struct arm_smmu_mmu_notifier *smmu_mn)
376
375
arm_smmu_free_shared_cd (cd );
377
376
}
378
377
379
- static struct iommu_sva *
380
- __arm_smmu_sva_bind (struct device * dev , struct mm_struct * mm )
378
+ static int __arm_smmu_sva_bind (struct device * dev , struct mm_struct * mm )
381
379
{
382
380
int ret ;
383
381
struct arm_smmu_bond * bond ;
@@ -386,7 +384,7 @@ __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm)
386
384
struct arm_smmu_domain * smmu_domain = to_smmu_domain (domain );
387
385
388
386
if (!master || !master -> sva_enabled )
389
- return ERR_PTR ( - ENODEV ) ;
387
+ return - ENODEV ;
390
388
391
389
/* If bind() was already called for this {dev, mm} pair, reuse it. */
392
390
list_for_each_entry (bond , & master -> bonds , list ) {
@@ -398,10 +396,9 @@ __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm)
398
396
399
397
bond = kzalloc (sizeof (* bond ), GFP_KERNEL );
400
398
if (!bond )
401
- return ERR_PTR ( - ENOMEM ) ;
399
+ return - ENOMEM ;
402
400
403
401
bond -> mm = mm ;
404
- bond -> sva .dev = dev ;
405
402
refcount_set (& bond -> refs , 1 );
406
403
407
404
bond -> smmu_mn = arm_smmu_mmu_notifier_get (smmu_domain , mm );
@@ -411,11 +408,11 @@ __arm_smmu_sva_bind(struct device *dev, struct mm_struct *mm)
411
408
}
412
409
413
410
list_add (& bond -> list , & master -> bonds );
414
- return & bond -> sva ;
411
+ return 0 ;
415
412
416
413
err_free_bond :
417
414
kfree (bond );
418
- return ERR_PTR ( ret ) ;
415
+ return ret ;
419
416
}
420
417
421
418
bool arm_smmu_sva_supported (struct arm_smmu_device * smmu )
@@ -593,13 +590,10 @@ static int arm_smmu_sva_set_dev_pasid(struct iommu_domain *domain,
593
590
struct device * dev , ioasid_t id )
594
591
{
595
592
int ret = 0 ;
596
- struct iommu_sva * handle ;
597
593
struct mm_struct * mm = domain -> mm ;
598
594
599
595
mutex_lock (& sva_lock );
600
- handle = __arm_smmu_sva_bind (dev , mm );
601
- if (IS_ERR (handle ))
602
- ret = PTR_ERR (handle );
596
+ ret = __arm_smmu_sva_bind (dev , mm );
603
597
mutex_unlock (& sva_lock );
604
598
605
599
return ret ;
0 commit comments