On Thursday 16 February 2006 23:55, Stephen Hemminger wrote:
> Could everyone who has problems with hangs try the following patch (against
> current 2.6.16-rc3 version) If it gets mangled (it's also at
> http://developer.osdl.org/shemminger/prototypes/sky2-0.15-0.16.diff).
Hi Stephen,
thank you for the patch. The hang still occurs, but I have some debugging data
from the proc file that might be helpful.
Firstly, I patched sky2_seq_show() slightly to avoid a segfault, there seems
to be only one port registered in my setup.
Secondly, I added output of the raw op numer, since the if's/switch didn't
give any output for op 0x41 (OP_PACKET).
--- linux-2.6.16-rc3/drivers/net/sky2.c-0.16 2006-02-17 07:57:21.000000000
+0100
+++ linux-2.6.16-rc3/drivers/net/sky2.c 2006-02-17 10:35:37.000000000 +0100
@@ -3219,7 +3219,7 @@
struct net_device *dev = hw->dev[i];
const struct sky2_port *sky2 = netdev_priv(dev);
- if (!netif_running(dev))
+ if ((dev == 0) || (!netif_running(dev)))
continue;
seq_printf(seq, "%s: transmit ring\n", dev->name);
@@ -3233,6 +3233,7 @@
u8 op = le->opcode & ~HW_OWNER;
seq_putc(seq, ' ');
+ seq_printf(seq, "(%#x) ", op);
if (op & 0x10) {
seq_puts(seq, "tcp:");
Output of idle/alive state is:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
I reproduced the hang 5 times. Output at hang is:
hang #1:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[122] 0x73c70e5e:66
hang #2:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[68] (0x41) 0x7fae425e:66
[69] (0x41) 0x73c70e5e:66
hang #3:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[241] (0x41) 0x743f0c5e:66
hang #4:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[496] (0x41) 0x20251a5e:66
hang #5:
[EMAIL PROTECTED]:/usr/src$ cat /proc/net/sky2/0000\:03\:00.0
Intr mask=0xcf00001f
Status ring:
eth0: transmit ring
[241] (0x41) 0x73c5185e:66
Is this helpful? As mentioned, I can reproduce this quite easily (within a few
minutes), so feel free to send me more patches for testing.
Finally: thanks a lot for taking the effort of writing the sky2 driver. I
appreciate it very much to have my hardware finally supported with vanilla
kernel :-)
Wolfgang
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html