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

From: Pete Clements
Date: Wed Mar 29 2006 - 10:12:20 EST


Patch applied on top of previous patch to 2.6.16, no longer
seeing the timeouts.

> 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);
> _
>


--
Pete Clements
-
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/