Re: [Bugme-new] [Bug 10273] New: Sun GEM (PCI) - network device doesn't work

Previous thread: [PATCH-2.6.26] rndis_host: fix oops when query for OID_GEN_PHYSICAL_MEDIUM fails by Jussi Kivilinna on Monday, March 17, 2008 - 5:33 pm. (5 messages)

Next thread: Re: [PATCH-2.6.26] rndis_host: fix oops when query for OID_GEN_PHYSICAL_MEDIUM fails by Jussi Kivilinna on Monday, March 17, 2008 - 5:43 pm. (1 message)
To: <netdev@...>
Cc: <bugme-daemon@...>, <seraph@...>
Date: Monday, March 17, 2008 - 5:36 pm

On Mon, 17 Mar 2008 14:25:50 -0700 (PDT)

--

To: David Miller <davem@...>
Cc: <seraph@...>, Andrew Morton <akpm@...>, <netdev@...>, <bugme-daemon@...>, <linux-kernel@...>
Date: Wednesday, April 2, 2008 - 2:26 pm

Nice work Jos! I forward it to the author and the lists.

Jarek P.

----- End forwarded message -----
--

To: <jarkao2@...>
Cc: <seraph@...>, <akpm@...>, <netdev@...>, <bugme-daemon@...>, <linux-kernel@...>
Date: Friday, April 25, 2008 - 3:26 am

From: Jarek Poplawski <jarkao2@gmail.com>

I haven't forgotten about this bug report, in fact I did some
investigation and thinking about it.

I think the case being triggered in the new code is IRQ_DISABLED.

If this is the problem, I suspect that what needs to happen is that
when we re-enable the interrupt we have to forcefully hit the clear
register to put it back into transmit state. Otherwise it can
get stuck.

Please give this patch a try (this is against 2.6.23, which is the
version you reported the bug against, let me know if another version
is more convenient).

Thanks!

diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index 2395609..98b68d2 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -313,6 +313,8 @@ static void sun4u_irq_enable(unsigned int virt_irq)
IMAP_AID_SAFARI | IMAP_NID_SAFARI);
val |= tid | IMAP_VALID;
upa_writeq(val, imap);
+
+ upa_writeq(ICLR_IDLE, data->iclr);
}
}

--

To: David Miller <davem@...>
Cc: <jarkao2@...>, <akpm@...>, <netdev@...>, <bugme-daemon@...>, <linux-kernel@...>
Date: Friday, April 25, 2008 - 3:59 pm

I applied the patch against 2.6.24-gentoo-r4, the current kernel on this machine. It worked fine, with only an offset of 12 lines. Nothing unusual during compile either.

The first results are hopeful: I am no longer able to trigger this bug by loading sym53c8xx before sungem, nor by having them both loaded by udev. Nothing odd in dmesg and the machine is completely functional.

I don't have much time for testing today, but if desired I will gladly do some more testing tomorrow or Sunday.

--
Jos van der Ende <seraph@xs4all.nl>
--

To: <seraph@...>
Cc: <jarkao2@...>, <akpm@...>, <netdev@...>, <bugme-daemon@...>, <linux-kernel@...>
Date: Friday, April 25, 2008 - 4:35 pm

From: Jos van der Ende <seraph@xs4all.nl>

Thanks for testing the change, I'll do some of my own testing and push
the bug fix upstream.

Thanks again!
--

To: <jarkao2@...>
Cc: <seraph@...>, <akpm@...>, <netdev@...>, <bugme-daemon@...>, <linux-kernel@...>
Date: Thursday, April 10, 2008 - 6:30 am

From: Jarek Poplawski <jarkao2@gmail.com>

Thanks for tracking this down.

I'm very busy currently but I promise I'll try to resolve this
somehow.
--

Previous thread: [PATCH-2.6.26] rndis_host: fix oops when query for OID_GEN_PHYSICAL_MEDIUM fails by Jussi Kivilinna on Monday, March 17, 2008 - 5:33 pm. (5 messages)

Next thread: Re: [PATCH-2.6.26] rndis_host: fix oops when query for OID_GEN_PHYSICAL_MEDIUM fails by Jussi Kivilinna on Monday, March 17, 2008 - 5:43 pm. (1 message)