summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorThomas Huth <thuth@redhat.com>2024-11-11 14:11:20 +0100
committerThomas Huth <thuth@redhat.com>2024-11-18 17:14:35 +0100
commit6ba1f714c00f8839a8df9f643e0058f00da3fd25 (patch)
tree35c7da6df418c94564bdca3558dfb6f55e2e3a8b
parent1056ca1e70dc6e0458238141bcebfb7810cede6d (diff)
downloadfocaccia-qemu-6ba1f714c00f8839a8df9f643e0058f00da3fd25.tar.gz
focaccia-qemu-6ba1f714c00f8839a8df9f643e0058f00da3fd25.zip
pc-bios/s390-ccw: Re-initialize receive queue index before each boot attempt
Now that we can boot from multiple boot devices, we have to make sure
to reinitialize static variables like rx_last_idx to avoid that they
contain garbage data during the second boot attempt (which can lead to
crashes when the code tries to access the wrong ring data).

Message-ID: <20241111131120.317796-1-thuth@redhat.com>
Reviewed-by: Jared Rossi <jrossi@linux.ibm.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
-rw-r--r--pc-bios/s390-ccw/virtio-net.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/pc-bios/s390-ccw/virtio-net.c b/pc-bios/s390-ccw/virtio-net.c
index f9854a22c3..578c89d0c5 100644
--- a/pc-bios/s390-ccw/virtio-net.c
+++ b/pc-bios/s390-ccw/virtio-net.c
@@ -51,6 +51,8 @@ int virtio_net_init(void *mac_addr)
     void *buf;
     int i;
 
+    rx_last_idx = 0;
+
     vdev->guest_features[0] = VIRTIO_NET_F_MAC_BIT;
     virtio_setup_ccw(vdev);