lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <46357F2B.2070806@foks.8m.com>
Date:	Mon, 30 Apr 2007 01:31:23 -0400
From:	Jelle Foks <jelle@...s.8m.com>
To:	romieu@...zoreil.com, netdev@...r.kernel.org
Subject: r8169.c broke for me from 2.6.20.4 to 2.6.21

Hello,

When I upgraded from 2.6.20.4 to 2.6.21, the r8169 kept thinking that
the link was down, while with 2.6.20.4, the link was detected at 10Mbit/s.

This is on a (I admit, probably out-of-spec) cable to a Gbit switch from
the r8169 on the mainboard of an AOpen XC Cube EX761.

With 2.6.20.4, the 'link' goes through these states when I boot:

r8169: eth1: link down
ADDRCONF(NETDEV_UP): link is not ready
ADDRCONF(NETDEV_CHANGE):  link becomes ready
r8169: eth1: link up

And then it works (at 10Mbit). With 2.6.21, the link stays down.

When I revert rtl8169_xmii_reset_enable() to the code from the driver in
2.6.20.4 (see the diff below), then it works again, with the same
behaviour as with 2.6.20.4.

My guess is that the 2.6.20.4 code resets the mii in a way that allows
the chip to see a link on my (bad) cable, and the 2.6.21 code does not...

Jelle.

--- linux-2.6.21/drivers/net/r8169.c    2007-04-25 23:08:32.000000000 -0400
+++ linux-2.6.21-jelle/drivers/net/r8169.c      2007-04-30
01:25:59.000000000 -0400
@@ -574,8 +574,10 @@
 {
        unsigned int val;

-       val = mdio_read(ioaddr, MII_BMCR) | BMCR_RESET;
-       mdio_write(ioaddr, MII_BMCR, val & 0xffff);
+       mdio_write(ioaddr, MII_BMCR, BMCR_RESET);
+       val = mdio_read(ioaddr, MII_BMCR);
+/*      val = mdio_read(ioaddr, MII_BMCR) | BMCR_RESET;*/
+/*      mdio_write(ioaddr, MII_BMCR, val & 0xffff);*/
 }

 static void rtl8169_check_link_status(struct net_device *dev,


-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ