RE: [PATCH] iommufd: Fix wrong hwpt passed to iommufd_auto_response_faults on replace
From: Tian, Kevin
Date: Mon Jul 13 2026 - 02:11:47 EST
> From: Peiyang He <peiyang_he@xxxxxxxxxxxxxxxx>
> 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@xxxxxxxxxxxxxxxx>
ditto not required.
> Fixes: fb21b1568ada ("iommufd: Make attach_handle generic than fault
> specific")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Peiyang He <peiyang_he@xxxxxxxxxxxxxxxx>
Reviewed-by: Kevin Tian <kevin.tian@xxxxxxxxx>