* [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace
@ 2026-07-10 12:29 Peiyang He
2026-07-13 6:11 ` Tian, Kevin
2026-07-13 16:53 ` Jason Gunthorpe
0 siblings, 2 replies; 3+ messages in thread
From: Peiyang He @ 2026-07-10 12:29 UTC (permalink / raw)
To: jgg, kevin.tian
Cc: joro, will, iommu, robin.murphy, linux-kernel, stable, nicolinc,
Peiyang He
iommufd_hwpt_replace_device() calls:
iommufd_auto_response_faults(hwpt, old_handle);
passing the *new* hwpt together with the handle of
the device's *old* domain. This should be a parameter mismatch:
1. Semantically, iommufd_auto_response_faults(x, handle) scans
x->fault's deliver list and response xarray for groups matching
"handle". A group is queued under the hwpt that was attached at
fault-delivery time. old_handle is fetched *before* the domain switch,
so its group lives on old->fault, not on the new hwpt->fault.
2. Historically, the first argument was "old". The routine was
introduced by commit b7d8833677ba ("iommufd: Fault-capable hwpt
attach/detach/replace") as __fault_domain_replace_dev() in
fault.c, correctly calling iommufd_auto_response_faults(old, curr).
Commit fb21b1568ada ("iommufd: Make attach_handle generic than
fault specific") moved this into iommufd_hwpt_replace_device() in
device.c and swapped it to "hwpt". This should be a refactor regression,
not an intentional change.
Fix this by passing "old" instead.
Reported-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
Fixes: fb21b1568ada ("iommufd: Make attach_handle generic than fault specific")
Cc: stable@vger.kernel.org
Signed-off-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
---
drivers/iommu/iommufd/device.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iommu/iommufd/device.c b/drivers/iommu/iommufd/device.c
index 170a7005f0bc..2895e5370910 100644
--- a/drivers/iommu/iommufd/device.c
+++ b/drivers/iommu/iommufd/device.c
@@ -589,7 +589,7 @@ static int iommufd_hwpt_replace_device(struct iommufd_device *idev,
if (rc)
goto out_free_handle;
- iommufd_auto_response_faults(hwpt, old_handle);
+ iommufd_auto_response_faults(old, old_handle);
kfree(old_handle);
return 0;
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
--
2.43.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace
2026-07-10 12:29 [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace Peiyang He
@ 2026-07-13 6:11 ` Tian, Kevin
2026-07-13 16:53 ` Jason Gunthorpe
1 sibling, 0 replies; 3+ messages in thread
From: Tian, Kevin @ 2026-07-13 6:11 UTC (permalink / raw)
To: Peiyang He, jgg
Cc: joro, will, iommu, robin.murphy, linux-kernel, stable, nicolinc
> From: Peiyang He <peiyang_he@smail.nju.edu.cn>
> Sent: Friday, July 10, 2026 8:30 PM
>
> iommufd_hwpt_replace_device() calls:
>
> iommufd_auto_response_faults(hwpt, old_handle);
>
> passing the *new* hwpt together with the handle of
> the device's *old* domain. This should be a parameter mismatch:
>
> 1. Semantically, iommufd_auto_response_faults(x, handle) scans
> x->fault's deliver list and response xarray for groups matching
> "handle". A group is queued under the hwpt that was attached at
> fault-delivery time. old_handle is fetched *before* the domain switch,
> so its group lives on old->fault, not on the new hwpt->fault.
>
> 2. Historically, the first argument was "old". The routine was
> introduced by commit b7d8833677ba ("iommufd: Fault-capable hwpt
> attach/detach/replace") as __fault_domain_replace_dev() in
> fault.c, correctly calling iommufd_auto_response_faults(old, curr).
> Commit fb21b1568ada ("iommufd: Make attach_handle generic than
> fault specific") moved this into iommufd_hwpt_replace_device() in
> device.c and swapped it to "hwpt". This should be a refactor regression,
> not an intentional change.
>
> Fix this by passing "old" instead.
>
> Reported-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
ditto not required.
> Fixes: fb21b1568ada ("iommufd: Make attach_handle generic than fault
> specific")
> Cc: stable@vger.kernel.org
> Signed-off-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace
2026-07-10 12:29 [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace Peiyang He
2026-07-13 6:11 ` Tian, Kevin
@ 2026-07-13 16:53 ` Jason Gunthorpe
1 sibling, 0 replies; 3+ messages in thread
From: Jason Gunthorpe @ 2026-07-13 16:53 UTC (permalink / raw)
To: Peiyang He
Cc: kevin.tian, joro, will, iommu, robin.murphy, linux-kernel,
stable, nicolinc
On Fri, Jul 10, 2026 at 08:29:52PM +0800, Peiyang He wrote:
> iommufd_hwpt_replace_device() calls:
>
> iommufd_auto_response_faults(hwpt, old_handle);
>
> passing the *new* hwpt together with the handle of
> the device's *old* domain. This should be a parameter mismatch:
>
> 1. Semantically, iommufd_auto_response_faults(x, handle) scans
> x->fault's deliver list and response xarray for groups matching
> "handle". A group is queued under the hwpt that was attached at
> fault-delivery time. old_handle is fetched *before* the domain switch,
> so its group lives on old->fault, not on the new hwpt->fault.
>
> 2. Historically, the first argument was "old". The routine was
> introduced by commit b7d8833677ba ("iommufd: Fault-capable hwpt
> attach/detach/replace") as __fault_domain_replace_dev() in
> fault.c, correctly calling iommufd_auto_response_faults(old, curr).
> Commit fb21b1568ada ("iommufd: Make attach_handle generic than
> fault specific") moved this into iommufd_hwpt_replace_device() in
> device.c and swapped it to "hwpt". This should be a refactor regression,
> not an intentional change.
>
> Fix this by passing "old" instead.
>
> Reported-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
> Fixes: fb21b1568ada ("iommufd: Make attach_handle generic than fault specific")
> Cc: stable@vger.kernel.org
> Signed-off-by: Peiyang He <peiyang_he@smail.nju.edu.cn>
> ---
> drivers/iommu/iommufd/device.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
Applied
Thanks,
Jason
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-13 16:53 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-10 12:29 [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace Peiyang He
2026-07-13 6:11 ` Tian, Kevin
2026-07-13 16:53 ` Jason Gunthorpe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox