[patch-2.4.0-test7] bugfix - ipv6 panic on boot

From: Tigran Aivazian (tigran@veritas.com)
Date: Fri Aug 25 2000 - 15:09:14 EST


Hi Linus,

Attached patch fixes the bug - ipv6 tries to use sockfs before its
mounted.

I also attached (for the benefit of linux-kernel listeners) my serial
console session log.

Regards,
Tigran

--- linux/net/socket.c Thu Aug 24 08:08:47 2000
+++ work/net/socket.c Fri Aug 25 21:00:52 2000
@@ -1710,10 +1710,11 @@
          * Initialize the protocols module.
          */
 
- proto_init();
-
         register_filesystem(&sock_fs_type);
         sock_mnt = kern_mount(&sock_fs_type);
+
+ proto_init();
+
 
         /*
          * The netlink device handler may be needed early.

Linux version 2.4.0-test7 (root@saturn) (gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)) #2 SMP Fri Aug 25 20:41:21 BST 2000
BIOS-provided physical RAM map:
 BIOS-e820: 000000000009fc00 @ 0000000000000000 (usable)
 BIOS-e820: 0000000000000400 @ 000000000009fc00 (reserved)
 BIOS-e820: 0000000000010000 @ 00000000000f0000 (reserved)
 BIOS-e820: 0000000000001000 @ 00000000fec00000 (reserved)
 BIOS-e820: 0000000000001000 @ 00000000fee00000 (reserved)
 BIOS-e820: 0000000000010000 @ 00000000ffff0000 (reserved)
 BIOS-e820: 000000003fef0000 @ 0000000000100000 (usable)
 BIOS-e820: 000000000000d000 @ 000000003fff3000 (ACPI data)
 BIOS-e820: 0000000000003000 @ 000000003fff0000 (ACPI NVS)
Warning only 896MB will be used.
Use a HIGHMEM enabled kernel.
Scan SMP from c0000000 for 1024 bytes.
Scan SMP from c009fc00 for 1024 bytes.
Scan SMP from c00f0000 for 65536 bytes.
found SMP MP-table at 000f5b30
hm, page 000f5000 reserved twice.
hm, page 000f6000 reserved twice.
hm, page 000f1000 reserved twice.
hm, page 000f2000 reserved twice.
On node 0 totalpages: 229376
zone(0): 4096 pages.
zone(1): 225280 pages.
zone(2): 0 pages.
Intel MultiProcessor Specification v1.1
    Virtual Wire compatibility mode.
OEM ID: OEM00000 Product ID: PROD00000000 APIC at: 0xFEE00000
Processor #0 Pentium(tm) Pro APIC version 17
    Floating point unit present.
    Machine Exception supported.
    64 bit compare & exchange supported.
    Internal APIC present.
    Bootup CPU
Processor #1 Pentium(tm) Pro APIC version 17
    Floating point unit present.
    Machine Exception supported.
    64 bit compare & exchange supported.
    Internal APIC present.
Bus #0 is PCI
Bus #1 is PCI
Bus #2 is PCI
Bus #3 is ISA
I/O APIC #2 Version 17 at 0xFEC00000.
Int: type 3, pol 0, trig 0, bus 3, IRQ 00, APIC ID 2, APIC INT 00
Int: type 0, pol 0, trig 0, bus 3, IRQ 01, APIC ID 2, APIC INT 01
Int: type 0, pol 0, trig 0, bus 3, IRQ 00, APIC ID 2, APIC INT 02
Int: type 0, pol 0, trig 0, bus 3, IRQ 03, APIC ID 2, APIC INT 03
Int: type 0, pol 0, trig 0, bus 3, IRQ 04, APIC ID 2, APIC INT 04
Int: type 0, pol 0, trig 0, bus 3, IRQ 05, APIC ID 2, APIC INT 05
Int: type 0, pol 0, trig 0, bus 3, IRQ 06, APIC ID 2, APIC INT 06
Int: type 0, pol 0, trig 0, bus 3, IRQ 07, APIC ID 2, APIC INT 07
Int: type 0, pol 1, trig 1, bus 3, IRQ 08, APIC ID 2, APIC INT 08
Int: type 0, pol 0, trig 0, bus 3, IRQ 09, APIC ID 2, APIC INT 09
Int: type 0, pol 0, trig 0, bus 3, IRQ 0a, APIC ID 2, APIC INT 0a
Int: type 0, pol 0, trig 0, bus 3, IRQ 0b, APIC ID 2, APIC INT 0b
Int: type 0, pol 0, trig 0, bus 3, IRQ 0c, APIC ID 2, APIC INT 0c
Int: type 0, pol 0, trig 0, bus 3, IRQ 0d, APIC ID 2, APIC INT 0d
Int: type 0, pol 0, trig 0, bus 3, IRQ 0e, APIC ID 2, APIC INT 0e
Int: type 0, pol 0, trig 0, bus 3, IRQ 0f, APIC ID 2, APIC INT 0f
Int: type 0, pol 3, trig 3, bus 0, IRQ 24, APIC ID 2, APIC INT 11
Int: type 0, pol 3, trig 3, bus 0, IRQ 28, APIC ID 2, APIC INT 12
Int: type 0, pol 3, trig 3, bus 0, IRQ 29, APIC ID 2, APIC INT 12
Int: type 0, pol 3, trig 3, bus 0, IRQ 30, APIC ID 2, APIC INT 10
Int: type 0, pol 3, trig 3, bus 1, IRQ 00, APIC ID 2, APIC INT 10
Int: type 0, pol 3, trig 3, bus 2, IRQ 10, APIC ID 2, APIC INT 13
Int: type 0, pol 3, trig 3, bus 2, IRQ 14, APIC ID 2, APIC INT 10
Int: type 2, pol 3, trig 1, bus 3, IRQ 00, APIC ID 2, APIC INT 17
Lint: type 3, pol 0, trig 0, bus 0, IRQ 00, APIC ID ff, APIC LINT 00
Lint: type 1, pol 0, trig 0, bus 0, IRQ 00, APIC ID ff, APIC LINT 01
Processors: 2
mapped APIC to ffffe000 (fee00000)
mapped IOAPIC to ffffd000 (fec00000)
Kernel command line: BOOT_IMAGE=debug7-ipv6 ro root=1643 video=matrox:vesa:0x118 parport=0x378,7 console=ttyS1,9600 console=tty0
Initializing CPU#0
Detected 548545327 Hz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 1094.45 BogoMIPS
kdb version 1.3 by Scott Lurndal. Copyright SGI, All Rights Reserved
Memory: 900128k/917504k available (1900k kernel code, 16988k reserved, 128k data, 224k init, 0k highmem)
Dentry-cache hash table entries: 131072 (order: 8, 1048576 bytes)
Buffer-cache hash table entries: 65536 (order: 6, 262144 bytes)
Page-cache hash table entries: 262144 (order: 8, 1048576 bytes)
Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
CPU serial number disabled.
Checking 386/387 coupling... OK, FPU using exception 16 error reporting.
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking SIMD FPU exceptions... OK, SIMD FPU using exception 19 error reporting.
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
mtrr: v1.36 (20000221) Richard Gooch (rgooch@atnf.csiro.au)
CPU serial number disabled.
CPU0: Intel Pentium III (Katmai) stepping 03
per-CPU timeslice cutoff: 1429.62 usecs.
Getting VERSION: 40011
Getting VERSION: 40011
Getting ID: 0
Getting ID: f000000
Getting LVT0: 700
Getting LVT1: 400
enabled ExtINT on CPU#0
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
CPU present map: 3
Booting processor 1/1 eip 2000
Setting warm reset code and vector.
1.
2.
3.
Asserting INIT.
Waiting for send to finish...
+Deasserting INIT.
Waiting for send to finish...
+#startup loops: 2.
Sending STARTUP #1.
After apic_write.
Startup point 1.
Initializing CPU#1
Waiting for send to finish...
CPU#1 (phys ID: 1) waiting for CALLOUT
+Sending STARTUP #2.
After apic_write.
Startup point 1.
Waiting for send to finish...
+After Startup.
Before Callout 1.
After Callout 1.
CALLIN, before setup_local_APIC().
masked ExtINT on CPU#1
ESR value before enabling vector: 00000000
ESR value after enabling vector: 00000000
Calibrating delay loop... 1094.45 BogoMIPS
Stack at about c1e19fb4
CPU serial number disabled.
OK.
CPU1: Intel Pentium III (Katmai) stepping 03
CPU has booted.
Before bogomips.
Total of 2 processors activated (2188.90 BogoMIPS).
Before bogocount - setting activated=1.
Boot done.
ENABLING IO-APIC IRQs
...changing IO-APIC physical APIC ID to 2 ... ok.
Synchronizing Arb IDs.
..TIMER: vector=49 pin1=2 pin2=0
activating NMI Watchdog ... done.
testing the IO APIC.......................

.................................... done.
calibrating APIC timer ...
..... CPU clock speed is 548.5465 MHz.
..... host bus clock speed is 99.7356 MHz.
cpu: 0, clocks: 997356, slice: 332452
CPU0<T0:997344,T1:664880,D:12,S:332452,C:997356>
cpu: 1, clocks: 997356, slice: 332452
CPU1<T0:997344,T1:332432,D:8,S:332452,C:997356>
checking TSC synchronization across CPUs: passed.
Setting commenced=1, go go go
PCI: PCI BIOS revision 2.10 entry at 0xfb270, last bus=2
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Using IRQ router PIIX [8086/7000] at 00:07.0
PCI->APIC IRQ transform: (B0,I9,P0) -> 17
PCI->APIC IRQ transform: (B0,I10,P0) -> 18
PCI->APIC IRQ transform: (B0,I10,P0) -> 18
PCI->APIC IRQ transform: (B0,I12,P0) -> 16
PCI->APIC IRQ transform: (B1,I0,P0) -> 16
PCI->APIC IRQ transform: (B2,I4,P0) -> 19
PCI->APIC IRQ transform: (B2,I5,P0) -> 16
Limiting direct PCI/PCI transfers.
isapnp: Scanning for Pnp cards...
isapnp: Card 'Highlight Plug & Play Ethernet Card'
isapnp: 1 Plug & Play card detected total
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP: Hash tables configured (established 65536 bind 65536)
IPv6 v0.8 for NET4.0
Unable to handle kernel NULL pointer dereference at virtual address 0000001c
 printing eip:
c01c5e75
*pde = 00000000

Entering kdb (0xc1e3c000) on processor 0 Panic: Oops
due to panic @ 0xc01c5e75
eax = 0x00000000 ebx = 0xc1e1e420 ecx = 0xc1e1e340 edx = 0xc1e3c000
esi = 0xc1e3c000 edi = 0xc0105000 esp = 0xc1e3df98 eip = 0xc01c5e75
ebp = 0xc1e3df9c ss = 0x00000018 cs = 0x00000010 eflags = 0x00010286
 ds = 0xc1e30018 es = 0x00000018 origeax = 0xffffffff &regs = 0xc1e3df64
[0]kdb> ps
Task Addr Pid Parent [*] cpu State Thread Command
0xc1e3c000 00000001 00000000 1 000 run 0xc1e3c340*swapper
[0]kdb> btp
diag: -16: Illegal numeric value
[0]kdb>
[0]kdb> btp
diag: -16: Illegal numeric value
[0]kdb> ps  btp 1kdb: expected enter got 0x82 status 0x14

    EBP EIP Function(args)
0xc02f035c 0xc01c5e75 sock_alloc+0x25
                               kernel .text 0xc0100000 0xc01c5e50 0xc01c5f18
0xc1e3dfa8 0xc0313399 icmpv6_init+0x9 (0xc02f3720)
                               kernel .text.init 0xc02fe000 0xc0313390 0xc0313450
0xc1e3dfb4 0xc0312faa inet6_proto_init+0x1a (0xc02f035c)
                               kernel .text.init 0xc02fe000 0xc0312f90 0xc03130c4
0xc1e3dfc4 0xc0312048 proto_init+0x18
                               kernel .text.init 0xc02fe000 0xc0312030 0xc031205c
0xc1e3dfcc 0xc03120a1 sock_init+0x45
                               kernel .text.init 0xc02fe000 0xc031205c 0xc03120c0
0xc1e3dfd4 0xc02fedf1 do_basic_setup+0x29 (0xf00)
                               kernel .text.init 0xc02fe000 0xc02fedc8 0xc02fee10
0xc1e3dfec 0xc0107032 init+0x32
                               kernel .text 0xc0100000 0xc0107000 0xc01071b0
           0xc01091b7 kernel_thread+0x23
                               kernel .text 0xc0100000 0xc0109194 0xc01091cc
[0]kdb> mds sock_mnt
0xc034dea0 00000000 ....
0xc034dea4 00000000 ....
0xc034dea8 00000000 ....
0xc034deac 00000000 ....
0xc034deb0 00000000 ....
0xc034deb4 00000000 ....
0xc034deb8 00000000 ....
0xc034debc 00000000 ....
[0]kdb> mds file_systems
0xc0342960 c02e5960 shm_fs_type
                       kernel .data 0xc02db120 0xc02e5960 0xc02e5980
0xc0342964 00000000 ....
0xc0342968 00000000 ....
0xc034296c 00000000 ....
0xc0342970 00000000 ....
0xc0342974 00000000 ....
0xc0342978 00000000 ....
0xc034297c 00000000 ....
[0]kdb> aha, sockfs not even registered yet - blame Al Viro, maybe...
aha, = 0x0000000a
[0]kdb> go
Oops: 0000
CPU: 0
EIP: 0010:[<c01c5e75>]
EFLAGS: 00010286
eax: 00000000 ebx: c1e1e420 ecx: c1e1e340 edx: c1e3c000
esi: c1e3c000 edi: c0105000 ebp: c1e3df9c esp: c1e3df98
ds: 0018 es: 0018 ss: 0018
Process swapper (pid: 1, stackpage=c1e3d000)
Stack: c02f035c c1e3dfa8 c0313399 c02f035c c1e3dfb4 c0312faa c02f3720 c1e3dfc4
       c0312048 c02f035c 00000f00 c1e3dfcc c03120a1 c1e3dfd4 c02fedf1 c1e3dfec
       c0107032 00000f00 c02fdfb8 c0105000 ffffffff c02fdfc0 c01091b7 00000000
Call Trace: [<c0107032>] [<c0105000>] [<c01091b7>]
Code: 8b 40 1c 89 81 84 00 00 00 66 c7 41 22 ff c1 c6 81 d0 00 00
Kernel panic: Attempted to kill init!
cu: Got hangup signal

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Aug 31 2000 - 21:00:16 EST