ftgmac100: Fix interrupt status "Packet transmitted on ethernet"
authorCédric Le Goater <clg@kaod.org>
Tue, 1 Sep 2020 12:21:50 +0000 (14:21 +0200)
committerCédric Le Goater <clg@kaod.org>
Tue, 1 Sep 2020 12:21:50 +0000 (14:21 +0200)
The second field of the TX descriptor has a set of flags to choose
when the transmit interrupt is raised : after the packet has been sent
on the ethernet or after it has been moved into the TX FIFO. But we
don't model that today.

Simply raise the "Packet transmitted on ethernet" interrupt status bit
as soon as the packet is sent by QEMU.

Cc: Frederic Konrad <konrad.frederic@yahoo.fr>
Reviewed-by: Joel Stanley <joel@jms.id.au>
Message-Id: <20200819100956.2216690-11-clg@kaod.org>
Signed-off-by: Cédric Le Goater <clg@kaod.org>
hw/net/ftgmac100.c

index 0348fcf45676b0f46e567bab3dc4a8b001c39f75..aa3c05ef988275d990da1f803d808d93fbc7f0a0 100644 (file)
@@ -547,9 +547,7 @@ static void ftgmac100_do_tx(FTGMAC100State *s, uint32_t tx_ring,
             qemu_send_packet(qemu_get_queue(s->nic), s->frame, frame_size);
             ptr = s->frame;
             frame_size = 0;
-            if (flags & FTGMAC100_TXDES1_TXIC) {
-                s->isr |= FTGMAC100_INT_XPKT_ETH;
-            }
+            s->isr |= FTGMAC100_INT_XPKT_ETH;
         }
 
         if (flags & FTGMAC100_TXDES1_TX2FIC) {