[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1278835332.2538.51.camel@edumazet-laptop>
Date: Sun, 11 Jul 2010 10:02:12 +0200
From: Eric Dumazet <eric.dumazet@...il.com>
To: Avi Kivity <avi@...hat.com>
Cc: Felipe W Damasio <felipewd@...il.com>,
David Miller <davem@...emloft.net>,
Patrick McHardy <kaber@...sh.net>,
linux-kernel@...r.kernel.org, netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH] tproxy: nf_tproxy_assign_sock() can handle tw sockets
Le dimanche 11 juillet 2010 à 08:19 +0300, Avi Kivity a écrit :
> On 07/10/2010 09:17 AM, Eric Dumazet wrote:
> >
> > Strange thing with your crash report is CR2 value, with unexpected value
> > of 000000000b388000 while RAX value is dce8dce85d415d41
> >
> > Faulting instruction is :
> >
> > 48 83 b8 b0 00 00 00 00 cmpq $0x0,0xb0(%rax)
> >
> > So I would have expected CR2 being RAX+0xb0, but its not.
> >
>
> Nothing strange about it. You only get page faults and valid cr2 for
> canonical addresses (17 high order bits all equal). In this case
> rax+0xb0 is not a canonical address, so you got a general protection
> fault instead, with cr2 unchanged.
>
OK, thanks Avi for this information, as I was not aware of this.
So something overwrote sk->sk_prot pointer (or skb->sk pointer) with
some data.
tcp sockets are allocated from a dedicated kmem_cache (because of
SLAB_DESTROY_RCU attribute). Their sk->sk_prot should never change in
normal operation, since underlying memory cannot be reused by another
object type in kernel. It should be NULL or &tcp_prot
Felipe, please describe your configuration as much as possible.
It might be a driver bug with with special kind of network frames.
lsmod
lspci -v
ethtool -k eth0
ethtool -k eth1 (if applicable)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists