[lkml]   [1999]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectCan kill any 2.2.x kernel (When compiled with address translation)


    I've got kernel panic in kernels 2.2.4 - 2.2.10 (those I've tested) on
    both gcc and egcs compiled kernels.
    This is possible that it does not work in the older kernels but those
    not tested.

    I am using ip utility for seting up networking (NAT)

    ip lin set lo up
    ip lin set eth0 up
    ip lin set eth1 up
    ip lin set eth2 up
    ip addr add dev lo brd + scope host
    ip addr add dev eth0 brd +
    ip addr add dev eth1 brd +
    ip addr add dev eth2 brd +
    ip route add via scope global

    ip route add nat via
    ip rule add prio 32 from nat

    the 192.168- simulates for me external netowrk and the 10.0 the

    Any ping -R through the NAT fiirewal causes oops.
    Othervise the configuration works
    well (traceroute , ping, ping -f tracepath - everithing work as it
    should.) The only ping -R is a devil.

    For example when I try to ping -R from to "internet"
    (In my example some computer on 192.168.x.y the kernel oopses.

    Options used: -V (default)
    -o /lib/modules/2.2.10/ (default)
    -k /proc/ksyms (default)
    -l /proc/modules (default)
    -m /boot/ (specified)
    -c 1 (default)

    Unable to handle kernel NULL pointer dereference at virtual address
    current->tss.cr3 = 00101000, %cr3 = 00101000
    *pde = 00000000
    Oops: 0000
    CPU: 0
    EIP: 0010:[<c0166829>]
    EFLAGS: 00010246
    eax: 00000000 ebx: 00000000 ecx: 00000000 edx: c0ffb320
    esi: 0300010a edi: 000000fe ebp: c2dcf834 esp: c01d5e74
    ds: 0018 es: 0018 ss: 0018
    Process swapper (pid: 0, process nr: 0, stackpage=c01d5000)
    Stack: 00000002 c016955e 00000000 0300010a 000000fe c0152342 c01d5e9c
    c3d99ecc 00000000 c3c5fd88 fe0aa920 c0ffb320 c01caaa0 c015664b
    c2c81140 c3d99ecc c2dcf820 00000002 c01d5f00 c0155630 c2dcf820
    Call Trace: [<c016955e>] [<c0152342>] [<c015664b>] [<c0155630>]
    [<c0145fdd>] [<c0154abd>]
    [<c01477ed>] [<c0115d41>] [<c0108c13>] [<c0107a70>]
    [<c0106000>] [<c01062a4>] [<c01079b4>]
    [<c0106000>] [<c010607b>] [<c0106000>] [<c0100176>]
    Code: 8b 81 8c 00 00 00 85 c0 74 7d 8b 50 04 eb 1c 31 c0 8a 42 1c

    >>EIP: c0166829 <inet_select_addr+11/a0>
    Trace: c016955e <__fib_res_prefsrc+1a/20>
    Trace: c0152342 <ip_rt_get_source+42/74>
    Trace: c015664b <ip_forward_options+5b/178>
    Trace: c0155630 <ip_forward+2e0/550>
    Trace: c015577d <ip_forward+42d/550>
    Trace: c0145fdd <__kfree_skb+a1/a8>
    Trace: c01477ed <net_bh+179/1d4>
    Trace: c0106000 <get_options+0/74>
    Trace: c0106000 <get_options+0/74>
    Code: c0166829 <inet_select_addr+11/a0> 00000000 <_EIP>: <===
    Code: c0166829 <inet_select_addr+11/a0> 0: 8b 81 8c 00 00
    movl 0x8c(%ecx),%eax <===
    Code: c016682e <inet_select_addr+16/a0> 5: 00
    Code: c016682f <inet_select_addr+17/a0> 6: 85 c0
    testl %eax,%eax
    Code: c0166831 <inet_select_addr+19/a0> 8: 74 7d
    c01668b0 <inet_select_addr+98/a0>
    Code: c0166833 <inet_select_addr+1b/a0> a: 8b 50 04
    movl 0x4(%eax),%edx
    Code: c0166836 <inet_select_addr+1e/a0> d: eb 1c
    jmp c0166854 <inet_select_addr+3c/a0>
    Code: c0166838 <inet_select_addr+20/a0> f: 31 c0
    xorl %eax,%eax
    Code: c016683a <inet_select_addr+22/a0> 11: 8a 42 1c
    movb 0x1c(%edx),%al

    Aiee, killing interrupt handler
    Kernel panic. Attempted to kill the idle task!
    In swapper task - not syncing

    1 warning issued. Results may not be reliable.

    Richard Bouska

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    Please read the FAQ at

     \ /
      Last update: 2005-03-22 13:52    [W:0.029 / U:2.380 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site