Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp693621imm; Wed, 1 Aug 2018 03:51:01 -0700 (PDT) X-Google-Smtp-Source: AAOMgpf+9z4/FRiiyz4kXUtsRTHIgCv0xSGwG1Mh8RxzJOTXZ9Pl1QEbEVI+w97RBlXGtcwlxYvy X-Received: by 2002:a63:8f53:: with SMTP id r19-v6mr23831589pgn.17.1533120661688; Wed, 01 Aug 2018 03:51:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533120661; cv=none; d=google.com; s=arc-20160816; b=uXR17CC/stKG+S1hNumEMmPZJld3YhxMz6WNsj4ZHTAaU3ZTXwanvBVai9tadpHgYt qY9wL4bMMfJu+cGsuIveC2zbTmWhQ2ZPSTKSw9NHiW6aOkN33yQVsi1gge3uCCLs+P6M wcXHkdq0eHEsI5M9iGRJ9viMFeYR4PyI7aUaTQL0IYqcS+/J5/CPg6nSPjLaK29GCFTL unszZGp1T4q4Ea1Cac7wIeb+N4+rmVMIVcGv6ySvWMc5LMFpc7D+rKBd1YudG7EdIbOA EMFbexzwPKrBhdXzGNqTNqfMDCfHjVYjuwKQHH78sqdA7PQT933Yhpphlj08ZQ3g82lT eIGQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding :content-language:in-reply-to:mime-version:user-agent:date :message-id:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=8OICv+Y1dMuYh3GpHFlTBDMuB3V3WMbu4pn4lEiil+o=; b=kF5dq6nlw55NEA4xjLKPHzivMgRtscgA5A9Ea+x+ixL7Q6v9VDdFVoyLq2bEWHWpdD rSap3BklkIqgZjc1+TOzqjpLF5847PlhafrxAsWHabejyjAG6v/OvsKDPmHfu4QnLeUj L62rKgWqS7OLlBGfM8i2hkFD5kvInznJvTXqQ9yZDsWAXTWyD3JUtYXCqWj+YVyLdUml wgPnaSKqFuDyW++0uXpaedtCIHVezQMl4FNYnRzu96OUJB8Q5v3HJUHkaq6tWldOU49U dAIo13696UvYrqbIBMyrypQIXqFbezRsLkyQI6HhTs1jlmeYDwWOJ1zimZyymEmunQUV Emow== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hzZDB9jP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h12-v6si16746480pfk.156.2018.08.01.03.50.45; Wed, 01 Aug 2018 03:51:01 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=hzZDB9jP; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388634AbeHAMfB (ORCPT + 99 others); Wed, 1 Aug 2018 08:35:01 -0400 Received: from mail-pf1-f171.google.com ([209.85.210.171]:45094 "EHLO mail-pf1-f171.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388522AbeHAMfB (ORCPT ); Wed, 1 Aug 2018 08:35:01 -0400 Received: by mail-pf1-f171.google.com with SMTP id i26-v6so7653394pfo.12; Wed, 01 Aug 2018 03:49:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=8OICv+Y1dMuYh3GpHFlTBDMuB3V3WMbu4pn4lEiil+o=; b=hzZDB9jP4l/xxlaAs5tTV+pN3KllibWTItRWZETwb8TOCU+TiY6g9OfbLBJs1bqw1q cuxKau0hqRTu81kRIbwwoQNWl5uCSU1boj/Yh5tVd2QDXILxj1GICDdgvyHoCrSxUF50 VsPbxKyK/5KDQwR7zTSk4RLualAy8JrpXcEoXKYdPX7JDJzM1T/dT4THl5n6yeZ5Ha3+ UWhZlVraewBpQoWyU09b4miSwAtBFnSdTwVYNlUI7gREpmPhLSJp1UgUzZrIhMud1jUc +CK/MoYBQCoaq3rAg8L2SeXA+yJ9WSa0bCP0avp0ctJGb9DqGLl28e0flDHE1GsoELvy h4cA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=8OICv+Y1dMuYh3GpHFlTBDMuB3V3WMbu4pn4lEiil+o=; b=eyuWavouumCjM0E2QhfbGrdV8ON6SXlwc2a3jvV7GMWGWTlQuj3If8mYUjpAX5r302 1GDwBYRsnBnz6pVzua/lN3WZ7Xgkd0hgimynsUdhIYXgsRgl7kl6mRF9gQUl9rNN8BJv CiZ5siYNh6lf+EnN3LrNZ3esI2vjCRondYO6+GQ8O/2B9klFxuVRe22c6o66XPl5Z322 YynvyVKifgqeMO7nCWp6zh5cu9+Mwfw889Vfr+BOqeCggGYT94Rj69ifRANBrZ/1OT8x 7JD/YfQE7dlc1Z2lUIOCtsKmQKEtfiaACpV4Ts4RFTu08rPRZGm3mMhb5zyQsQJOlhVm naxQ== X-Gm-Message-State: AOUpUlEKJhRExhGWu85+VlOavO3FFSxVarfVDg5bp7M0k/PwsKKVn2El 8aERm1SGbCpMn/MZUmri/Bw= X-Received: by 2002:a62:9c17:: with SMTP id f23-v6mr26397154pfe.209.1533120590203; Wed, 01 Aug 2018 03:49:50 -0700 (PDT) Received: from [192.168.86.235] (c-67-180-167-114.hsd1.ca.comcast.net. [67.180.167.114]) by smtp.gmail.com with ESMTPSA id y5-v6sm51739386pfj.169.2018.08.01.03.49.48 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Aug 2018 03:49:49 -0700 (PDT) Subject: Re: AW: AW: PROBLEM: Kernel Oops in UDP stack To: Paolo Abeni , Marcel Hellwig , 'Eric Dumazet' , "'davem@davemloft.net'" , "'kuznet@ms2.inr.ac.ru'" , "'yoshfuji@linux-ipv6.org'" , "'andrew@lunn.ch'" Cc: "'netdev@vger.kernel.org'" , "'linux-kernel@vger.kernel.org'" , Matthias Wystrik References: <18092446dfa7435aaa8deaab65afbf23@ZCOM03.mut-group.com> <96753ca4-88fe-aa26-b439-6e22eaf8b524@gmail.com> <9f9d731107594b368504cbbaf698bc3d@ZCOM03.mut-group.com> <225373e97b42e0e5ee6210b329f0bbb94055b651.camel@redhat.com> From: Eric Dumazet Message-ID: Date: Wed, 1 Aug 2018 03:49:48 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <225373e97b42e0e5ee6210b329f0bbb94055b651.camel@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 08/01/2018 03:44 AM, Paolo Abeni wrote: > On Wed, 2018-08-01 at 10:35 +0000, Marcel Hellwig wrote: >>>> [] (udp_recvmsg+0x284/0x33c) from [] (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)