[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <157393863283F442885425D2C454285623DB4982@NASANEXD02A.na.qualcomm.com>
Date: Tue, 26 Jun 2012 20:25:21 +0000
From: "Huang, Xiong" <xiong@....qualcomm.com>
To: Ben Hutchings <bhutchings@...arflare.com>,
"Ren, Cloud" <cjren@....qualcomm.com>
CC: "davem@...emloft.net" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
qca-linux-team <qca-linux-team@...lcomm.com>,
nic-devel <nic-devel@...lcomm.com>
Subject: RE: [PATCH 1/1] atl1c: fix issue of transmit queue 0 timed out
Yes, another fix to remove netif_stop_queue when cable link is down.
-Xiong
> -----Original Message-----
> From: Ben Hutchings [mailto:bhutchings@...arflare.com]
> Sent: Wednesday, June 27, 2012 4:24
> To: Ren, Cloud
> Cc: davem@...emloft.net; netdev@...r.kernel.org; linux-
> kernel@...r.kernel.org; qca-linux-team; nic-devel; Huang, Xiong
> Subject: Re: [PATCH 1/1] atl1c: fix issue of transmit queue 0 timed out
>
> On Tue, 2012-06-26 at 12:33 -0300, Ren, Cloud wrote:
> > From: xiong <xiong@....qualcomm.com>
> >
> > some people report atl1c could cause system hang with following kernel
> > trace info:
> > ---------------------------------------
> > WARNING: at.../net/sched/sch_generic.c:258
> > dev_watchdog+0x1db/0x1d0()
> > ...
> > NETDEV WATCHDOG: eth0 (atl1c): transmit queue 0 timed out ...
> > ---------------------------------------
> > This is caused by netif_stop_queue calling when cable Link is down but
> > netif_wake_queue isn't called when cable Link is resume.
> >
> > Signed-off-by: xiong <xiong@....qualcomm.com>
> > Signed-off-by: Cloud Ren <cjren@....qualcomm.com>
> > ---
> > drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 2 ++
> > 1 files changed, 2 insertions(+), 0 deletions(-)
> >
> > diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> > b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> > index 85717cb..c2736c4 100644
> > --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> > +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
> > @@ -351,6 +351,8 @@ static void atl1c_common_task(struct work_struct
> *work)
> > atl1c_irq_disable(adapter);
> > atl1c_check_link_status(adapter);
> > atl1c_irq_enable(adapter);
> > + if (netif_queue_stopped(netdev) && netif_carrier_ok(netdev))
> > + netif_wake_queue(netdev);
> > }
> > }
> >
>
> Why explicitly stop/start the queue when the link changes? That's what
> link_watch is for.
>
> Ben.
>
> --
> Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's
> the marketing department's job.
> They asked us to note that Solarflare product names are trademarked.
Powered by blists - more mailing lists