[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2] rtl8139: implement 8139cp link status
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] [PATCH v2] rtl8139: implement 8139cp link status |
Date: |
Thu, 13 Sep 2012 13:29:09 +0100 |
On Thu, Sep 13, 2012 at 9:51 AM, Amos Kong <address@hidden> wrote:
> From: Jason Wang <address@hidden>
>
> Add a link status chang callback and change the link status bit in BMSR
> & MSR accordingly. Tested in Linux/Windows guests.
>
> The link status bit of MediaStatus is infered from BasicModeStatus,
> they are reverse.
>
> Signed-off-by: Jason Wang <address@hidden>
> Signed-off-by: Amos Kong <address@hidden>
> ---
> v2: don't add MediaState in RTL8139State to avoid migration trouble
> ---
> hw/rtl8139.c | 19 +++++++++++++++++--
> 1 files changed, 17 insertions(+), 2 deletions(-)
>
> diff --git a/hw/rtl8139.c b/hw/rtl8139.c
> index 844f1b8..fa949ca 100644
> --- a/hw/rtl8139.c
> +++ b/hw/rtl8139.c
> @@ -167,7 +167,7 @@ enum IntrStatusBits {
> PCIErr = 0x8000,
> PCSTimeout = 0x4000,
> RxFIFOOver = 0x40,
> - RxUnderrun = 0x20,
> + RxUnderrun = 0x20, /* Packet Underrun / Link Change */
> RxOverflow = 0x10,
> TxErr = 0x08,
> TxOK = 0x04,
> @@ -3007,7 +3007,7 @@ static uint32_t rtl8139_io_readb(void *opaque, uint8_t
> addr)
> break;
>
> case MediaStatus:
> - ret = 0xd0;
> + ret = 0xd0 | ~(s->BasicModeStatus & 0x0004);
> DPRINTF("MediaStatus read 0x%x\n", ret);
> break;
This does not give any hint that BMSR & 0x4 is the link status
(inverted). I suggest adding an enum like the other constants at the
top of the file:
ret = 0xd0 | (nc->link_down ? MSRLinkDown : 0);
Regarding migration: do we migrate the NetClient->link_down field? If
we only migrate the status register value then the link may actually
be up at the net.c level.
Stefan
[Qemu-devel] [PATCH v3] rtl8139: implement 8139cp link status, Amos Kong, 2012/09/13
[Qemu-devel] [PATCH v4 0/3] net: fix link status, Amos Kong, 2012/09/16
[Qemu-devel] [PATCH v4 1/3] rtl8139: implement 8139cp link status, Amos Kong, 2012/09/16