Thread (11 messages) flat view 11 messages, 5 authors, 2012-02-07

Re: [PATCH] net/fec: infinite spin on sirq-net-tx on real-time

From: Eric Dumazet <hidden>
Date: 2012-02-06 13:40:04

Le lundi 06 février 2012 à 08:25 -0500, Steven Rostedt a écrit :
On Mon, 2012-02-06 at 12:03 +0100, Hector Palacios wrote:
quoted
quoted
quoted
@@ -530,6 +531,7 @@ fec_stop(struct net_device *ndev)
  	udelay(10);
  	writel(fep->phy_speed, fep->hwp + FEC_MII_SPEED);
  	writel(FEC_DEFAULT_IMASK, fep->hwp + FEC_IMASK);
+	fep->link = 0;

Why not call netif_stop_queue(dev) here ?
quoted
I'm no network driver expert so I'll leave it up to others to comment. I just forward 
ported a patch I came across in Freescale's BSP which solves the problem in mainline 
and in RT.
Hector,

Eric's suggestion may also work. Could your revert this patch and add
the netif_stop_queue(dev) there, and see if it fixes the problems in
both mainline and -rt?
Not sure it will be enough to call netif_stop_queue(dev) in fec_stop()

We probably need to start the device with its tx queue stopped, then
later when device is really ready wakeup the queue.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help