Patchwork RTL8139 hotplug is broken on windows 2008 sp2.

login
register
mail settings
Submitter bo.novell@gmail.com
Date Feb. 14, 2012, 3:10 a.m.
Message ID <1329189019-13710-1-git-send-email-bo.novell@gmail.com>
Download mbox | patch
Permalink /patch/141142/
State New
Headers show

Comments

bo.novell@gmail.com - Feb. 14, 2012, 3:10 a.m.
From: Bo Yang <boyang@suse.com>

 Windows 2008 sp2 tries to read mac address from phys
 and then write the read value into it. This patch
 is a workaround for the issue.

Signed-off-by: Bo Yang <boyang@suse.com>
---
 hw/rtl8139.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Andreas Färber - May 9, 2012, 8:20 p.m.
Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
> From: Bo Yang <boyang@suse.com>
> 
>  Windows 2008 sp2 tries to read mac address from phys
>  and then write the read value into it. This patch
>  is a workaround for the issue.
> 
> Signed-off-by: Bo Yang <boyang@suse.com>
> ---
>  hw/rtl8139.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)

Ping! Who feels responsible for reviewing this?
It would be a candidate for 1.1 and 0.15.x (BNC#722643).

Only issue I see is that the subject could be improved (saying what it
does rather than what was broken before, e.g. "rtl8139: Init phys with
MAC address").

Regards,
Andreas

> diff --git a/hw/rtl8139.c b/hw/rtl8139.c
> index 1668390..074a14a 100644
> --- a/hw/rtl8139.c
> +++ b/hw/rtl8139.c
> @@ -3476,6 +3476,8 @@ static int pci_rtl8139_init(PCIDevice *dev)
>      s->eeprom.contents[7] = s->conf.macaddr.a[0] | s->conf.macaddr.a[1] << 8;
>      s->eeprom.contents[8] = s->conf.macaddr.a[2] | s->conf.macaddr.a[3] << 8;
>      s->eeprom.contents[9] = s->conf.macaddr.a[4] | s->conf.macaddr.a[5] << 8;
> +    /* workaround broken windows 2008 sp2 driver. */
> +    memcpy(s->phys, s->conf.macaddr.a, 6);
>  
>      s->nic = qemu_new_nic(&net_rtl8139_info, &s->conf,
>                            object_get_typename(OBJECT(dev)), dev->qdev.id, s);
Alexander Graf - May 9, 2012, 9 p.m.
On 09.05.2012, at 22:20, Andreas Färber wrote:

> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>> From: Bo Yang <boyang@suse.com>
>> 
>> Windows 2008 sp2 tries to read mac address from phys
>> and then write the read value into it. This patch
>> is a workaround for the issue.
>> 
>> Signed-off-by: Bo Yang <boyang@suse.com>
>> ---
>> hw/rtl8139.c |    2 ++
>> 1 files changed, 2 insertions(+), 0 deletions(-)
> 
> Ping! Who feels responsible for reviewing this?
> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
> 
> Only issue I see is that the subject could be improved (saying what it
> does rather than what was broken before, e.g. "rtl8139: Init phys with
> MAC address").

I thought the real bug was that the reset function didn't get called?


Alex
Andreas Färber - May 9, 2012, 9:05 p.m.
Am 09.05.2012 23:00, schrieb Alexander Graf:
> 
> On 09.05.2012, at 22:20, Andreas Färber wrote:
> 
>> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>>> From: Bo Yang <boyang@suse.com>
>>>
>>> Windows 2008 sp2 tries to read mac address from phys
>>> and then write the read value into it. This patch
>>> is a workaround for the issue.
>>>
>>> Signed-off-by: Bo Yang <boyang@suse.com>
>>> ---
>>> hw/rtl8139.c |    2 ++
>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>
>> Ping! Who feels responsible for reviewing this?
>> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
>>
>> Only issue I see is that the subject could be improved (saying what it
>> does rather than what was broken before, e.g. "rtl8139: Init phys with
>> MAC address").
> 
> I thought the real bug was that the reset function didn't get called?

That was for the e1000 that I was working on (BNC#722958). I believe Bo
tested the combination of both patches?

Andreas
Alexander Graf - May 9, 2012, 9:06 p.m.
On 09.05.2012, at 23:05, Andreas Färber wrote:

> Am 09.05.2012 23:00, schrieb Alexander Graf:
>> 
>> On 09.05.2012, at 22:20, Andreas Färber wrote:
>> 
>>> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>>>> From: Bo Yang <boyang@suse.com>
>>>> 
>>>> Windows 2008 sp2 tries to read mac address from phys
>>>> and then write the read value into it. This patch
>>>> is a workaround for the issue.
>>>> 
>>>> Signed-off-by: Bo Yang <boyang@suse.com>
>>>> ---
>>>> hw/rtl8139.c |    2 ++
>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>> 
>>> Ping! Who feels responsible for reviewing this?
>>> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
>>> 
>>> Only issue I see is that the subject could be improved (saying what it
>>> does rather than what was broken before, e.g. "rtl8139: Init phys with
>>> MAC address").
>> 
>> I thought the real bug was that the reset function didn't get called?
> 
> That was for the e1000 that I was working on (BNC#722958). I believe Bo
> tested the combination of both patches?

IIRC the bug was the same, just that you found the root cause and Bo came up with this patch :).


Alex
Bruce Rogers - May 9, 2012, 9:27 p.m.
>>> On 5/9/2012 at 03:06 PM, Alexander Graf <agraf@suse.de> wrote: 

> On 09.05.2012, at 23:05, Andreas Färber wrote:
> 
>> Am 09.05.2012 23:00, schrieb Alexander Graf:
>>> 
>>> On 09.05.2012, at 22:20, Andreas Färber wrote:
>>> 
>>>> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>>>>> From: Bo Yang <boyang@suse.com>
>>>>> 
>>>>> Windows 2008 sp2 tries to read mac address from phys
>>>>> and then write the read value into it. This patch
>>>>> is a workaround for the issue.
>>>>> 
>>>>> Signed-off-by: Bo Yang <boyang@suse.com>
>>>>> ---
>>>>> hw/rtl8139.c |    2 ++
>>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>> 
>>>> Ping! Who feels responsible for reviewing this?
>>>> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
>>>> 
>>>> Only issue I see is that the subject could be improved (saying what it
>>>> does rather than what was broken before, e.g. "rtl8139: Init phys with
>>>> MAC address").
>>> 
>>> I thought the real bug was that the reset function didn't get called?
>> 
>> That was for the e1000 that I was working on (BNC#722958). I believe Bo
>> tested the combination of both patches?
> 
> IIRC the bug was the same, just that you found the root cause and Bo came up 
> with this patch :).
> 
> 
> Alex

That is my recollection as well.

Bruce
Andreas Färber - May 9, 2012, 9:38 p.m.
Am 09.05.2012 23:27, schrieb Bruce Rogers:
>  >>> On 5/9/2012 at 03:06 PM, Alexander Graf <agraf@suse.de> wrote: 
> 
>> On 09.05.2012, at 23:05, Andreas Färber wrote:
>>
>>> Am 09.05.2012 23:00, schrieb Alexander Graf:
>>>>
>>>> On 09.05.2012, at 22:20, Andreas Färber wrote:
>>>>
>>>>> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>>>>>> From: Bo Yang <boyang@suse.com>
>>>>>>
>>>>>> Windows 2008 sp2 tries to read mac address from phys
>>>>>> and then write the read value into it. This patch
>>>>>> is a workaround for the issue.
>>>>>>
>>>>>> Signed-off-by: Bo Yang <boyang@suse.com>
>>>>>> ---
>>>>>> hw/rtl8139.c |    2 ++
>>>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>>>
>>>>> Ping! Who feels responsible for reviewing this?
>>>>> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
>>>>
>>>> I thought the real bug was that the reset function didn't get called?
>>>
>>> That was for the e1000 that I was working on (BNC#722958). I believe Bo
>>> tested the combination of both patches?
>>
>> IIRC the bug was the same, just that you found the root cause and Bo came up 
>> with this patch :).
> 
> That is my recollection as well.

Even better then, less work.

Bo, in such a case, the patch should've been recalled (by a reply).

Cheers,
Andreas
bo.novell@gmail.com - May 10, 2012, 4:31 p.m.
On 05/10/2012 05:06 AM, Alexander Graf wrote:

> 
> On 09.05.2012, at 23:05, Andreas Färber wrote:
> 
>> Am 09.05.2012 23:00, schrieb Alexander Graf:
>>>
>>> On 09.05.2012, at 22:20, Andreas Färber wrote:
>>>
>>>> Am 14.02.2012 04:10, schrieb bo.novell@gmail.com:
>>>>> From: Bo Yang <boyang@suse.com>
>>>>>
>>>>> Windows 2008 sp2 tries to read mac address from phys
>>>>> and then write the read value into it. This patch
>>>>> is a workaround for the issue.
>>>>>
>>>>> Signed-off-by: Bo Yang <boyang@suse.com>
>>>>> ---
>>>>> hw/rtl8139.c |    2 ++
>>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>>
>>>> Ping! Who feels responsible for reviewing this?
>>>> It would be a candidate for 1.1 and 0.15.x (BNC#722643).
>>>>
>>>> Only issue I see is that the subject could be improved (saying what it
>>>> does rather than what was broken before, e.g. "rtl8139: Init phys with
>>>> MAC address").
>>>
>>> I thought the real bug was that the reset function didn't get called?
>>
>> That was for the e1000 that I was working on (BNC#722958). I believe Bo
>> tested the combination of both patches?
> 
> IIRC the bug was the same, just that you found the root cause and Bo came up with this patch :).


yes.

> 
> 
> Alex
>

Patch

diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index 1668390..074a14a 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -3476,6 +3476,8 @@  static int pci_rtl8139_init(PCIDevice *dev)
     s->eeprom.contents[7] = s->conf.macaddr.a[0] | s->conf.macaddr.a[1] << 8;
     s->eeprom.contents[8] = s->conf.macaddr.a[2] | s->conf.macaddr.a[3] << 8;
     s->eeprom.contents[9] = s->conf.macaddr.a[4] | s->conf.macaddr.a[5] << 8;
+    /* workaround broken windows 2008 sp2 driver. */
+    memcpy(s->phys, s->conf.macaddr.a, 6);
 
     s->nic = qemu_new_nic(&net_rtl8139_info, &s->conf,
                           object_get_typename(OBJECT(dev)), dev->qdev.id, s);