diff options
author | Michael Brown <mcb30@ipxe.org> | 2022-09-06 19:30:52 +0100 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2022-09-27 07:32:31 +0200 |
commit | 2423ee233872d07c7607ce26f9225c64b30b0dc3 (patch) | |
tree | eee190e8ef0b4085195e854827dcc1af6dd82f9e /hw/usb/dev-network.c | |
parent | 954cbf7bb53476e99091f9c99a8014af2491f6ef (diff) | |
download | qemu-2423ee233872d07c7607ce26f9225c64b30b0dc3.zip qemu-2423ee233872d07c7607ce26f9225c64b30b0dc3.tar.gz qemu-2423ee233872d07c7607ce26f9225c64b30b0dc3.tar.bz2 |
usbnet: Detect short packets as sent by the xHCI controller
The xHCI controller will ignore the endpoint MTU and so may deliver
packets of any length. Detect short packets as being any packet that
has a length of zero or a length that is not a multiple of the MTU.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Message-Id: <20220906183053.3625472-4-mcb30@ipxe.org>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb/dev-network.c')
-rw-r--r-- | hw/usb/dev-network.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/usb/dev-network.c b/hw/usb/dev-network.c index 155df93..9d83974 100644 --- a/hw/usb/dev-network.c +++ b/hw/usb/dev-network.c @@ -1211,7 +1211,7 @@ static void usb_net_handle_dataout(USBNetState *s, USBPacket *p) s->out_ptr += sz; if (!is_rndis(s)) { - if (p->iov.size < 64) { + if (p->iov.size % 64 || p->iov.size == 0) { qemu_send_packet(qemu_get_queue(s->nic), s->out_buf, s->out_ptr); s->out_ptr = 0; } |