OSDN Git Service

drm/amdgpu: Verify DMA opearations from device are done
authorAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Wed, 12 May 2021 14:26:47 +0000 (10:26 -0400)
committerAndrey Grodzovsky <andrey.grodzovsky@amd.com>
Thu, 20 May 2021 03:50:28 +0000 (23:50 -0400)
In case device remove is just simualted by sysfs then verify
device doesn't keep doing DMA to the released memory after
pci_remove is done.

Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
Acked-by: Christian König <christian.koenig@amd.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210512142648.666476-16-andrey.grodzovsky@amd.com
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c

index 8db0d72..d8db592 100644 (file)
@@ -1314,7 +1314,13 @@ amdgpu_pci_remove(struct pci_dev *pdev)
        drm_dev_unplug(dev);
        amdgpu_driver_unload_kms(dev);
 
+       /*
+        * Flush any in flight DMA operations from device.
+        * Clear the Bus Master Enable bit and then wait on the PCIe Device
+        * StatusTransactions Pending bit.
+        */
        pci_disable_device(pdev);
+       pci_wait_for_pending_transaction(pdev);
 }
 
 static void