[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080915224522.GA21012@x200.localdomain>
Date: Tue, 16 Sep 2008 02:45:22 +0400
From: Alexey Dobriyan <adobriyan@...il.com>
To: Jay Cliburn <jacliburn@...lsouth.net>
Cc: csnook@...hat.com, netdev@...r.kernel.org
Subject: Re: atl1: WARNING at net/sched/sch_generic.c:221
On Sun, Sep 14, 2008 at 06:17:14PM -0500, Jay Cliburn wrote:
> On Thu, 21 Aug 2008 15:58:49 +0400
> adobriyan@...il.com wrote:
>
> > This message happens more or less every reboot, sometimes cable
> > unplug/plug is needed to restore connectivity, otherwise card is
> > working fine.
> >
> >
> > [ 22.570010] eth1: link up, 100Mbps, full-duplex, lpa 0x45E1
> > [ 26.570011] NET: Registered protocol family 10
> > [ 37.551934] eth0: no IPv6 routers present
> >
> > [rebooted box which is directly connected to a box with atl1]
> >
> > [ 2078.740004] atl1 0000:03:00.0: eth0 link is down
> > [ 2080.790004] atl1 0000:03:00.0: eth0 link is up 1000 Mbps full
> > duplex [ 2086.049998] NETDEV WATCHDOG: eth0 (atl1): transmit timed out
> > [ 2086.050004] ------------[ cut here ]------------
> > [ 2086.050004] WARNING: at net/sched/sch_generic.c:221
> [...]
>
> Alexey,
>
> Can you please try this patch?
Seems to help (no more messages), still sometimes no networking until after
cable replug. Stay tuned.
> --- a/drivers/net/atlx/atl1.c
> +++ b/drivers/net/atlx/atl1.c
> @@ -2642,6 +2642,7 @@ static void atl1_down(struct atl1_adapter *adapter)
> {
> struct net_device *netdev = adapter->netdev;
>
> + netif_stop_queue(netdev);
> del_timer_sync(&adapter->watchdog_timer);
> del_timer_sync(&adapter->phy_config_timer);
> adapter->phy_timer_pending = false;
> @@ -2655,7 +2656,6 @@ static void atl1_down(struct atl1_adapter *adapter)
> adapter->link_speed = SPEED_0;
> adapter->link_duplex = -1;
> netif_carrier_off(netdev);
> - netif_stop_queue(netdev);
>
> atl1_clean_tx_ring(adapter);
> atl1_clean_rx_ring(adapter);
> @@ -2724,6 +2724,8 @@ static int atl1_open(struct net_device *netdev)
> struct atl1_adapter *adapter = netdev_priv(netdev);
> int err;
>
> + netif_carrier_off(netdev);
> +
> /* allocate transmit descriptors */
> err = atl1_setup_ring_resources(adapter);
> if (err)
> diff --git a/drivers/net/atlx/atlx.c b/drivers/net/atlx/atlx.c
> index b3e7fcf..3cc9d10 100644
> --- a/drivers/net/atlx/atlx.c
> +++ b/drivers/net/atlx/atlx.c
> @@ -105,7 +105,6 @@ static void atlx_check_for_link(struct atlx_adapter *adapter)
> netdev->name);
> adapter->link_speed = SPEED_0;
> netif_carrier_off(netdev);
> - netif_stop_queue(netdev);
> }
> }
> schedule_work(&adapter->link_chg_task);
--
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