All of lore.kernel.org
 help / color / mirror / Atom feed
* r8169 - panic and a fix
@ 2004-09-08 12:24 Srihari Vijayaraghavan
  2004-09-08 19:06 ` Francois Romieu
  0 siblings, 1 reply; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-08 12:24 UTC (permalink / raw)
  To: romieu; +Cc: netdev

As of 2.6.9-rc1-bk11, r8169 does not work on my Athlon 64 machine. It results 
in a panic :-(.

Here is the oops message for your information:
NET: Registered protocol family 1
----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at skbuff:91
invalid operand: 0000 [1] 
CPU 0 
Modules linked in: r8169 af_packet ipt_REJECT ipt_state ip_conntrack 
iptable_filter ip_tables ide_cd cdrom via_rhine mii crc32 floppy radeon 
reiserfs dm_mod uhci_hcd ehci_hcd usbcore button rtc unix
Pid: 1424, comm: ifup Not tainted 2.6.9-rc1-bk14
RIP: 0010:[<ffffffff80255172>] <ffffffff80255172>{skb_over_panic+50}
RSP: 0000:ffffffff80399328  EFLAGS: 00010292
RAX: 0000000000000036 RBX: 0000000000000c00 RCX: 000000000001ffff
RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffffffff802f8880
RBP: 0000010036eda360 R08: 0000000000000036 R09: 0000000000000003
R10: 00000000ffffffff R11: 0000000000000000 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 0000010036fca000
FS:  0000002a9556cd60(0000) GS:ffffffff803f0740(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00000039cbd054d0 CR3: 0000000000101000 CR4: 00000000000006e0
Process ifup (pid: 1424, threadinfo 0000010036fd2000, task 000001003f7e07d0)
Stack: 000000000000000a ffffffffa00faf66 0000000000000bfc ffffffffa00fb3c0 
       0000010080399368 0000010036eda000 000001003fc34c80 0000000000008001 
       ffffff0000052000 0000000000000014 
Call Trace:<IRQ> <ffffffffa00faf66>{:r8169:rtl8169_rx_interrupt+502} 
       <ffffffffa00fb3c0>{:r8169:pci_unmap_single+0} 
<ffffffffa00fb0d3>{:r8169:rtl8169_interrupt+147} 
       <ffffffff801124ec>{handle_IRQ_event+44} <ffffffff80112683>{do_IRQ+147} 
       <ffffffff80110021>{ret_from_intr+0}  <EOI> 

Code: 0f 0b 8c 29 2d 80 ff ff ff ff 5b 00 48 83 c4 08 c3 66 66 66 
RIP <ffffffff80255172>{skb_over_panic+50} RSP <ffffffff80399328>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

Reversing this patch, which first appeared in 2.6.9-rc1-bk11, fixes the 
problem:
diff -Nru a/drivers/net/r8169.c b/drivers/net/r8169.c
--- a/drivers/net/r8169.c       2004-07-02 11:51:44 -07:00
+++ b/drivers/net/r8169.c       2004-08-31 00:15:35 -07:00
@@ -983,7 +983,7 @@

        tp->cp_cmd = PCIMulRW | RxChkSum;

-       if ((sizeof(dma_addr_t) > 32) &&
+       if ((sizeof(dma_addr_t) > 4) &&
            !pci_set_dma_mask(pdev, DMA_64BIT_MASK))
                tp->cp_cmd |= PCIDAC;
        else {

In other words, no problem with 2.6.9-rc1-bk14 minus that patch.

Here is the lspci -vv for my card:
00:13.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit 
Ethernet (rev 10)
        Subsystem: Giga-byte Technology: Unknown device e000
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B-
        Status: Cap+ 66Mhz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR-
        Latency: 64 (8000ns min, 16000ns max), Cache Line Size 08
        Interrupt: pin A routed to IRQ 18
        Region 0: I/O ports at e800
        Region 1: Memory at e3005000 (32-bit, non-prefetchable) [size=256]
        Capabilities: [dc] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA 
PME(D0-,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=0 PME-

If you need more information, please ask.

Thank you.

Hari

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-08 12:24 r8169 - panic and a fix Srihari Vijayaraghavan
@ 2004-09-08 19:06 ` Francois Romieu
  2004-09-09 14:08   ` Srihari Vijayaraghavan
  0 siblings, 1 reply; 9+ messages in thread
From: Francois Romieu @ 2004-09-08 19:06 UTC (permalink / raw)
  To: Srihari Vijayaraghavan; +Cc: netdev

Srihari Vijayaraghavan <sriharivijayaraghavan@yahoo.com.au> :
> As of 2.6.9-rc1-bk11, r8169 does not work on my Athlon 64 machine. It results 
> in a panic :-(.
[skb_over_panic]

Can you:
- make drivers/net/r8169.s and send me the r8169.s file
- objdump -S drivers/net/r8169.o and send me output
- Re-apply the patch which test size(dma_arrd_t), apply the patch below
  and report the (possibly oopsy) result ?


--- drivers/net/r8169.c	2004-09-08 20:15:01.000000000 +0200
+++ dirvers/net/r8169.c	2004-09-08 20:49:58.000000000 +0200
@@ -52,6 +52,7 @@ VERSION 1.2	<2002/11/30>
 #define MODULENAME "r8169"
 #define RTL8169_DRIVER_NAME   MODULENAME " Gigabit Ethernet driver " RTL8169_VERSION
 #define PFX MODULENAME ": "
+#define RTL8169_DEBUG
 
 #ifdef RTL8169_DEBUG
 #define assert(expr) \
@@ -1308,7 +1309,7 @@ rtl8169_hw_start(struct net_device *dev)
 	RTL_W8(EarlyTxThres, EarlyTxThld);
 
 	// For gigabit rtl8169
-	RTL_W16(RxMaxSize, RxPacketMaxSize);
+	RTL_W16(RxMaxSize, RX_BUF_SIZE);
 
 	// Set Rx Config register
 	i = rtl8169_rx_config |
@@ -1698,6 +1699,7 @@ rtl8169_rx_interrupt(struct net_device *
 			pci_action(tp->pci_dev, le64_to_cpu(desc->addr),
 				   RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 
+			assert(pkt_size <= RX_BUF_SIZE);
 			skb_put(skb, pkt_size);
 			skb->protocol = eth_type_trans(skb, dev);
 			rtl8169_rx_skb(skb);

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-08 19:06 ` Francois Romieu
@ 2004-09-09 14:08   ` Srihari Vijayaraghavan
  2004-09-11  1:47     ` Srihari Vijayaraghavan
  0 siblings, 1 reply; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-09 14:08 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev

[-- Attachment #1: Type: text/plain, Size: 825 bytes --]

On Thu, 9 Sep 2004 05:06 am, you wrote:
> Srihari Vijayaraghavan <sriharivijayaraghavan@yahoo.com.au> :
> > As of 2.6.9-rc1-bk11, r8169 does not work on my Athlon 64 machine. It
> > results in a panic :-(.
>
> [skb_over_panic]
>
> Can you:
> - make drivers/net/r8169.s and send me the r8169.s file

Please refer to the attachment (r8169.s.bz2).

> - objdump -S drivers/net/r8169.o and send me output

Please refer to the attachment (objdump-r8169.bz2).

> - Re-apply the patch which test size(dma_arrd_t), apply the patch below
>   and report the (possibly oopsy) result ?

I am doing this task, and will post the results a little later.

>
> --- drivers/net/r8169.c	2004-09-08 20:15:01.000000000 +0200
> +++ dirvers/net/r8169.c	2004-09-08 20:49:58.000000000 +0200
> @@ -52,6 +52,7 @@ VERSION 1.2	<2002/11/30>

Thanks.
Hari.

[-- Attachment #2: objdump-r8169.bz2 --]
[-- Type: application/x-bzip2, Size: 19970 bytes --]

[-- Attachment #3: r8169.s.bz2 --]
[-- Type: application/x-bzip2, Size: 9052 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-09 14:08   ` Srihari Vijayaraghavan
@ 2004-09-11  1:47     ` Srihari Vijayaraghavan
  2004-09-11 12:19       ` Francois Romieu
  0 siblings, 1 reply; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-11  1:47 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev

[-- Attachment #1: Type: text/plain, Size: 3009 bytes --]

On Fri, 10 Sep 2004 12:08 am, Srihari Vijayaraghavan wrote:
> ...
> I am doing this task, and will post the results a little later.
>
> > --- drivers/net/r8169.c	2004-09-08 20:15:01.000000000 +0200
> > +++ dirvers/net/r8169.c	2004-09-08 20:49:58.000000000 +0200
> > @@ -52,6 +52,7 @@ VERSION 1.2	<2002/11/30>
>

Francois,

(Sorry I have to reply to my own email, that is because of the private emails 
we had.)

Thanks for your debug patch (against 2.6.9-rc1-bk17) and complete r8169.c, 
although I only used the debug patch. I have attached your debug patch for 
completeness.

The bad news is that I see no "Assertion failed!" messages from the kernel. 
Here is the complete kernel BUG and subsequent panic messages:

NET: Registered protocol family 1
----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at skbuff:91
invalid operand: 0000 [1]
CPU 0
Modules linked in: r8169 af_packet ipt_REJECT ipt_state ip_conntrack 
iptable_filter ip_tables ide_cd cdrom via_rhine mii cr
c32 floppy radeon reiserfs dm_mod uhci_hcd ehci_hcd usbcore button rtc unix
Pid: 1421, comm: ifup Not tainted 2.6.9-rc1-bk17-r8169
RIP: 0010:[<ffffffff80255b72>] <ffffffff80255b72>{skb_over_panic+50}
RSP: 0000:ffffffff8039bc28  EFLAGS: 00010292
RAX: 0000000000000036 RBX: 0000000000000c00 RCX: 000000000001ffff
RDX: 0000000000000006 RSI: 0000000000000000 RDI: ffffffff802fa2a0
RBP: 000001003a233360 R08: 0000000000000036 R09: 0000000000000003
R10: 00000000ffffffff R11: 0000000000000000 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 0000010036fb6000
FS:  0000002a9556cd60(0000) GS:ffffffff803f3040(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
CR2: 00000039cbd054d0 CR3: 0000000000101000 CR4: 00000000000006e0
Process ifup (pid: 1421, threadinfo 0000010036ed6000, task 000001003f76e0b0)
Stack: 000000000000000a ffffffffa00fb380 0000000000000bfc ffffffffa00fb7e0
       000001008039bc68 000001003a233000 000001003fc36a80 0000000000008001
       ffffff0000052000 0000000000000014
Call Trace:<IRQ> <ffffffffa00fb380>{:r8169:rtl8169_rx_interrupt+688}
       <ffffffffa00fb7e0>{:r8169:pci_unmap_single+0} 
<ffffffffa00fb4f3>{:r8169:rtl8169_interrupt+147}
       <ffffffff8011252c>{handle_IRQ_event+44} <ffffffff801126c3>{do_IRQ+147}
       <ffffffff80110051>{ret_from_intr+0}  <EOI> 
<ffffffff80153e9e>{__alloc_pages+830}
       <ffffffff8014fbdc>{wake_up_page+12} <ffffffff8014fbd9>{wake_up_page+9}
       <ffffffff8015dc84>{do_wp_page+132} 
<ffffffff8015ea2a>{handle_mm_fault+330}
       <ffffffff8012116e>{do_page_fault+350} <ffffffff80132744>{do_fork+324}
       <ffffffff802a3a30>{thread_return+41} <ffffffff8011030d>{error_exit+0}


Code: 0f 0b f4 47 2d 80 ff ff ff ff 5b 00 48 83 c4 08 c3 66 66 66
RIP <ffffffff80255b72>{skb_over_panic+50} RSP <ffffffff8039bc28>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

(As you would have probably guessed the vanilla 2.6.9-rc1 r8169.c on 
2.6.9-rc1-bk17 works just fine.)

Thank you.
Hari.

[-- Attachment #2: r8169-dbg.patch --]
[-- Type: text/x-diff, Size: 1410 bytes --]

--- linux-2.6.9-rc1-bk17.orig/drivers/net/r8169.c	2004-09-10 21:57:57.000000000 +0200
+++ linux-2.6.9-rc1-bk17/drivers/net/r8169.c	2004-09-10 22:35:39.000000000 +0200
@@ -53,13 +53,14 @@ VERSION 1.2	<2002/11/30>
 #define RTL8169_DRIVER_NAME   MODULENAME " Gigabit Ethernet driver " RTL8169_VERSION
 #define PFX MODULENAME ": "
 
+#define RTL8169_DEBUG
 #ifdef RTL8169_DEBUG
 #define assert(expr) \
         if(!(expr)) {					\
-	        printk( "Assertion failed! %s,%s,%s,line=%d\n",	\
+	        printk(KERN_ERR "Assertion failed! %s,%s,%s,line=%d\n",	\
         	#expr,__FILE__,__FUNCTION__,__LINE__);		\
         }
-#define dprintk(fmt, args...)	do { printk(PFX fmt, ## args) } while (0)
+#define dprintk(fmt, args...)	do { printk(PFX fmt, ## args); } while (0)
 #else
 #define assert(expr) do {} while (0)
 #define dprintk(fmt, args...)	do {} while (0)
@@ -1308,7 +1309,7 @@ rtl8169_hw_start(struct net_device *dev)
 	RTL_W8(EarlyTxThres, EarlyTxThld);
 
 	// For gigabit rtl8169
-	RTL_W16(RxMaxSize, RxPacketMaxSize);
+	RTL_W16(RxMaxSize, RX_BUF_SIZE);
 
 	// Set Rx Config register
 	i = rtl8169_rx_config |
@@ -1698,6 +1699,7 @@ rtl8169_rx_interrupt(struct net_device *
 			pci_action(tp->pci_dev, le64_to_cpu(desc->addr),
 				   RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 
+			assert(pkt_size <= RX_BUF_SIZE);
 			skb_put(skb, pkt_size);
 			skb->protocol = eth_type_trans(skb, dev);
 			rtl8169_rx_skb(skb);

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-11  1:47     ` Srihari Vijayaraghavan
@ 2004-09-11 12:19       ` Francois Romieu
  2004-09-12  8:32         ` Srihari Vijayaraghavan
  0 siblings, 1 reply; 9+ messages in thread
From: Francois Romieu @ 2004-09-11 12:19 UTC (permalink / raw)
  To: Srihari Vijayaraghavan; +Cc: netdev

[-- Attachment #1: Type: text/plain, Size: 608 bytes --]

Srihari Vijayaraghavan <sriharivijayaraghavan@yahoo.com.au> :
[...]
> The bad news is that I see no "Assertion failed!" messages from the kernel. 
> Here is the complete kernel BUG and subsequent panic messages:
[oops]

R12 is confusing me.

Can you do two more subsequent tests with the patch attached ?
They apply against vanilla 2.6.9-rc1-bk{11/17}.

I assume the oops happen immediately and you can not even tell if a few
packets were transmitted/received, right ?

I'll welcome the objdump -S of both r8169.o modules as well as the section
of the vmlinux file where skb_over_panic() appears.

--
Ueimor

[-- Attachment #2: r8169-dbg-a.patch --]
[-- Type: text/plain, Size: 1098 bytes --]

--- linux-2.6.9-rc1-bk17.orig/drivers/net/r8169.c	2004-09-10 21:57:57.000000000 +0200
+++ linux-2.6.9-rc1-bk17/drivers/net/r8169.c	2004-09-11 14:05:17.000000000 +0200
@@ -1308,7 +1308,7 @@ rtl8169_hw_start(struct net_device *dev)
 	RTL_W8(EarlyTxThres, EarlyTxThld);
 
 	// For gigabit rtl8169
-	RTL_W16(RxMaxSize, RxPacketMaxSize);
+	RTL_W16(RxMaxSize, RX_BUF_SIZE);
 
 	// Set Rx Config register
 	i = rtl8169_rx_config |
@@ -1681,7 +1681,7 @@ rtl8169_rx_interrupt(struct net_device *
 		} else {
 			struct RxDesc *desc = tp->RxDescArray + entry;
 			struct sk_buff *skb = tp->Rx_skbuff[entry];
-			int pkt_size = (status & 0x00001FFF) - 4;
+			int pkt_size = (status & 0x00003FFF) - 4;
 			void (*pci_action)(struct pci_dev *, dma_addr_t,
 				size_t, int) = pci_dma_sync_single_for_device;
 
@@ -1698,6 +1698,7 @@ rtl8169_rx_interrupt(struct net_device *
 			pci_action(tp->pci_dev, le64_to_cpu(desc->addr),
 				   RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 
+			BUG_ON(pkt_size > (RX_BUF_SIZE - 4));
 			skb_put(skb, pkt_size);
 			skb->protocol = eth_type_trans(skb, dev);
 			rtl8169_rx_skb(skb);

[-- Attachment #3: r8169-dbg-b.patch --]
[-- Type: text/plain, Size: 1531 bytes --]

--- linux-2.6.9-rc1-bk17.orig/drivers/net/r8169.c	2004-09-10 21:57:57.000000000 +0200
+++ linux-2.6.9-rc1-bk17/drivers/net/r8169.c	2004-09-11 14:06:33.000000000 +0200
@@ -984,9 +984,10 @@ rtl8169_init_board(struct pci_dev *pdev,
 	tp->cp_cmd = PCIMulRW | RxChkSum;
 
 	if ((sizeof(dma_addr_t) > 4) &&
-	    !pci_set_dma_mask(pdev, DMA_64BIT_MASK))
+	    !pci_set_dma_mask(pdev, DMA_64BIT_MASK)) {
 		tp->cp_cmd |= PCIDAC;
-	else {
+		dev->features |= NETIF_F_HIGHDMA;
+	} else {
 		rc = pci_set_dma_mask(pdev, DMA_32BIT_MASK);
 		if (rc < 0) {
 			printk(KERN_ERR PFX "DMA configuration failed.\n");
@@ -1308,7 +1309,7 @@ rtl8169_hw_start(struct net_device *dev)
 	RTL_W8(EarlyTxThres, EarlyTxThld);
 
 	// For gigabit rtl8169
-	RTL_W16(RxMaxSize, RxPacketMaxSize);
+	RTL_W16(RxMaxSize, RX_BUF_SIZE);
 
 	// Set Rx Config register
 	i = rtl8169_rx_config |
@@ -1681,7 +1682,7 @@ rtl8169_rx_interrupt(struct net_device *
 		} else {
 			struct RxDesc *desc = tp->RxDescArray + entry;
 			struct sk_buff *skb = tp->Rx_skbuff[entry];
-			int pkt_size = (status & 0x00001FFF) - 4;
+			int pkt_size = (status & 0x00003FFF) - 4;
 			void (*pci_action)(struct pci_dev *, dma_addr_t,
 				size_t, int) = pci_dma_sync_single_for_device;
 
@@ -1698,6 +1699,7 @@ rtl8169_rx_interrupt(struct net_device *
 			pci_action(tp->pci_dev, le64_to_cpu(desc->addr),
 				   RX_BUF_SIZE, PCI_DMA_FROMDEVICE);
 
+			BUG_ON(pkt_size > (RX_BUF_SIZE - 4));
 			skb_put(skb, pkt_size);
 			skb->protocol = eth_type_trans(skb, dev);
 			rtl8169_rx_skb(skb);

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-11 12:19       ` Francois Romieu
@ 2004-09-12  8:32         ` Srihari Vijayaraghavan
  2004-09-12 23:15           ` Francois Romieu
  0 siblings, 1 reply; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-12  8:32 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev

[-- Attachment #1: Type: text/plain, Size: 4838 bytes --]

On Sat, 11 Sep 2004 10:19 pm, Francois Romieu wrote:
> ...
> R12 is confusing me.
>
> Can you do two more subsequent tests with the patch attached ?
> They apply against vanilla 2.6.9-rc1-bk{11/17}.

Sure. This is from r8169-dbg-a.patch:

----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at r8169:1701
invalid operand: 0000 [1]
CPU 0
Modules linked in: snd_pcm_oss snd_mixer_oss snd_via82xx snd_ac97_codec 
snd_pcm snd_timer snd_page_alloc snd_mpu401_uart sx
Pid: 0, comm: swapper Not tainted 2.6.9-rc1-bk17-r8169-a
RIP: 0010:[<ffffffffa00e9f24>] 
<ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436}
RSP: 0018:ffffffff8039bc38  EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0000000000000c00 RCX: 0000000000000000
RDX: 0000000000000600 RSI: 000000003ea17012 RDI: 00000100023c3070
RBP: 0000010036e71360 R08: 0000000000000000 R09: 0000000000000000
R10: 000001003f613b28 R11: 0000000000000001 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 00000100370e7000
FS:  0000002a95577da0(0000) GS:ffffffff803f3040(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 0000002a95557000 CR3: 0000000000101000 CR4: 00000000000006e0
Process swapper (pid: 0, threadinfo ffffffff803f6000, task ffffffff802ef480)
Stack: 0000000000000bfc ffffffffa00ea3e0 0000010000000286 0000010036e71000
       000001003fc36880 0000000000008001 ffffff0000056000 0000000000000014
       0000010036e71360 0000010036e71000
Call Trace:<IRQ> <ffffffffa00ea3e0>{:r8169:pci_unmap_single+0} 
<ffffffffa00ea0f3>{:r8169:rtl8169_interrupt+147}
       <ffffffff8011252c>{handle_IRQ_event+44} <ffffffff801126c3>{do_IRQ+147}
       <ffffffff8010de20>{default_idle+0} <ffffffff80110051>{ret_from_intr+0}
        <EOI> <ffffffff8010de44>{default_idle+36} 
<ffffffff8010deca>{cpu_idle+26}
       <ffffffff803f9723>{start_kernel+339}

Code: 0f 0b a9 a5 0e a0 ff ff ff ff a5 06 48 8b 7c 24 20 8b 87 9c
RIP <ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436} RSP <ffffffff8039bc38>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

Whereas this one is from r8169-dbg-b.patch:

----------- [cut here ] --------- [please bite here ] ---------
Kernel BUG at r8169:1702
invalid operand: 0000 [1]
CPU 0
Modules linked in: r8169 af_packet ide_cd cdrom via_rhine mii crc32 floppy 
radeon reiserfs dm_mod uhci_hcd ehci_hcd usbcorx
Pid: 0, comm: swapper Not tainted 2.6.9-rc1-bk17-r8169-b
RIP: 0010:[<ffffffffa00e9f24>] 
<ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436}
RSP: 0018:ffffffff8039bc38  EFLAGS: 00010206
RAX: 0000000000000000 RBX: 0000000000000c00 RCX: 0000000000000000
RDX: 0000000000000600 RSI: 000000003ef4d012 RDI: 00000100023c3070
RBP: 0000010038ee4360 R08: 0000000000000000 R09: 0000000000000000
R10: 000001003f614e28 R11: 000001003bacdda0 R12: 0000000000000bfc
R13: 0000000000000000 R14: 0000000000000000 R15: 0000010036f70000
FS:  0000002a9556dd40(0000) GS:ffffffff803f3040(0000) knlGS:0000000000000000
CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
CR2: 00000039cbb8bd60 CR3: 0000000000101000 CR4: 00000000000006e0
Process swapper (pid: 0, threadinfo ffffffff803f6000, task ffffffff802ef480)
Stack: 0000000000000bfc ffffffffa00ea3e0 0000010000000286 0000010038ee4000
       000001003fc36b80 0000000000008001 ffffff0000056000 0000000000000014
       0000010038ee4360 0000010038ee4000
Call Trace:<IRQ> <ffffffffa00ea3e0>{:r8169:pci_unmap_single+0} 
<ffffffffa00ea0f3>{:r8169:rtl8169_interrupt+147}
       <ffffffff8011252c>{handle_IRQ_event+44} <ffffffff801126c3>{do_IRQ+147}
       <ffffffff8010de20>{default_idle+0} <ffffffff80110051>{ret_from_intr+0}
        <EOI> <ffffffff8010de44>{default_idle+36} 
<ffffffff8010deca>{cpu_idle+26}
       <ffffffff803f9723>{start_kernel+339}

Code: 0f 0b a9 a5 0e a0 ff ff ff ff a6 06 48 8b 7c 24 20 8b 87 9c
RIP <ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436} RSP <ffffffff8039bc38>
 <0>Kernel panic - not syncing: Aiee, killing interrupt handler!

> I assume the oops happen immediately and you can not even tell if a few
> packets were transmitted/received, right ?

Not really. If I disconnect the network cable, then it does not crash on 
2.6.9-rc1-bk17, and on r8169-dbg-a.patch and .r8169-dbg-b.patch too.

So from this machine if I ping a remote machine, ping never succeeds, but it 
does not crash either. OTOH, when I ping from a remote machine, it crashes 
instantaneously. (So it seems it is somehow related to RX related 
functionality).

> I'll welcome the objdump -S of both r8169.o modules as well as the section
> of the vmlinux file where skb_over_panic() appears.

With objdumb of r8169 I have no problems (please refer to the attachments), 
but I do not know how to extract the skb_over_panic() section from vmlinux. 
Could you please explain it to me as to how to do that?, perhaps in a private 
email.

Thank you.
Hari.

[-- Attachment #2: objdump-2.6.9-rc1-bk17-r8169.bz2 --]
[-- Type: application/x-bzip2, Size: 19970 bytes --]

[-- Attachment #3: objdump-2.6.9-rc1-bk17-r8169-dbg-b.patch.bz2 --]
[-- Type: application/x-bzip2, Size: 20190 bytes --]

[-- Attachment #4: objdump-2.6.9-rc1-bk17-r8169-dbg-a.patch.bz2 --]
[-- Type: application/x-bzip2, Size: 21297 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-12  8:32         ` Srihari Vijayaraghavan
@ 2004-09-12 23:15           ` Francois Romieu
  2004-09-13 14:16             ` Srihari Vijayaraghavan
  2004-09-23  0:03             ` Srihari Vijayaraghavan
  0 siblings, 2 replies; 9+ messages in thread
From: Francois Romieu @ 2004-09-12 23:15 UTC (permalink / raw)
  To: Srihari Vijayaraghavan; +Cc: netdev

Srihari Vijayaraghavan <sriharivijayaraghavan@yahoo.com.au> :
[...]
> Kernel BUG at r8169:1702
> invalid operand: 0000 [1]
> CPU 0
> Modules linked in: r8169 af_packet ide_cd cdrom via_rhine mii crc32 floppy 
> radeon reiserfs dm_mod uhci_hcd ehci_hcd usbcorx
> Pid: 0, comm: swapper Not tainted 2.6.9-rc1-bk17-r8169-b
> RIP: 0010:[<ffffffffa00e9f24>] 
> <ffffffffa00e9f24>{:r8169:rtl8169_rx_interrupt+436}

0000000000001d70 <rtl8169_rx_interrupt>:
[...]
    1f0d:       b9 02 00 00 00          mov    $0x2,%ecx
    1f12:       ba 00 06 00 00          mov    $0x600,%edx
    1f17:       ff 54 24 08             callq  *0x8(%rsp)

-> pci_action(...)

    1f1b:       41 81 fc fc 05 00 00    cmp    $0x5fc,%r12d
    1f22:       7e 0c                   jle    1f30 <rtl8169_rx_interrupt+0x1c0>
    1f24:       0f 0b                   ud2a

-> BUG_ON(pkt_size > (RX_BUF_SIZE - 4));

> RSP: 0018:ffffffff8039bc38  EFLAGS: 00010206
> RAX: 0000000000000000 RBX: 0000000000000c00 RCX: 0000000000000000
> RDX: 0000000000000600 RSI: 000000003ef4d012 RDI: 00000100023c3070
> RBP: 0000010038ee4360 R08: 0000000000000000 R09: 0000000000000000
> R10: 000001003f614e28 R11: 000001003bacdda0 R12: 0000000000000bfc
                                                                ^^^
-> 3068.
   RX_BUF_SIZE*2 - 4 ?

/me scratches head

Can you #define RX_BUF_SIZE 3072 and run with r8169-dbg-b applied ?

--
Ueimor

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-12 23:15           ` Francois Romieu
@ 2004-09-13 14:16             ` Srihari Vijayaraghavan
  2004-09-23  0:03             ` Srihari Vijayaraghavan
  1 sibling, 0 replies; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-13 14:16 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev

On Mon, 13 Sep 2004 09:15 am, Francois Romieu wrote:
> Srihari Vijayaraghavan <sriharivijayaraghavan@yahoo.com.au> :
> ...
> Can you #define RX_BUF_SIZE 3072 and run with r8169-dbg-b applied ?
>

That does not help. It hangs on a first ping from a remote machine.

There is no OOPS or BUG or panic and it simply hard locks. No sysrq either.
(Pressing the power switch was the only option.)

Thank you.
Hari.

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: r8169 - panic and a fix
  2004-09-12 23:15           ` Francois Romieu
  2004-09-13 14:16             ` Srihari Vijayaraghavan
@ 2004-09-23  0:03             ` Srihari Vijayaraghavan
  1 sibling, 0 replies; 9+ messages in thread
From: Srihari Vijayaraghavan @ 2004-09-23  0:03 UTC (permalink / raw)
  To: Francois Romieu; +Cc: netdev

I see your patch for r8169 in Linus' bk tree. I have tried 2.6.9-rc2-bk8, and 
it works just fine.

Thank you.
Hari

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-09-23  0:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-08 12:24 r8169 - panic and a fix Srihari Vijayaraghavan
2004-09-08 19:06 ` Francois Romieu
2004-09-09 14:08   ` Srihari Vijayaraghavan
2004-09-11  1:47     ` Srihari Vijayaraghavan
2004-09-11 12:19       ` Francois Romieu
2004-09-12  8:32         ` Srihari Vijayaraghavan
2004-09-12 23:15           ` Francois Romieu
2004-09-13 14:16             ` Srihari Vijayaraghavan
2004-09-23  0:03             ` Srihari Vijayaraghavan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.