Re: [PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-13 Thread Lu Baolu

Hi Robin,

On 2/9/22 9:52 PM, Robin Murphy wrote:

On 2022-02-08 01:25, Lu Baolu wrote:

The is_attach_deferred iommu_ops callback is a device op. The domain
argument is unnecessary and never used. Remove it to make code clean.

Suggested-by: Robin Murphy 
Signed-off-by: Lu Baolu 
---
  include/linux/iommu.h |  2 +-
  drivers/iommu/amd/amd_iommu.h |  3 +--
  drivers/iommu/amd/iommu.c |  3 +--
  drivers/iommu/amd/iommu_v2.c  |  2 +-
  drivers/iommu/intel/iommu.c   |  3 +--
  drivers/iommu/iommu.c | 15 ++-
  6 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index eb2684f95018..47ca7eca5d7b 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -269,7 +269,7 @@ struct iommu_ops {
  void (*put_resv_regions)(struct device *dev, struct list_head 
*list);

  int (*of_xlate)(struct device *dev, struct of_phandle_args *args);
-    bool (*is_attach_deferred)(struct iommu_domain *domain, struct 
device *dev);

+    bool (*is_attach_deferred)(struct device *dev);
  /* Per device IOMMU features */
  bool (*dev_has_feat)(struct device *dev, enum iommu_dev_features 
f);
diff --git a/drivers/iommu/amd/amd_iommu.h 
b/drivers/iommu/amd/amd_iommu.h

index 416815a525d6..3b2f06b7aca6 100644
--- a/drivers/iommu/amd/amd_iommu.h
+++ b/drivers/iommu/amd/amd_iommu.h
@@ -116,8 +116,7 @@ void amd_iommu_domain_clr_pt_root(struct 
protection_domain *domain)

  extern bool translation_pre_enabled(struct amd_iommu *iommu);
-extern bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
- struct device *dev);
+extern bool amd_iommu_is_attach_deferred(struct device *dev);
  extern int __init add_special_device(u8 type, u8 id, u16 *devid,
   bool cmd_line);
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 461f1844ed1f..37f2fbb4b129 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -2215,8 +2215,7 @@ static void amd_iommu_get_resv_regions(struct 
device *dev,

  list_add_tail(>list, head);
  }
-bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
-  struct device *dev)
+bool amd_iommu_is_attach_deferred(struct device *dev)
  {
  struct iommu_dev_data *dev_data = dev_iommu_priv_get(dev);
diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c
index 58da08cc3d01..7c94ec05d289 100644
--- a/drivers/iommu/amd/iommu_v2.c
+++ b/drivers/iommu/amd/iommu_v2.c
@@ -537,7 +537,7 @@ static int ppr_notifier(struct notifier_block *nb, 
unsigned long e, void *data)

  ret = NOTIFY_DONE;
  /* In kdump kernel pci dev is not initialized yet -> send 
INVALID */

-    if (amd_iommu_is_attach_deferred(NULL, >dev)) {
+    if (amd_iommu_is_attach_deferred(>dev)) {
  amd_iommu_complete_ppr(pdev, iommu_fault->pasid,
 PPR_INVALID, tag);
  goto out;
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 2b5f4e57a8bb..80f1294be634 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -5052,8 +5052,7 @@ intel_iommu_dev_disable_feat(struct device *dev, 
enum iommu_dev_features feat)

  }
  }
-static bool intel_iommu_is_attach_deferred(struct iommu_domain *domain,
-   struct device *dev)
+static bool intel_iommu_is_attach_deferred(struct device *dev)
  {
  return attach_deferred(dev);


Seems like there's no need to wrap this now?


I just realized that I have cleaned this up in this patch.

https://lore.kernel.org/linux-iommu/20220207064142.1092846-7-baolu...@linux.intel.com/

Best regards,
baolu
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-09 Thread Lu Baolu

On 2/9/22 9:52 PM, Robin Murphy wrote:

diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 2b5f4e57a8bb..80f1294be634 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -5052,8 +5052,7 @@ intel_iommu_dev_disable_feat(struct device *dev, 
enum iommu_dev_features feat)

  }
  }
-static bool intel_iommu_is_attach_deferred(struct iommu_domain *domain,
-   struct device *dev)
+static bool intel_iommu_is_attach_deferred(struct device *dev)
  {
  return attach_deferred(dev);


Seems like there's no need to wrap this now?


Yes. It's pointless.

Best regards,
baolu

___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Re: [PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-09 Thread Robin Murphy

On 2022-02-08 01:25, Lu Baolu wrote:

The is_attach_deferred iommu_ops callback is a device op. The domain
argument is unnecessary and never used. Remove it to make code clean.

Suggested-by: Robin Murphy 
Signed-off-by: Lu Baolu 
---
  include/linux/iommu.h |  2 +-
  drivers/iommu/amd/amd_iommu.h |  3 +--
  drivers/iommu/amd/iommu.c |  3 +--
  drivers/iommu/amd/iommu_v2.c  |  2 +-
  drivers/iommu/intel/iommu.c   |  3 +--
  drivers/iommu/iommu.c | 15 ++-
  6 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index eb2684f95018..47ca7eca5d7b 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -269,7 +269,7 @@ struct iommu_ops {
void (*put_resv_regions)(struct device *dev, struct list_head *list);
  
  	int (*of_xlate)(struct device *dev, struct of_phandle_args *args);

-   bool (*is_attach_deferred)(struct iommu_domain *domain, struct device 
*dev);
+   bool (*is_attach_deferred)(struct device *dev);
  
  	/* Per device IOMMU features */

bool (*dev_has_feat)(struct device *dev, enum iommu_dev_features f);
diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h
index 416815a525d6..3b2f06b7aca6 100644
--- a/drivers/iommu/amd/amd_iommu.h
+++ b/drivers/iommu/amd/amd_iommu.h
@@ -116,8 +116,7 @@ void amd_iommu_domain_clr_pt_root(struct protection_domain 
*domain)
  
  
  extern bool translation_pre_enabled(struct amd_iommu *iommu);

-extern bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
-struct device *dev);
+extern bool amd_iommu_is_attach_deferred(struct device *dev);
  extern int __init add_special_device(u8 type, u8 id, u16 *devid,
 bool cmd_line);
  
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c

index 461f1844ed1f..37f2fbb4b129 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -2215,8 +2215,7 @@ static void amd_iommu_get_resv_regions(struct device *dev,
list_add_tail(>list, head);
  }
  
-bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,

- struct device *dev)
+bool amd_iommu_is_attach_deferred(struct device *dev)
  {
struct iommu_dev_data *dev_data = dev_iommu_priv_get(dev);
  
diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c

index 58da08cc3d01..7c94ec05d289 100644
--- a/drivers/iommu/amd/iommu_v2.c
+++ b/drivers/iommu/amd/iommu_v2.c
@@ -537,7 +537,7 @@ static int ppr_notifier(struct notifier_block *nb, unsigned 
long e, void *data)
ret = NOTIFY_DONE;
  
  	/* In kdump kernel pci dev is not initialized yet -> send INVALID */

-   if (amd_iommu_is_attach_deferred(NULL, >dev)) {
+   if (amd_iommu_is_attach_deferred(>dev)) {
amd_iommu_complete_ppr(pdev, iommu_fault->pasid,
   PPR_INVALID, tag);
goto out;
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 2b5f4e57a8bb..80f1294be634 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -5052,8 +5052,7 @@ intel_iommu_dev_disable_feat(struct device *dev, enum 
iommu_dev_features feat)
}
  }
  
-static bool intel_iommu_is_attach_deferred(struct iommu_domain *domain,

-  struct device *dev)
+static bool intel_iommu_is_attach_deferred(struct device *dev)
  {
return attach_deferred(dev);


Seems like there's no need to wrap this now?

Robin.


  }
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index de593a9cc09c..3dff30ddebdd 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -825,13 +825,12 @@ static int iommu_create_device_direct_mappings(struct 
iommu_group *group,
return ret;
  }
  
-static bool iommu_is_attach_deferred(struct iommu_domain *domain,

-struct device *dev)
+static bool iommu_is_attach_deferred(struct device *dev)
  {
const struct iommu_ops *ops = dev_iommu_ops(dev);
  
  	if (ops->is_attach_deferred)

-   return ops->is_attach_deferred(domain, dev);
+   return ops->is_attach_deferred(dev);
  
  	return false;

  }
@@ -888,7 +887,7 @@ int iommu_group_add_device(struct iommu_group *group, 
struct device *dev)
  
  	mutex_lock(>mutex);

list_add_tail(>list, >devices);
-   if (group->domain  && !iommu_is_attach_deferred(group->domain, dev))
+   if (group->domain  && !iommu_is_attach_deferred(dev))
ret = __iommu_attach_device(group->domain, dev);
mutex_unlock(>mutex);
if (ret)
@@ -1743,7 +1742,7 @@ static int iommu_group_do_dma_attach(struct device *dev, 
void *data)
struct iommu_domain *domain = data;
int ret = 0;
  
-	if (!iommu_is_attach_deferred(domain, dev))

+   if (!iommu_is_attach_deferred(dev))
ret = 

Re: [PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-09 Thread Jason Gunthorpe via iommu
On Tue, Feb 08, 2022 at 09:25:57AM +0800, Lu Baolu wrote:
> The is_attach_deferred iommu_ops callback is a device op. The domain
> argument is unnecessary and never used. Remove it to make code clean.
> 
> Suggested-by: Robin Murphy 
> Signed-off-by: Lu Baolu 
> ---
>  include/linux/iommu.h |  2 +-
>  drivers/iommu/amd/amd_iommu.h |  3 +--
>  drivers/iommu/amd/iommu.c |  3 +--
>  drivers/iommu/amd/iommu_v2.c  |  2 +-
>  drivers/iommu/intel/iommu.c   |  3 +--
>  drivers/iommu/iommu.c | 15 ++-
>  6 files changed, 11 insertions(+), 17 deletions(-)

Reviewed-by: Jason Gunthorpe 

Jason
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


Re: [PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-08 Thread Christoph Hellwig
Looks good,

Reviewed-by: Christoph Hellwig 
___
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu


[PATCH v2 08/10] iommu: Remove unused argument in is_attach_deferred

2022-02-07 Thread Lu Baolu
The is_attach_deferred iommu_ops callback is a device op. The domain
argument is unnecessary and never used. Remove it to make code clean.

Suggested-by: Robin Murphy 
Signed-off-by: Lu Baolu 
---
 include/linux/iommu.h |  2 +-
 drivers/iommu/amd/amd_iommu.h |  3 +--
 drivers/iommu/amd/iommu.c |  3 +--
 drivers/iommu/amd/iommu_v2.c  |  2 +-
 drivers/iommu/intel/iommu.c   |  3 +--
 drivers/iommu/iommu.c | 15 ++-
 6 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/include/linux/iommu.h b/include/linux/iommu.h
index eb2684f95018..47ca7eca5d7b 100644
--- a/include/linux/iommu.h
+++ b/include/linux/iommu.h
@@ -269,7 +269,7 @@ struct iommu_ops {
void (*put_resv_regions)(struct device *dev, struct list_head *list);
 
int (*of_xlate)(struct device *dev, struct of_phandle_args *args);
-   bool (*is_attach_deferred)(struct iommu_domain *domain, struct device 
*dev);
+   bool (*is_attach_deferred)(struct device *dev);
 
/* Per device IOMMU features */
bool (*dev_has_feat)(struct device *dev, enum iommu_dev_features f);
diff --git a/drivers/iommu/amd/amd_iommu.h b/drivers/iommu/amd/amd_iommu.h
index 416815a525d6..3b2f06b7aca6 100644
--- a/drivers/iommu/amd/amd_iommu.h
+++ b/drivers/iommu/amd/amd_iommu.h
@@ -116,8 +116,7 @@ void amd_iommu_domain_clr_pt_root(struct protection_domain 
*domain)
 
 
 extern bool translation_pre_enabled(struct amd_iommu *iommu);
-extern bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
-struct device *dev);
+extern bool amd_iommu_is_attach_deferred(struct device *dev);
 extern int __init add_special_device(u8 type, u8 id, u16 *devid,
 bool cmd_line);
 
diff --git a/drivers/iommu/amd/iommu.c b/drivers/iommu/amd/iommu.c
index 461f1844ed1f..37f2fbb4b129 100644
--- a/drivers/iommu/amd/iommu.c
+++ b/drivers/iommu/amd/iommu.c
@@ -2215,8 +2215,7 @@ static void amd_iommu_get_resv_regions(struct device *dev,
list_add_tail(>list, head);
 }
 
-bool amd_iommu_is_attach_deferred(struct iommu_domain *domain,
- struct device *dev)
+bool amd_iommu_is_attach_deferred(struct device *dev)
 {
struct iommu_dev_data *dev_data = dev_iommu_priv_get(dev);
 
diff --git a/drivers/iommu/amd/iommu_v2.c b/drivers/iommu/amd/iommu_v2.c
index 58da08cc3d01..7c94ec05d289 100644
--- a/drivers/iommu/amd/iommu_v2.c
+++ b/drivers/iommu/amd/iommu_v2.c
@@ -537,7 +537,7 @@ static int ppr_notifier(struct notifier_block *nb, unsigned 
long e, void *data)
ret = NOTIFY_DONE;
 
/* In kdump kernel pci dev is not initialized yet -> send INVALID */
-   if (amd_iommu_is_attach_deferred(NULL, >dev)) {
+   if (amd_iommu_is_attach_deferred(>dev)) {
amd_iommu_complete_ppr(pdev, iommu_fault->pasid,
   PPR_INVALID, tag);
goto out;
diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c
index 2b5f4e57a8bb..80f1294be634 100644
--- a/drivers/iommu/intel/iommu.c
+++ b/drivers/iommu/intel/iommu.c
@@ -5052,8 +5052,7 @@ intel_iommu_dev_disable_feat(struct device *dev, enum 
iommu_dev_features feat)
}
 }
 
-static bool intel_iommu_is_attach_deferred(struct iommu_domain *domain,
-  struct device *dev)
+static bool intel_iommu_is_attach_deferred(struct device *dev)
 {
return attach_deferred(dev);
 }
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index de593a9cc09c..3dff30ddebdd 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -825,13 +825,12 @@ static int iommu_create_device_direct_mappings(struct 
iommu_group *group,
return ret;
 }
 
-static bool iommu_is_attach_deferred(struct iommu_domain *domain,
-struct device *dev)
+static bool iommu_is_attach_deferred(struct device *dev)
 {
const struct iommu_ops *ops = dev_iommu_ops(dev);
 
if (ops->is_attach_deferred)
-   return ops->is_attach_deferred(domain, dev);
+   return ops->is_attach_deferred(dev);
 
return false;
 }
@@ -888,7 +887,7 @@ int iommu_group_add_device(struct iommu_group *group, 
struct device *dev)
 
mutex_lock(>mutex);
list_add_tail(>list, >devices);
-   if (group->domain  && !iommu_is_attach_deferred(group->domain, dev))
+   if (group->domain  && !iommu_is_attach_deferred(dev))
ret = __iommu_attach_device(group->domain, dev);
mutex_unlock(>mutex);
if (ret)
@@ -1743,7 +1742,7 @@ static int iommu_group_do_dma_attach(struct device *dev, 
void *data)
struct iommu_domain *domain = data;
int ret = 0;
 
-   if (!iommu_is_attach_deferred(domain, dev))
+   if (!iommu_is_attach_deferred(dev))
ret = __iommu_attach_device(domain, dev);
 
return ret;
@@ -2018,9 +2017,7 @@