* 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.