On Sun, 7 Jan 2007, Peter Osterlund wrote:

> Linus Torvalds <[EMAIL PROTECTED]> writes:
> 
> > Patrick McHardy (2):
> >       [NETFILTER]: New connection tracking is not EXPERIMENTAL anymore
> 
> I get kernel panics when doing large ethernet transfers. A loop doing
> continuous scp transfers of some large (>100MB) files makes the kernel
> crash after a few minutes. scp runs on a different machine and copies
> data from the machine that crashes. (The first crash did not happen
> when scp was used, but scp is an easy way to reproduce the problem.)
> 
> I've seen this crash also with 2.6.20-rc2-git-something. Previously I
> ran these kernels quite a lot and used a ppp link without problems.
> Today I started using eth0 and the crashes started to occur. I have
> netfilter rules for ppp0, but no rules for eth0. Earlier kernels have
> been working perfectly for large eth0 transfers on this machine.
> 
> Hand copied data from the console:
> 
>   BUG: unable to handle kernel paging request at virtual address 9f5cea9f
>    printing eip:
>   c034c729
>   *pde = 00000000
>   Ooops: 0000 [#1]
>   PREEMPT
>   Modules linked in: ... 8139too ...
>   CPU: 0
>   EIP: 0060:[<c034c729>] Not tainted VLI
>   EFALLGS: 00010206 (2.6.20-rc4 #13)
>   EIP is at ipv4_conntrack_help+0x6b/0x83
>   eax: c0475e44 ebx: 9f5cea37 ecx: d1dcebb0 edx: 00000014
>   esi: d1dcebb0 edi: c0475e44 ebp: c0475dd8 esp: c0475dc4

That's 

        and    $0xf,%dl
        movzbl %dl,%edx
        lea    (%ecx,%edx,4),%edx
        movzbl %bl,%eax
        mov    %eax,(%esp)
        mov    %esi,%ecx
        mov    %edi,%eax
        mov    0xfffffff0(%ebp),%ebx
**      call   *0x68(%ebx)              **
        add    $0x8,%esp
        pop    %ebx
        pop    %esi
        pop    %edi
        pop    %ebp
        ret

which is ipv4_conntrack_help():

        return help->helper->help(pskb,
                (*pskb)->nh.raw - (*pskb)->data
                                + (*pskb)->nh.iph->ihl*4,
                ct, ctinfo);

and that call instruction is the one that oopses because "help->helper" is 
corrupt (it's 0x9f5cea37 - not a valid kernel pointer).

David, there really *is* something screwy in netfilter. 

                        Linus
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to