From df084f161685c81924038712c8b701d79a29a7b5 Mon Sep 17 00:00:00 2001 From: Tianchen Ding Date: Fri, 29 Aug 2025 14:25:10 +0800 Subject: [PATCH] anolis: conditionally revert "virtio_pci: Support surprise removal of virtio pci device" ANBZ: #1494 This reverts commit 43bb40c5b92659966bdf4bfe584fde0a3575a049 only when module param "anolis_no_surp_rm_break" is set to true. This is to workaround for hung issues of some nvidia devices when doing surprise removal, and will be removed after nvidia fix the root cause. Signed-off-by: Tianchen Ding --- drivers/virtio/virtio_pci_common.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/drivers/virtio/virtio_pci_common.c b/drivers/virtio/virtio_pci_common.c index 64dfa54d702f..7c3683bf375b 100644 --- a/drivers/virtio/virtio_pci_common.c +++ b/drivers/virtio/virtio_pci_common.c @@ -24,6 +24,11 @@ MODULE_PARM_DESC(force_legacy, "Force legacy mode for transitional virtio 1 devices"); #endif +static bool anolis_no_surp_rm_break; +module_param(anolis_no_surp_rm_break, bool, 0644); +MODULE_PARM_DESC(anolis_no_surp_rm_break, + "Anolis workaround: set true to workaround surprise removal issue."); + /* wait for pending irq handlers */ void vp_synchronize_vectors(struct virtio_device *vdev) { @@ -590,7 +595,7 @@ static void virtio_pci_remove(struct pci_dev *pci_dev) * Device is marked broken on surprise removal so that virtio upper * layers can abort any ongoing operation. */ - if (!pci_device_is_present(pci_dev)) + if (!anolis_no_surp_rm_break && !pci_device_is_present(pci_dev)) virtio_break_device(&vp_dev->vdev); pci_disable_sriov(pci_dev); -- Gitee