Re: Correction: 2.6.16-git12 killed networking -- 3c900 card

From: Andrew Morton
Date: Wed Mar 29 2006 - 01:58:48 EST


Pete Clements <clem@xxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Quoting Steffen Klassert
> > > Had several of these with git11
> > > NETDEV WATCHDOG: eth0: transmit timed out
> >
> > Is this for sure that these messages occured first time with git11?
> > There were no changes in the 3c59x driver between git10 and git11.
> >
> Tried 2.6.15 and could not get a timed out condition. Looks like
> that defect is between 15 and 16 in my case.
>
> Be glad to do any testing that I can.

If it's noether of those then I'd expect the problem relates to the
conversion to use the standard mii layer. Possibly we need to re-port some
mdo reading oddity into 3c59x.c:mdio_read(), but it would take some effort
to work out which one.

You could try this shot-in-the-dark:


diff -puN drivers/net/3c59x.c~revert-3c59x-avoid-blindly-reading-link-status-twice drivers/net/3c59x.c
--- devel/drivers/net/3c59x.c~revert-3c59x-avoid-blindly-reading-link-status-twice 2006-03-28 22:51:52.000000000 -0800
+++ devel-akpm/drivers/net/3c59x.c 2006-03-28 23:00:47.000000000 -0800
@@ -3196,7 +3196,7 @@ static void mdio_sync(void __iomem *ioad
}
}

-static int mdio_read(struct net_device *dev, int phy_id, int location)
+static int __mdio_read(struct net_device *dev, int phy_id, int location)
{
int i;
struct vortex_private *vp = netdev_priv(dev);
@@ -3227,6 +3227,13 @@ static int mdio_read(struct net_device *
return retval & 0x20000 ? 0xffff : retval>>1 & 0xffff;
}

+static int mdio_read(struct net_device *dev, int phy_id, int location)
+{
+ if (location == MII_BMSR)
+ __mdio_read(dev, phy_id, location);
+ return __mdio_read(dev, phy_id, location);
+}
+
static void mdio_write(struct net_device *dev, int phy_id, int location, int value)
{
struct vortex_private *vp = netdev_priv(dev);
_

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/