2004-09-23 10:09:13

by Lukas Hejtmanek

[permalink] [raw]
Subject: 2.6.9-rc2-mm2 fn_hash_insert oops

Hello,

Sep 23 11:26:24 debian kernel: c030a94e
Sep 23 11:26:24 debian kernel: PREEMPT
Sep 23 11:26:24 debian kernel: Modules linked in: wlan_wep yenta_socket pcmcia_core ath_pci ath_rate_onoe wlan a
th_hal i830 8139too ehci_hcd uhci_hcd rtc
Sep 23 11:26:24 debian kernel: CPU: 0
Sep 23 11:26:24 debian kernel: EIP: 0060:[fn_hash_insert+1039/1159] Tainted: P VLI
Sep 23 11:26:24 debian kernel: EFLAGS: 00210206 (2.6.9-rc2-mm2)
Sep 23 11:26:24 debian kernel: EIP is at fn_hash_insert+0x40f/0x487
Sep 23 11:26:24 debian kernel: eax: 00000000 ebx: ccd68388 ecx: 6036fb93 edx: 00000c01
Sep 23 11:26:24 debian kernel: esi: cdd19e5c edi: cdfd6980 ebp: ccf418a0 esp: cdd19d90
Sep 23 11:26:24 debian kernel: ds: 007b es: 007b ss: 0068
Sep 23 11:26:24 debian kernel: Process ifconfig (pid: 1470, threadinfo=cdd18000 task=cbbe0cf0)
Sep 23 11:26:24 debian kernel: Stack: ccd68380 00000000 00000000 cdd19ddc 000000d0 415296c0 04590480 cc988310
Sep 23 11:26:24 debian kernel: 00000000 6036fb93 0c0159e4 cc988310 6036fb93 0016f057 00000002 00000020
Sep 23 11:26:24 debian kernel: f0000017 ccd68380 00000000 ffffffef 6036fb93 cdd19e0c cdd19e5c cdd19e40
Sep 23 11:26:24 debian kernel: Call Trace:
Sep 23 11:26:24 debian kernel: [fib_magic+271/284] fib_magic+0x10f/0x11c
Sep 23 11:26:24 debian kernel: [filemap_nopage+429/910] filemap_nopage+0x1ad/0x38e
Sep 23 11:26:24 debian kernel: [fib_add_ifaddr+113/390] fib_add_ifaddr+0x71/0x186
Sep 23 11:26:24 debian kernel: [fib_inetaddr_event+99/101] fib_inetaddr_event+0x63/0x65
Sep 23 11:26:24 debian kernel: [notifier_call_chain+39/62] notifier_call_chain+0x27/0x3e
Sep 23 11:26:24 debian kernel: [inet_insert_ifa+162/319] inet_insert_ifa+0xa2/0x13f
Sep 23 11:26:24 debian kernel: [devinet_ioctl+867/1828] devinet_ioctl+0x363/0x724
Sep 23 11:26:24 debian kernel: [inet_ioctl+94/158] inet_ioctl+0x5e/0x9e
Sep 23 11:26:24 debian kernel: [sock_ioctl+255/679] sock_ioctl+0xff/0x2a7
Sep 23 11:26:24 debian kernel: [sys_ioctl+249/598] sys_ioctl+0xf9/0x256
Sep 23 11:26:24 debian kernel: [do_page_fault+0/1449] do_page_fault+0x0/0x5a9
Sep 23 11:26:24 debian kernel: [syscall_call+7/11] syscall_call+0x7/0xb
Sep 23 11:26:24 debian kernel: Code: ce 89 5c 24 2c 8b 43 04 8b 18 8b 0b 89 4c 24 1c 0f 18 01 90 3b 5b 04 74 34
8b 47 28 89 44 24 20 8b 4b 08 8b 44 24 20 89 4c 24 24 <39> 41 28 75 1d 0f b6 43 0d 3b 44 24 38 74 2a 8b 5c 24 1c
8b 03

--
Luk?? Hejtm?nek


2004-09-23 10:16:59

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

Lukas Hejtmanek <[email protected]> wrote:
>
> Sep 23 11:26:24 debian kernel: EIP: 0060:[fn_hash_insert+1039/1159] Tainted: P VLI
>

This might fix it

--- a/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00
+++ b/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00
@@ -536,7 +536,7 @@
* information.
*/
fa_orig = fa;
- list_for_each_entry(fa, fa->fa_list.prev, fa_list) {
+ list_for_each_entry(fa, fa_orig->fa_list.prev, fa_list) {
if (fa->fa_info->fib_priority != fi->fib_priority)
break;
if (fa->fa_type == type &&

2004-09-23 10:24:13

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Thu, Sep 23, 2004 at 03:14:51AM -0700, Andrew Morton wrote:
> Lukas Hejtmanek <[email protected]> wrote:
> >
> > Sep 23 11:26:24 debian kernel: EIP: 0060:[fn_hash_insert+1039/1159] Tainted: P VLI
> >
>
> This might fix it
>
> --- a/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00
> +++ b/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00

Thanx, I will try it and let you now.

Another issue is with pppd as someone had reported. Unfortunately davem latest
patch seems to be included. Here is report:
Pid: 1597, comm: pppd
EIP: 0060:[<c030aabb>] CPU: 0
EIP is at fn_hash_delete+0xf5/0x29c
EFLAGS: 00000293 Not tainted (2.6.9-rc2-mm2)
EAX: ce654428 EBX: ce650360 ECX: 4b01140a EDX: ce654428
ESI: c1fc5e50 EDI: 00000000 EBP: 00000020 DS: 007b ES: 007b
CR0: 8005003b CR2: 0813f008 CR3: 033fe000 CR4: 00000690
[<c0121295>] register_proc_table+0xa3/0x10b
[<c030824e>] fib_magic+0xe9/0x11c
[<c03085b5>] fib_del_ifaddr+0x1ae/0x21b
[<c0308697>] fib_inetaddr_event+0x2b/0x65
[<c0127d55>] notifier_call_chain+0x27/0x3e
[<c02ffd38>] inet_del_ifa+0x94/0x146
[<c030097a>] devinet_ioctl+0x4d8/0x724
[<c0302afa>] inet_ioctl+0x5e/0x9e
[<c02bbb99>] sock_ioctl+0xff/0x2a7
[<c01677c7>] sys_ioctl+0xf9/0x256
[<c010511f>] syscall_call+0x7/0xb

Which causes endless loop.

--
Luk?? Hejtm?nek

2004-09-23 10:37:46

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Thu, Sep 23, 2004 at 03:14:51AM -0700, Andrew Morton wrote:
> Lukas Hejtmanek <[email protected]> wrote:
> >
> > Sep 23 11:26:24 debian kernel: EIP: 0060:[fn_hash_insert+1039/1159] Tainted: P VLI
> >
>
> This might fix it
>
> --- a/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00
> +++ b/net/ipv4/fib_hash.c 2004-09-23 03:13:49 -07:00
> @@ -536,7 +536,7 @@
> * information.
> */
> fa_orig = fa;
> - list_for_each_entry(fa, fa->fa_list.prev, fa_list) {
> + list_for_each_entry(fa, fa_orig->fa_list.prev, fa_list) {
> if (fa->fa_info->fib_priority != fi->fib_priority)
> break;
> if (fa->fa_type == type &&

It has fixed it.

However there is still the issue with endless loop in fn_hash_delete :(

--
Luk?? Hejtm?nek

2004-09-23 10:50:58

by Andrew Morton

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

Lukas Hejtmanek <[email protected]> wrote:
>
> However there is still the issue with endless loop in fn_hash_delete :(

Well there are a couple of other fixes in there.

You could try http://www.zip.com.au/~akpm/linux/patches/stuff/x.bz2 which
is my current tree, against 2.6.9-rc2. It has the recent net fixes.

2004-09-23 11:16:53

by Herbert Xu

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

Lukas Hejtmanek <[email protected]> wrote:
>
> However there is still the issue with endless loop in fn_hash_delete :(

Same problem, same fix. Can someone think of a generic fix to
list_for_each_*?

Signed-off-by: Herbert Xu <[email protected]>

Cheers,
--
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
--
===== net/ipv4/fib_hash.c 1.22 vs edited =====
--- 1.22/net/ipv4/fib_hash.c 2004-09-22 09:31:48 +10:00
+++ edited/net/ipv4/fib_hash.c 2004-09-23 21:16:04 +10:00
@@ -608,6 +608,7 @@
struct fn_hash *table = (struct fn_hash*)tb->tb_data;
struct fib_node *f;
struct fib_alias *fa, *fa_to_delete;
+ struct list_head *fa_head;
int z = r->rtm_dst_len;
struct fn_zone *fz;
u32 key;
@@ -633,7 +634,8 @@
return -ESRCH;

fa_to_delete = NULL;
- list_for_each_entry(fa, fa->fa_list.prev, fa_list) {
+ fa_head = fa->fa_list.prev;
+ list_for_each_entry(fa, fa_head, fa_list) {
struct fib_info *fi = fa->fa_info;

if ((!r->rtm_type ||

2004-09-23 14:05:31

by Lukas Hejtmanek

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Thu, Sep 23, 2004 at 09:16:32PM +1000, Herbert Xu wrote:
> Lukas Hejtmanek <[email protected]> wrote:
> >
> > However there is still the issue with endless loop in fn_hash_delete :(
>
> Same problem, same fix. Can someone think of a generic fix to
> list_for_each_*?

It helped. Thankx.

--
Luk?? Hejtm?nek

2004-09-23 19:16:37

by Ingo Molnar

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops


* Herbert Xu <[email protected]> wrote:

> Lukas Hejtmanek <[email protected]> wrote:
> >
> > However there is still the issue with endless loop in fn_hash_delete :(
>
> Same problem, same fix. Can someone think of a generic fix to
> list_for_each_*?
>
> Signed-off-by: Herbert Xu <[email protected]>

did the trick here too.

on a related note, e100 ifup still gives:

enable_irq(16) unbalanced from c021afa5
[<c01322a0>] enable_irq+0xd0/0xe0
[<c021afa5>] e100_up+0xf5/0x1e0
[<c021afa5>] e100_up+0xf5/0x1e0
[<c021a500>] e100_intr+0x0/0x130
[<c021c19d>] e100_open+0x2d/0x80
[<c014741a>] handle_mm_fault+0x14a/0x1f0
[<c02d9c55>] dev_open+0x85/0xa0
[<c02ddc04>] dev_mc_upload+0x24/0x40
[<c02db363>] dev_change_flags+0x53/0x130
[<c0314bcb>] devinet_ioctl+0x26b/0x6c0
[<c0317106>] inet_ioctl+0x66/0xb0
[<c02d1019>] sock_ioctl+0xc9/0x290
[<c0169eda>] sys_ioctl+0xca/0x230
[<c01140c0>] do_page_fault+0x0/0x6f0
[<c01044c9>] sysenter_past_esp+0x52/0x71

this is with Andrew's current tree (x.bz2).

Ingo

2004-09-23 20:47:12

by David Miller

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Thu, 23 Sep 2004 21:16:32 +1000
Herbert Xu <[email protected]> wrote:

> Lukas Hejtmanek <[email protected]> wrote:
> >
> > However there is still the issue with endless loop in fn_hash_delete :(
>
> Same problem, same fix.

Applied, thanks Herbert.

2004-09-23 21:44:11

by Nuno Ferreira

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Qui, 2004-09-23 at 21:16 +1000, Herbert Xu wrote:
> Lukas Hejtmanek <[email protected]> wrote:
> >
> > However there is still the issue with endless loop in fn_hash_delete :(
>
> Same problem, same fix. Can someone think of a generic fix to
> list_for_each_*?
>

This also fixed the problem I reported earlier with the machine freezing
when my Speedtouch USB ADSL modem connected.

Thanks

2004-09-23 23:37:55

by Martin Diehl

[permalink] [raw]
Subject: Re: 2.6.9-rc2-mm2 fn_hash_insert oops

On Thu, 23 Sep 2004, David S. Miller wrote:

> On Thu, 23 Sep 2004 21:16:32 +1000
> Herbert Xu <[email protected]> wrote:
>
> > Lukas Hejtmanek <[email protected]> wrote:
> > >
> > > However there is still the issue with endless loop in fn_hash_delete :(
> >
> > Same problem, same fix.
>
> Applied, thanks Herbert.

FYI: it seems applying these two list_for_each fixes did also solve a
related issue with different symptoms, which I was just seeing:

Unable to handle kernel NULL pointer dereference at virtual address 00000028
printing eip:
c0267a35
*pde = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: tulip soundcore parport_pc lp parport usblp ohci_hcd usbcore ne2k_pci 8390 crc32 rtc
CPU: 0
EIP: 0060:[<c0267a35>] Not tainted VLI
EFLAGS: 00010297 (2.6.9-rc2-mm2)
EIP is at fn_hash_insert+0x225/0x3e0
eax: 00000000 ebx: c3580401 ecx: cadcc2ec edx: 00000000
esi: c358bea0 edi: cad03314 ebp: cbd335cc esp: c358be30
ds: 007b es: 007b ss: 0068
Process route (pid: 2667, threadinfo=c358a000 task=c333b850)
Stack: 00000000 cadcc2ec 00000000 0002a8c0 00000001 00000000 cbd53ca8 cad0330c
ffffffef 00000000 c0141a72 00000000 c01422e7 cbc3e600 ffffff97 0000890b
0000890b c358a000 c02654c7 c11ca9f4 c358bea0 c358bf10 c358be90 00000000
Call Trace:
[<c0141a72>] check_spinlock_acquired+0x12/0x20
[<c01422e7>] check_slabp+0x17/0xe0
[<c02654c7>] ip_rt_ioctl+0x137/0x170
[<c0260e90>] inet_ioctl+0x40/0xa0
[<c021ea30>] sock_ioctl+0x2c0/0x300
[<c0168256>] sys_ioctl+0x266/0x2b0
[<c0104317>] syscall_call+0x7/0xb
Code: 75 14 8b 74 24 50 8a 46 06 38 47 0e 75 08 39 ea 0f 84 ae 01 00 00 89 cf 8b 07 89 c1 8d 74 26 00 3b 7f 04 74 0b 8b 57 08 8b 04 24 <39> 42 28 74 c8 81 e3 00 08 00 00 75 04 8b 7c 24 04 8b 54 24 58

Thanks,
Martin