public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* r8169 regression in 2.6.26.3 vs 2.6.26.2
@ 2008-08-27  9:20 Pascal Terjan
  2008-08-27 10:38 ` Marcus Sundberg
  0 siblings, 1 reply; 6+ messages in thread
From: Pascal Terjan @ 2008-08-27  9:20 UTC (permalink / raw)
  To: linux-kernel, stable; +Cc: Marcus Sundberg

Since updating to 2.6.26.3, networking no longer works on Acer Aspire
One.

PCI config is now always filled with ones.

Reverting "r8169: avoid thrashing PCI conf space above
RTL_GIGA_MAC_VER_06" makes it work again.

The device is 10ec:8136

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8101E
PCI Express Fast Ethernet controller (rev 02)
	Subsystem: Acer Incorporated [ALI] Device 015b
	Flags: bus master, fast devsel, latency 0, IRQ 17
	I/O ports at 3000 [size=256]
	Memory at 31010000 (64-bit, prefetchable) [size=4K]
	Memory at 31000000 (64-bit, prefetchable) [size=64K]
	Expansion ROM at 31020000 [disabled] [size=128K]
	Capabilities: [40] Power Management version 3
	Capabilities: [50] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0
Enable-
	Capabilities: [70] Express Endpoint, MSI 01
	Capabilities: [ac] MSI-X: Enable- Mask- TabSize=2
	Capabilities: [cc] Vital Product Data <?>
	Capabilities: [100] Advanced Error Reporting <?>
	Capabilities: [140] Virtual Channel <?>
	Capabilities: [160] Device Serial Number 00-00-ff-ff-00-00-00-04
	Kernel driver in use: r8169
	Kernel modules: r8169



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: r8169 regression in 2.6.26.3 vs 2.6.26.2
  2008-08-27  9:20 r8169 regression in 2.6.26.3 vs 2.6.26.2 Pascal Terjan
@ 2008-08-27 10:38 ` Marcus Sundberg
  2008-08-27 10:40   ` Pascal Terjan
  0 siblings, 1 reply; 6+ messages in thread
From: Marcus Sundberg @ 2008-08-27 10:38 UTC (permalink / raw)
  To: Pascal Terjan; +Cc: linux-kernel, stable, Francois Romieu

Pascal Terjan wrote:
> Since updating to 2.6.26.3, networking no longer works on Acer Aspire
> One.
> 
> PCI config is now always filled with ones.
> 
> Reverting "r8169: avoid thrashing PCI conf space above
> RTL_GIGA_MAC_VER_06" makes it work again.
> 
> The device is 10ec:8136

Ok, that's obviously not good. I checked the Realtek driver for
8101E (version r8101-1.009.00) and while it doesn't do any
8-bit writes to register 0x82 it does perform 32-bit writes to
register 0x80 (EPHYAR) to communicate with the PHY. I have no
idea what that 8-bit write does except it breaks the chipset in
my LG P300...

How does the kernel identify your chipset upon driver load?
(grep for XID)

//Marcus
-- 
---------------------------------------+--------------------------
   Marcus Sundberg <marcus@ingate.com>  | Firewalls with SIP & NAT
  Software Developer, Ingate Systems AB |  http://www.ingate.com/

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: r8169 regression in 2.6.26.3 vs 2.6.26.2
  2008-08-27 10:38 ` Marcus Sundberg
@ 2008-08-27 10:40   ` Pascal Terjan
  2008-08-27 20:11     ` Francois Romieu
  0 siblings, 1 reply; 6+ messages in thread
From: Pascal Terjan @ 2008-08-27 10:40 UTC (permalink / raw)
  To: Marcus Sundberg; +Cc: linux-kernel, stable, Francois Romieu

Le mercredi 27 août 2008 à 12:38 +0200, Marcus Sundberg a écrit :
> Pascal Terjan wrote:
> > Since updating to 2.6.26.3, networking no longer works on Acer Aspire
> > One.
> > 
> > PCI config is now always filled with ones.
> > 
> > Reverting "r8169: avoid thrashing PCI conf space above
> > RTL_GIGA_MAC_VER_06" makes it work again.
> > 
> > The device is 10ec:8136
> 
> Ok, that's obviously not good. I checked the Realtek driver for
> 8101E (version r8101-1.009.00) and while it doesn't do any
> 8-bit writes to register 0x82 it does perform 32-bit writes to
> register 0x80 (EPHYAR) to communicate with the PHY. I have no
> idea what that 8-bit write does except it breaks the chipset in
> my LG P300...
> 
> How does the kernel identify your chipset upon driver load?
> (grep for XID)

eth0: RTL8169 at 0xe04ee000, 00:1e:68:a0:07:b5, XID 24a00000 IRQ 17



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: r8169 regression in 2.6.26.3 vs 2.6.26.2
  2008-08-27 10:40   ` Pascal Terjan
@ 2008-08-27 20:11     ` Francois Romieu
  2008-08-27 20:44       ` Pascal Terjan
  0 siblings, 1 reply; 6+ messages in thread
From: Francois Romieu @ 2008-08-27 20:11 UTC (permalink / raw)
  To: Pascal Terjan; +Cc: Marcus Sundberg, linux-kernel, stable

Pascal Terjan <pterjan@mandriva.com> :
> Le mercredi 27 ao?t 2008 ? 12:38 +0200, Marcus Sundberg a ?crit :
> > Pascal Terjan wrote:
> > > Since updating to 2.6.26.3, networking no longer works on Acer Aspire
> > > One.
> > > 
> > > PCI config is now always filled with ones.
> > > 
> > > Reverting "r8169: avoid thrashing PCI conf space above
> > > RTL_GIGA_MAC_VER_06" makes it work again.
> > > 
> > > The device is 10ec:8136
[...]
> > How does the kernel identify your chipset upon driver load?
> > (grep for XID)
> 
> eth0: RTL8169 at 0xe04ee000, 00:1e:68:a0:07:b5, XID 24a00000 IRQ 17

As far as I can read rtl8169_get_mac_version, this XID should not match
any known device with 2.6.26.3 and thus fallback to RTL_GIGA_MAC_VER_01
(assuming that rtl8169_init_phy runs after rtl8169_get_mac_version, what
it appears to do so far).

Yes / no / -ECOFFEE ?

On a different topic, I would suggest to try patches #0001 ... #0006
at http://userweb.kernel.org/~romieu/r8169/2.6.27-rc3/20080818/ with
your chipset.

-- 
Ueimor

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: r8169 regression in 2.6.26.3 vs 2.6.26.2
  2008-08-27 20:11     ` Francois Romieu
@ 2008-08-27 20:44       ` Pascal Terjan
  2008-08-29 17:51         ` Pascal Terjan
  0 siblings, 1 reply; 6+ messages in thread
From: Pascal Terjan @ 2008-08-27 20:44 UTC (permalink / raw)
  To: Francois Romieu; +Cc: Marcus Sundberg, linux-kernel, stable

Le mercredi 27 août 2008 à 22:11 +0200, Francois Romieu a écrit :
> Pascal Terjan <pterjan@mandriva.com> :
> > Le mercredi 27 ao?t 2008 ? 12:38 +0200, Marcus Sundberg a ?crit :
> > > Pascal Terjan wrote:
> > > > Since updating to 2.6.26.3, networking no longer works on Acer Aspire
> > > > One.
> > > > 
> > > > PCI config is now always filled with ones.
> > > > 
> > > > Reverting "r8169: avoid thrashing PCI conf space above
> > > > RTL_GIGA_MAC_VER_06" makes it work again.
> > > > 
> > > > The device is 10ec:8136
> [...]
> > > How does the kernel identify your chipset upon driver load?
> > > (grep for XID)
> > 
> > eth0: RTL8169 at 0xe04ee000, 00:1e:68:a0:07:b5, XID 24a00000 IRQ 17
> 
> As far as I can read rtl8169_get_mac_version, this XID should not match
> any known device with 2.6.26.3 and thus fallback to RTL_GIGA_MAC_VER_01
> (assuming that rtl8169_init_phy runs after rtl8169_get_mac_version, what
> it appears to do so far).
> 
> Yes / no / -ECOFFEE ?
> 

Yes I took some time to look at it and now does not understand what's
wrong.

Indeed I get "unknown MAC (27a00600)" so I get RTL_GIGA_MAC_VER_01 which
is <= RTL_GIGA_MAC_VER_06, so it should work fine with or without this
patch. And indeed it seems to work when I rebuild the module, even when
I do not revert the patch.

And by the way, unrelated to this problem, it is written twice for
RTL_GIGA_MAC_VER_02:

=====
        if (tp->mac_version <= RTL_GIGA_MAC_VER_06) {
                dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
                RTL_W8(0x82, 0x01);
        }
[...]
        if (tp->mac_version == RTL_GIGA_MAC_VER_02) {
                dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
                RTL_W8(0x82, 0x01);
=====

To come back to the problem, this patch may not be faulty but I fail to
understand the issue...

- 2.6.26.2 always works
- 2.6.26.3 from my distro always fails
- 2.6.26.3 from my distro with r8169 rebuilt out of the kernel tree but
from the same source and with the same config, gcc, etc, works...

So either it is random I am very unlucky that it always works with one
and always fails with the other or there is some difference that I could
not think about

> On a different topic, I would suggest to try patches #0001 ... #0006
> at http://userweb.kernel.org/~romieu/r8169/2.6.27-rc3/20080818/ with
> your chipset.

OK I will



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: r8169 regression in 2.6.26.3 vs 2.6.26.2
  2008-08-27 20:44       ` Pascal Terjan
@ 2008-08-29 17:51         ` Pascal Terjan
  0 siblings, 0 replies; 6+ messages in thread
From: Pascal Terjan @ 2008-08-29 17:51 UTC (permalink / raw)
  To: Francois Romieu; +Cc: Marcus Sundberg, linux-kernel, stable

Le mercredi 27 août 2008 à 22:44 +0200, Pascal Terjan a écrit :
> Le mercredi 27 août 2008 à 22:11 +0200, Francois Romieu a écrit :
> > Pascal Terjan <pterjan@mandriva.com> :
> > > Le mercredi 27 ao?t 2008 ? 12:38 +0200, Marcus Sundberg a ?crit :
> > > > Pascal Terjan wrote:
> > > > > Since updating to 2.6.26.3, networking no longer works on Acer Aspire
> > > > > One.
> > > > > 
> > > > > PCI config is now always filled with ones.
> > > > > 
> > > > > Reverting "r8169: avoid thrashing PCI conf space above
> > > > > RTL_GIGA_MAC_VER_06" makes it work again.
> > > > > 
> > > > > The device is 10ec:8136
> > [...]
> > > > How does the kernel identify your chipset upon driver load?
> > > > (grep for XID)
> > > 
> > > eth0: RTL8169 at 0xe04ee000, 00:1e:68:a0:07:b5, XID 24a00000 IRQ 17
> > 
> > As far as I can read rtl8169_get_mac_version, this XID should not match
> > any known device with 2.6.26.3 and thus fallback to RTL_GIGA_MAC_VER_01
> > (assuming that rtl8169_init_phy runs after rtl8169_get_mac_version, what
> > it appears to do so far).
> > 
> > Yes / no / -ECOFFEE ?
> > 
> 
> Yes I took some time to look at it and now does not understand what's
> wrong.
> 
> Indeed I get "unknown MAC (27a00600)" so I get RTL_GIGA_MAC_VER_01 which
> is <= RTL_GIGA_MAC_VER_06, so it should work fine with or without this
> patch. And indeed it seems to work when I rebuild the module, even when
> I do not revert the patch.
> 
> And by the way, unrelated to this problem, it is written twice for
> RTL_GIGA_MAC_VER_02:
> 
> =====
>         if (tp->mac_version <= RTL_GIGA_MAC_VER_06) {
>                 dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
>                 RTL_W8(0x82, 0x01);
>         }
> [...]
>         if (tp->mac_version == RTL_GIGA_MAC_VER_02) {
>                 dprintk("Set MAC Reg C+CR Offset 0x82h = 0x01h\n");
>                 RTL_W8(0x82, 0x01);
> =====
> 
> To come back to the problem, this patch may not be faulty but I fail to
> understand the issue...
> 
> - 2.6.26.2 always works
> - 2.6.26.3 from my distro always fails
> - 2.6.26.3 from my distro with r8169 rebuilt out of the kernel tree but
> from the same source and with the same config, gcc, etc, works...
> 
> So either it is random I am very unlucky that it always works with one
> and always fails with the other or there is some difference that I could
> not think about

OK I was very unlucky...
For some reason when 2.6.26.2 was OK but 2.6.26.3 built inside the rpm
will always fail (or maybe very often, harder to test).
And when rebuilding the module by hand, it will work most of the time,
but I got the bug after unloading/reloading it about 30 times in a row,
so it's just that this chip is affected by the random bug and something
make it more likely to happen.

> > On a different topic, I would suggest to try patches #0001 ... #0006
> > at http://userweb.kernel.org/~romieu/r8169/2.6.27-rc3/20080818/ with
> > your chipset.
> 
> OK I will

I applied these patches meaning that now the write will not occur, and
tried to unload/load the module 200 times but after some time I got a
oops in rtl_tx_performance_tweak (and could not capture it).


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2008-08-29 17:51 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-27  9:20 r8169 regression in 2.6.26.3 vs 2.6.26.2 Pascal Terjan
2008-08-27 10:38 ` Marcus Sundberg
2008-08-27 10:40   ` Pascal Terjan
2008-08-27 20:11     ` Francois Romieu
2008-08-27 20:44       ` Pascal Terjan
2008-08-29 17:51         ` Pascal Terjan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox