lkml.org 
[lkml]   [2006]   [Mar]   [29]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: Correction: 2.6.16-git12 killed networking -- 3c900 card
    On Tue, Mar 28, 2006 at 10:43:08PM -0800, Andrew Morton wrote:
    > Pete Clements <clem@clem.clem-digital.net> 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.
    > >

    I will try to borrow a coax cable and see whats up with 10base2.

    >
    > Well here's one. Steffen, please confirm.
    >
    >
    > From: Andrew Morton <akpm@osdl.org>
    >
    > The pre-2.6.16 patch "3c59x collision statistics fix" accidentally caused
    > vortex_error() to not run iowrite16(TxEnable, ioaddr + EL3_CMD) if we got a
    > maxCollisions interrupt but MAX_COLLISION_RESET is not set.

    True, this can explain the transmit timed out messages.

    Acked-by: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>


    >
    > Cc: Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
    > Cc: Pete Clements <clem@clem.clem-digital.net>
    > Signed-off-by: Andrew Morton <akpm@osdl.org>
    > ---
    >
    > drivers/net/3c59x.c | 12 +++++-------
    > 1 files changed, 5 insertions(+), 7 deletions(-)
    >
    > diff -puN drivers/net/3c59x.c~3c59x-collision-statistics-fix-fix drivers/net/3c59x.c
    > --- devel/drivers/net/3c59x.c~3c59x-collision-statistics-fix-fix 2006-03-28 22:36:48.000000000 -0800
    > +++ devel-akpm/drivers/net/3c59x.c 2006-03-28 22:40:01.000000000 -0800
    > @@ -2085,16 +2085,14 @@ vortex_error(struct net_device *dev, int
    > }
    > if (tx_status & 0x14) vp->stats.tx_fifo_errors++;
    > if (tx_status & 0x38) vp->stats.tx_aborted_errors++;
    > + if (tx_status & 0x08) vp->xstats.tx_max_collisions++;
    > iowrite8(0, ioaddr + TxStatus);
    > if (tx_status & 0x30) { /* txJabber or txUnderrun */
    > do_tx_reset = 1;
    > - } else if (tx_status & 0x08) { /* maxCollisions */
    > - vp->xstats.tx_max_collisions++;
    > - if (vp->drv_flags & MAX_COLLISION_RESET) {
    > - do_tx_reset = 1;
    > - reset_mask = 0x0108; /* Reset interface logic, but not download logic */
    > - }
    > - } else { /* Merely re-enable the transmitter. */
    > + } else if ((tx_status & 0x08) && (vp->drv_flags & MAX_COLLISION_RESET)) { /* maxCollisions */
    > + do_tx_reset = 1;
    > + reset_mask = 0x0108; /* Reset interface logic, but not download logic */
    > + } else { /* Merely re-enable the transmitter. */
    > iowrite16(TxEnable, ioaddr + EL3_CMD);
    > }
    > }
    > _
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-03-29 11:17    [W:0.027 / U:2.232 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site