RE: [PATCH 1/1] atl1c: fix issue of transmit queue 0 timed out

From: Huang, Xiong
Date: Tue Jun 26 2012 - 16:26:33 EST


Sorry, my mean , another fix is to remove netif_stop_queue when cable link is down.

Thanks
Xiong
> -----Original Message-----
> From: Huang, Xiong
> Sent: Wednesday, June 27, 2012 4:25
> To: Ben Hutchings; Ren, Cloud
> Cc: davem@xxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; qca-linux-team; nic-devel
> 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@xxxxxxxxxxxxxx]
> > Sent: Wednesday, June 27, 2012 4:24
> > To: Ren, Cloud
> > Cc: davem@xxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; linux-
> > kernel@xxxxxxxxxxxxxxx; 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@xxxxxxxxxxxxxxxx>
> > >
> > > 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@xxxxxxxxxxxxxxxx>
> > > Signed-off-by: Cloud Ren <cjren@xxxxxxxxxxxxxxxx>
> > > ---
> > > 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.

¢éì®&Þ~º&¶¬–+-±éÝ¥Šw®žË±Êâmébžìdz¹Þ)í…æèw*jg¬±¨¶‰šŽŠÝj/êäz¹ÞŠà2ŠÞ¨è­Ú&¢)ß«a¶Úþø®G«éh®æj:+v‰¨Šwè†Ù>Wš±êÞiÛaxPjØm¶Ÿÿà -»+ƒùdš_