Message ID | 1329374591.5646.23.camel@edumazet-laptop |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Thu, Feb 16, 2012 at 1:43 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote: > This driver attempts to use two TX rings but lacks proper support : > > 1) IRQ handler only takes care of TX completion on first TX ring > 2) the stop/start logic uses the legacy functions (for non multiqueue > drivers) > > This means all packets witk skb mark set to 1 are sent through high > queue but are never cleaned and queue eventualy fills and block the > device, triggering the infamous "NETDEV WATCHDOG" message. > > Lets use a single TX ring to fix the problem, this driver is not a real > multiqueue one yet. > > Minimal fix for stable kernels. > > Reported-by: Thomas Meyer <thomas@m3y3r.de> > Tested-by: Thomas Meyer <thomas@m3y3r.de> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > Cc: Jay Cliburn <jcliburn@gmail.com> > Cc: Chris Snook <chris.snook@gmail.com> As I think David handles netdev patches a bit differently for stable releases, I'd like to suggest this get included in the next batch for the 3.2 kernel. We've been seeing the bug this patch fixes in Fedora for quite a while now. josh -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Le jeudi 16 février 2012 à 07:36 -0500, Josh Boyer a écrit : > As I think David handles netdev patches a bit differently for stable releases, > I'd like to suggest this get included in the next batch for the 3.2 kernel. > We've been seeing the bug this patch fixes in Fedora for quite a while now. Hard to believe this bug lasted so long... -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Eric Dumazet <eric.dumazet@gmail.com> Date: Thu, 16 Feb 2012 07:43:11 +0100 > This driver attempts to use two TX rings but lacks proper support : > > 1) IRQ handler only takes care of TX completion on first TX ring > 2) the stop/start logic uses the legacy functions (for non multiqueue > drivers) > > This means all packets witk skb mark set to 1 are sent through high > queue but are never cleaned and queue eventualy fills and block the > device, triggering the infamous "NETDEV WATCHDOG" message. > > Lets use a single TX ring to fix the problem, this driver is not a real > multiqueue one yet. > > Minimal fix for stable kernels. > > Reported-by: Thomas Meyer <thomas@m3y3r.de> > Tested-by: Thomas Meyer <thomas@m3y3r.de> > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Applied. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c index b859124..1ff3c6d 100644 --- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c +++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c @@ -2244,10 +2244,6 @@ static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb, dev_info(&adapter->pdev->dev, "tx locked\n"); return NETDEV_TX_LOCKED; } - if (skb->mark == 0x01) - type = atl1c_trans_high; - else - type = atl1c_trans_normal; if (atl1c_tpd_avail(adapter, type) < tpd_req) { /* no enough descriptor, just stop queue */