public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] virtio_pci: Wait for legacy device to be reset
@ 2023-04-11  1:38 Angus Chen
  2023-04-11  1:47 ` Angus Chen
                   ` (3 more replies)
  0 siblings, 4 replies; 22+ messages in thread
From: Angus Chen @ 2023-04-11  1:38 UTC (permalink / raw)
  To: mst, jasowang; +Cc: virtualization, linux-kernel, Angus Chen

We read the status of device after reset,
It is not guaranteed that the device be reseted successfully.
We can use a while loop to make sure that,like the modern device did.
The spec is not request it ,but it work.

Signed-off-by: Angus Chen <angus.chen@jaguarmicro.com>
---
 drivers/virtio/virtio_pci_legacy.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/virtio/virtio_pci_legacy.c b/drivers/virtio/virtio_pci_legacy.c
index 2257f1b3d8ae..f2d241563e4f 100644
--- a/drivers/virtio/virtio_pci_legacy.c
+++ b/drivers/virtio/virtio_pci_legacy.c
@@ -14,6 +14,7 @@
  *  Michael S. Tsirkin <mst@redhat.com>
  */
 
+#include <linux/delay.h>
 #include "linux/virtio_pci_legacy.h"
 #include "virtio_pci_common.h"
 
@@ -97,7 +98,8 @@ static void vp_reset(struct virtio_device *vdev)
 	vp_legacy_set_status(&vp_dev->ldev, 0);
 	/* Flush out the status write, and flush in device writes,
 	 * including MSi-X interrupts, if any. */
-	vp_legacy_get_status(&vp_dev->ldev);
+	while (vp_legacy_get_status(&vp_dev->ldev))
+		msleep(1);
 	/* Flush pending VQ/configuration callbacks. */
 	vp_synchronize_vectors(vdev);
 }
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 22+ messages in thread

end of thread, other threads:[~2023-04-11 12:11 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-11  1:38 [PATCH] virtio_pci: Wait for legacy device to be reset Angus Chen
2023-04-11  1:47 ` Angus Chen
2023-04-11  2:41 ` Xuan Zhuo
2023-04-11  6:37   ` Angus Chen
2023-04-11  5:24 ` Jason Wang
2023-04-11  6:36   ` Angus Chen
2023-04-11  6:39     ` Jason Wang
2023-04-11  6:44       ` Michael S. Tsirkin
2023-04-11  6:45       ` Angus Chen
2023-04-11  6:47     ` Michael S. Tsirkin
2023-04-11  6:49       ` Angus Chen
2023-04-11  6:55         ` Michael S. Tsirkin
2023-04-11  7:17           ` Angus Chen
2023-04-11  7:21             ` Michael S. Tsirkin
2023-04-11  7:30               ` Angus Chen
2023-04-11 10:15                 ` Michael S. Tsirkin
2023-04-11 10:57                   ` Angus Chen
2023-04-11 11:13                     ` Michael S. Tsirkin
2023-04-11 12:10                       ` Angus Chen
2023-04-11  6:29 ` Michael S. Tsirkin
2023-04-11  6:39   ` Angus Chen
2023-04-11  6:41     ` Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox