qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [FIX] ne2000 when vm stopped - network hangs after loadvm


From: Juergen Pfennig
Subject: [Qemu-devel] [FIX] ne2000 when vm stopped - network hangs after loadvm
Date: Thu, 9 Feb 2006 13:08:30 +0100
User-agent: KMail/1.7.2

Hi,
there is still a little problem with ne2000:

(1) when the vm is in stopped state packets are still received
(2) this can fill the receive buffer before savevm ...
(3) when restarting qemu with loadvm the buffer is still full
(4) the guest OS does not get an int, so it does not know that
    data is in the buffer
(5) new data will be discarded (buffer full) - the guest OS 
    waits forever.
(6) this make windows (users) unhappy.

One possible solution (but not a perfect one) is to block
receiving when the vm is stopped:

8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---8<---
static void ne2000_receive(void *opaque, const uint8_t *buf, int size)
{
        // ... some lines skipped

    if (s->cmd & E8390_STOP || ne2000_buffer_full(s) || vm_running == 0)
        return;

        // ... some lines skipped
}
>8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8--->8---

Juergen






reply via email to

[Prev in Thread] Current Thread [Next in Thread]