diff mbox series

[V2,7/7] rtl8193: switch to use qemu_receive_packet() for loopback

Message ID 20210302055500.51954-9-jasowang@redhat.com
State New
Headers show
Series Detect reentrant RX casued by loopback | expand

Commit Message

Jason Wang March 2, 2021, 5:54 a.m. UTC
From: Alexander Bulekov <alxndr@bu.edu>

This patch switches to use qemu_receive_packet() which can detect
reentrancy and return early.

Buglink: https://bugs.launchpad.net/qemu/+bug/1910826
Signed-off-by: Alexander Bulekov <alxndr@bu.edu>
---
 hw/net/rtl8139.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

P J P March 2, 2021, 6:39 a.m. UTC | #1
+-- On Tue, 2 Mar 2021, Jason Wang wrote --+
|          DPRINTF("+++ transmit loopback mode\n");
| -        rtl8139_do_receive(qemu_get_queue(s->nic), buf, size, do_interrupt);
| +        qemu_receive_packet(qemu_get_queue(s->nic), buf, size);
|  
...
|[PATCH V2 7/7] rtl8193: switch to use qemu_receive_packet() for loopback

* Patch 'V2' need not be here.

Thank you.
--
 - P J P
8685 545E B54C 486B C6EB 271E E285 8B5A F050 DE8D
Jason Wang March 2, 2021, 6:52 a.m. UTC | #2
On 2021/3/2 2:39 下午, P J P wrote:
> +-- On Tue, 2 Mar 2021, Jason Wang wrote --+
> |          DPRINTF("+++ transmit loopback mode\n");
> | -        rtl8139_do_receive(qemu_get_queue(s->nic), buf, size, do_interrupt);
> | +        qemu_receive_packet(qemu_get_queue(s->nic), buf, size);
> |
> ...
> |[PATCH V2 7/7] rtl8193: switch to use qemu_receive_packet() for loopback
>
> * Patch 'V2' need not be here.
>
> Thank you.


Right, looks like a stale patch in the directory.

Will not apply this one when mergeing the series.

Thanks


> --
>   - P J P
> 8685 545E B54C 486B C6EB 271E E285 8B5A F050 DE8D
diff mbox series

Patch

diff --git a/hw/net/rtl8139.c b/hw/net/rtl8139.c
index 4675ac878e..90b4fc63ce 100644
--- a/hw/net/rtl8139.c
+++ b/hw/net/rtl8139.c
@@ -1795,7 +1795,7 @@  static void rtl8139_transfer_frame(RTL8139State *s, uint8_t *buf, int size,
         }
 
         DPRINTF("+++ transmit loopback mode\n");
-        rtl8139_do_receive(qemu_get_queue(s->nic), buf, size, do_interrupt);
+        qemu_receive_packet(qemu_get_queue(s->nic), buf, size);
 
         if (iov) {
             g_free(buf2);