qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH] fix for bad macaddr of e1000 in Windows 2003 se


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH] fix for bad macaddr of e1000 in Windows 2003 server with original Microsoft driver
Date: Wed, 15 Jul 2009 15:09:06 +0300
User-agent: Mutt/1.5.19 (2009-01-05)

On Wed, Jul 15, 2009 at 01:08:01PM +0300, Naphtali Sprei wrote:
> The sequence of reading from eeprom is "offset by one" moved because of  
> a false detection
> of a clock cycle after an eeprom reset. Keeping the last clock value  
> after a reset keeps it in sync.
> ---
> hw/e1000.c |    3 +++
> 1 files changed, 3 insertions(+), 0 deletions(-)
>
> diff --git a/hw/e1000.c b/hw/e1000.c
> index 4ac8918..7d7cc2e 100644
> --- a/hw/e1000.c
> +++ b/hw/e1000.c
> @@ -261,7 +261,10 @@ set_eecd(E1000State *s, int index, uint32_t val)
>         return;
>     }
>     if (!(val & E1000_EECD_CS)) {              // rising, no CS (EEPROM  
> reset)
> +        // save/restore old_eecd to avoid false detection of a clock edge
> +        uint32_t keep = s->eecd_state.old_eecd;
>         memset(&s->eecd_state, 0, sizeof s->eecd_state);
> +        s->eecd_state.old_eecd = keep;

Would it be safer to only restore the SK bit?

>         return;
>     }
>     s->eecd_state.val_in <<= 1;
> --
> 1.5.5.6
>
>




reply via email to

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