2000-10-31 22:36:00

by Jarek Luberek

[permalink] [raw]
Subject: Oops in test10 during module loading of 3c509

Just a short Oops report for test10.

Extra Patches: reiserfs: linux-2.4.0-test9-reiserfs-3.6.18
no patch collisions with this patch and test10

test10-pre7 worked fine.

Oops during loading of 3c509-module.
System: Dual PIII/450 256M

Greetings,
jarek

-------------------------------------------------

Oct 31 23:18:52 marvin kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000070
Oct 31 23:18:52 marvin kernel: d08b85ab
Oct 31 23:18:52 marvin kernel: *pde = 00000000
Oct 31 23:18:52 marvin kernel: Oops: 0002
Oct 31 23:18:52 marvin kernel: CPU: 1
Oct 31 23:18:52 marvin kernel: EIP: 0010:[3c509:el3_probe+1355/5024]
Oct 31 23:18:53 marvin kernel: EFLAGS: 00010202
Oct 31 23:18:53 marvin kernel: eax: 00000000 ebx: 00000070 ecx: 00000000 edx: 385a1000
Oct 31 23:18:53 marvin kernel: esi: 00000003 edi: cf6ddf2e ebp: 00000220 esp: cf6ddee4
Oct 31 23:18:53 marvin kernel: ds: 0018 es: 0018 ss: 0018
Oct 31 23:18:53 marvin kernel: Process modprobe (pid: 220, stackpage=cf6dd000)
Oct 31 23:18:53 marvin kernel: Stack: 00000000 00000000 00000000 ffffffea c02c3e18 00000000 ffffffea c02c3c40
Oct 31 23:18:53 marvin kernel: 0000e68c 0000e68d 00000000 0000000b 00ff0000 00000000 ffffffea c1044010
Oct 31 23:18:53 marvin kernel: c02c3c40 385a1000 fffff8e8 d08b935b 00000000 d08b8000 00000000 c011a6cf
Oct 31 23:18:53 marvin kernel: Call Trace: [3c509:el3_probe+4859/5024] [3c509:__insmod_3c509_O/lib/modules/2.4.0-test10/kernel/drivers/ne+0/96] [sys_init_module+1143/1324] [3c509:__insmod_3c509_O/lib/modules/2.4.0-test10/kernel/drivers/ne+72/96] [3c509:__insmod_3c509_O/lib/modules/2.4.0-test10/kernel/drivers/ne+72/96] [system_call+51/56]
Oct 31 23:18:53 marvin kernel: Code: 89 50 70 8b 54 24 48 66 89 53 04 89 68 20 8b 54 24 2c 89 50
Using defaults from ksymoops -t elf32-i386 -a i386

Code; 00000000 Before first symbol
00000000 <_EIP>:
Code; 00000000 Before first symbol
0: 89 50 70 mov %edx,0x70(%eax)
Code; 00000003 Before first symbol
3: 8b 54 24 48 mov 0x48(%esp,1),%edx
Code; 00000007 Before first symbol
7: 66 89 53 04 mov %dx,0x4(%ebx)
Code; 0000000b Before first symbol
b: 89 68 20 mov %ebp,0x20(%eax)
Code; 0000000e Before first symbol
e: 8b 54 24 2c mov 0x2c(%esp,1),%edx
Code; 00000012 Before first symbol
12: 89 50 00 mov %edx,0x0(%eax)

------------------------------------------------------------------

Module Size Used by
es1371 29968 0 (unused)
ac97_codec 7888 0 [es1371]
3c509 7472 1 (initializing)


Attachments:
oops-mail (2.66 kB)

2000-11-01 21:03:37

by Luca Giuzzi

[permalink] [raw]
Subject: Re: Oops in test10 during module loading of 3c509

It seems the cleaning up of the network drivers has been a tad too
aggressive :) There is no init_etherdev() anymore in 3c509.c

The following patch seems to solve the problem.
(the code is taken from a working test10pre5)

Cheers,
lg

--- 3c509.c.test10-broken Wed Nov 1 17:12:08 2000
+++ 3c509.c Wed Nov 1 17:13:37 2000
@@ -434,6 +434,13 @@
/* Free the interrupt so that some other card can use it. */
outw(0x0f00, ioaddr + WN0_IRQ);
found:
+ if (dev == NULL) {
+ dev = init_etherdev(dev, sizeof(struct el3_private));
+ if (dev == NULL) {
+ release_region(ioaddr, EL3_IO_EXTENT);
+ return -ENOMEM;
+ }
+ }
memcpy(dev->dev_addr, phys_addr, sizeof(phys_addr));
dev->base_addr = ioaddr;
dev->irq = irq;