On 1/18/2024 8:46 AM, Baolu Lu wrote:
On 1/17/24 5:00 PM, Ethan Zhao wrote:
+ /*
+ * If the ATS invalidation target device is gone this moment
(surprise
+ * removed, died, no response) don't try this request again.
this
+ * request will not get valid result anymore. but the request
was
+ * already submitted to hardware and we predict to get a ITE in
+ * followed batch of request, if so, it will get handled then.
+ */
+ if (target_pdev && !pci_device_is_present(target_pdev))
+ return -EINVAL;
Again, we should not ignore the error triggered by the current request.
Do not leave it to the next one. The WAIT descriptor is a fence. Handle
everything within its boundary.
We didn't set fence bit to every ATS invalidation wait descriptor,
only the intel_drain_pasid_prq() queue a drain page requests with FN
sit, but that is not called in hotplug removal path.
Thanks,
Ethan
Best regards,
baolu