Thread (9 messages) 9 messages, 4 authors, 2009-02-10

Re: [BUG BISECTED] boot hangs while bringing up gianfar ethernet

From: Jarek Poplawski <hidden>
Date: 2009-02-07 22:55:16
Also in: lkml
Subsystem: networking drivers, the rest · Maintainers: Andrew Lunn, "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, Linus Torvalds

Ira Snyder wrote, On 01/29/2009 08:41 PM:
Hello,

I'm working on a Freescale MPC8349EMDS board. I have been booting it
over NFS for a long time now. I try to run the latest git kernels to
find possible problems.

Recently, I haven't been able to boot over NFS anymore. When the machine
tries to bring up the ethernet interface, it just hangs forever. There
are no softlockup warnings, the machine has locked up completely.

Here is the commit I bisected it down to. I tried running git revert,
but there have been other changes which prevent an easy revert.

After building each kernel, I compiled and used the dts file from that
kernel. There shouldn't be any conflicts there.

I'm happy to test patches to fix the problem.

Thanks,
Ira

8c7396aebb68994c0519e438eecdf4d5fa9c7844 is first bad commit
commit 8c7396aebb68994c0519e438eecdf4d5fa9c7844
Author: Dai Haruki [off-list ref]
Date:   Wed Dec 17 16:52:00 2008 -0800

    gianfar: Merge Tx and Rx interrupt for scheduling clean up ring
Hi,

Could you try this patch?

Thanks,
Jarek P.
---

 drivers/net/gianfar.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index acae2d8..1335d89 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -1629,6 +1629,8 @@ static void gfar_schedule_cleanup(struct net_device *dev)
 	if (netif_rx_schedule_prep(&priv->napi)) {
 		gfar_write(&priv->regs->imask, IMASK_RTX_DISABLED);
 		__netif_rx_schedule(&priv->napi);
+	} else {
+		gfar_write(&priv->regs->ievent, IEVENT_RTX_MASK);
 	}
 
 	spin_unlock(&priv->rxlock);
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help