netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Paolo Abeni <pabeni@redhat.com>,
	Marcel Hellwig <mhellwig@mut-group.com>,
	'Eric Dumazet' <eric.dumazet@gmail.com>,
	"'davem@davemloft.net'" <davem@davemloft.net>,
	"'kuznet@ms2.inr.ac.ru'" <kuznet@ms2.inr.ac.ru>,
	"'yoshfuji@linux-ipv6.org'" <yoshfuji@linux-ipv6.org>,
	"'andrew@lunn.ch'" <andrew@lunn.ch>
Cc: "'netdev@vger.kernel.org'" <netdev@vger.kernel.org>,
	"'linux-kernel@vger.kernel.org'" <linux-kernel@vger.kernel.org>,
	Matthias Wystrik <mwystrik@mut-group.com>
Subject: Re: AW: AW: PROBLEM: Kernel Oops in UDP stack
Date: Wed, 1 Aug 2018 03:49:48 -0700	[thread overview]
Message-ID: <cd53c2fe-5349-c0e2-c6f5-8bcebdef7024@gmail.com> (raw)
In-Reply-To: <225373e97b42e0e5ee6210b329f0bbb94055b651.camel@redhat.com>



On 08/01/2018 03:44 AM, Paolo Abeni wrote:
> On Wed, 2018-08-01 at 10:35 +0000, Marcel Hellwig wrote:
>>>> [<c0228adc>] (udp_recvmsg+0x284/0x33c) from [<c02306e0>] (inet_recvmsg+0x38/0x4c): net/ipv4/udp.c:1234
>>>
>>>              sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
>>>
>>> Unaligned access trap (virtual address c14fe63a), so either sin or ip_hdr(skb) are not on a 32bit alignment
>>>
>>> Can you produce the disassembly of the trapping instruction ?
>>
>> https://gist.github.com/hellow554/6b11c6c0827d5db80a7e66f71f5636ff#file-net_uipv4_udp-lst-L1892-L1895
>>
>> 		sin->sin_addr.s_addr = ip_hdr(skb)->saddr;
>> c0228ad8:	e5943080 	ldr	r3, [r4, #128]	; 0x80
>> c0228adc:	e593300c 	ldr	r3, [r3, #12]
>> c0228ae0: 	e5823004	str	r3, [r2, #4]
> 
> I *think* pskb_trim_rcsum() in __udp4_lib_rcv() can copy the ipv4
> header to an unaligned address, for cloned skbs. If I understood
> correctly the relevant socket is a mcast one, so cloned skbs can land
> there.
> 

kmalloc() should return aligned pointer.

pskb_expand_head() should allocate aligned skb->head

So pskb_expand_head() should keep whatever offset was provided in the source skb 

( Driver called skb_reserve() or similar function)

  reply	other threads:[~2018-08-01 10:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-31 15:06 PROBLEM: Kernel Oops in UDP stack Marcel Hellwig
2018-07-31 15:59 ` Eric Dumazet
2018-08-01  5:55   ` AW: " Marcel Hellwig
2018-08-01 10:20     ` Eric Dumazet
2018-08-01 10:35       ` AW: " Marcel Hellwig
2018-08-01 10:44         ` Paolo Abeni
2018-08-01 10:49           ` Eric Dumazet [this message]
2018-08-01 11:25             ` Eric Dumazet
2018-08-01 11:31               ` AW: " Marcel Hellwig
2018-08-01 13:27                 ` Marcel Hellwig
2018-08-02 11:02                   ` Marcel Hellwig
2018-08-02 13:05                     ` Eric Dumazet
2018-08-02  9:17         ` David Laight
2018-08-02 13:13           ` Eric Dumazet
2018-08-02 13:18             ` David Laight
2018-08-02 13:57             ` AW: " Marcel Hellwig
2018-08-02 15:07               ` Eric Dumazet
2018-08-03  8:24                 ` AW: " Marcel Hellwig
2018-08-07 13:42                   ` Marcel Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cd53c2fe-5349-c0e2-c6f5-8bcebdef7024@gmail.com \
    --to=eric.dumazet@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mhellwig@mut-group.com \
    --cc=mwystrik@mut-group.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).