diff mbox series

pc-bios/s390-ccw: Re-initialize receive queue index before each boot attempt

Message ID 20241111131120.317796-1-thuth@redhat.com (mailing list archive)
State New
Headers show
Series pc-bios/s390-ccw: Re-initialize receive queue index before each boot attempt | expand

Commit Message

Thomas Huth Nov. 11, 2024, 1:11 p.m. UTC
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).

Signed-off-by: Thomas Huth <thuth@redhat.com>
---
 pc-bios/s390-ccw/virtio-net.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Jared Rossi Nov. 11, 2024, 1:34 p.m. UTC | #1
On 11/11/24 8:11 AM, Thomas Huth wrote:
> 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).
>
> Signed-off-by: Thomas Huth <thuth@redhat.com>
> ---
>   pc-bios/s390-ccw/virtio-net.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> 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);
>   

Thanks Thomas!

Reviewed-by: Jared Rossi <jrossi@linux.ibm.com>
diff mbox series

Patch

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);