Received: by 10.192.165.148 with SMTP id m20csp1832761imm; Thu, 26 Apr 2018 03:00:01 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+ppKbR54NwDfqqy674NZhSfYKBMs0LGT6a7ebShjaKuFcHSUYdG0o/rb3KGxxKdeqRgYth X-Received: by 10.98.246.25 with SMTP id x25mr31554408pfh.138.1524736801852; Thu, 26 Apr 2018 03:00:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524736801; cv=none; d=google.com; s=arc-20160816; b=jSPDSXDWmLNwL2gezMoP+24AtN8giC85W3OYdyX5Wfkv3QPHWnoGJgKCzyV6ph32LN 7rLxxnhvTkS5DQEeEHDcY7XdQT2XA8tZXSVZ09/AEHuseKwWQbpWPP0EdUYdPItB7dYi q2nDaZaOEZEJABDkCbQ4sTIYkY9H3VPsfZhSEMBrDDDENB3IULESvyY2W43t7SFPHMyF F7GpE9cNr3mfn0zdg98i0XkIEEQNGqZ3alIzSxz8yKsJJYsggv+hzh5HAlA31hbFAjYs vPsCRDrqpniGoRu+7vj055qBXDEqytJhvt4AnaMmw+BZ1bCSKh+QY9dPlXWWqkb8FoMR 7I+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:content-disposition :mime-version:mail-followup-to:message-id:subject:cc:to:from:date :dkim-signature:arc-authentication-results; bh=aupfcqkG003Oemh5u18X7AzJIHI3t/E6A9ywFgfMI6Y=; b=Y1AfTcbSf8UIibIzXBzQVfKJw75Gd/XeQgmYxMlllCE6nmXdzF3hDEk5h/uneTJh2P Zesjv/5VzeHIMHfSe5pv0R6p0z3y1q9fwpuevgim5V4m7rLtXKLCUZ0Jkt0+lRFZp/4d WaWhsbKFZ8tSX6p7Hsdsjh79cEuK7QY0u/lSbeUsnpJ0pMCAOgkDui2tXBljfoBnQaZj zWd+e92m7vf2pBS5gg8ukTgaQ1vI//++CnJVzR3g6YgKJg3GTxeEHTdBcZa/g1cVyU/M w/HJX2/r88tUpBlRqs7S7sv3ZVLPKclJbNJARrOe9L7S4ObKpFGZ3afM/Mynb2wfqsF4 B9Kg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=fI6PXdCh; 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 j10si4445130pgq.249.2018.04.26.02.59.47; Thu, 26 Apr 2018 03:00: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=fI6PXdCh; 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 S1755455AbeDZJ57 (ORCPT + 99 others); Thu, 26 Apr 2018 05:57:59 -0400 Received: from mail-pf0-f195.google.com ([209.85.192.195]:39819 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753879AbeDZJ5t (ORCPT ); Thu, 26 Apr 2018 05:57:49 -0400 Received: by mail-pf0-f195.google.com with SMTP id z9so17907562pfe.6; Thu, 26 Apr 2018 02:57:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:mail-followup-to:mime-version :content-disposition:user-agent; bh=aupfcqkG003Oemh5u18X7AzJIHI3t/E6A9ywFgfMI6Y=; b=fI6PXdChPZeK3Y+2k3GFllBgJyx0gzEhs+Deg8kTWTsM0gwSrn3cjDm7ow259aiBck RZt0hxhkD+4eOb0F9x8mq52N4zCs+E35NXwpmkToL6rVzwXW56UiQs2U8sPstH2OYIEM eSFJ/BKkU0TS8zTGNqwcGA+QR+Q0JZAvFC6OxOtKnkrGPMaqGFhF2lWzkaFKZ96VhSQ1 YC6nEY4+GOGgwgzbkCcdx/h0Bthgt1B5ufQKSCnu8G8eviuD5zsKQw4qC9tCl/cG/Rj6 p2Q3G6hzwiHwwq7WbPEHkGv7HGrgFvAKghIxtzmZvWVbO9penniQzpVnzjJsHnWxg3cS nAjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id :mail-followup-to:mime-version:content-disposition:user-agent; bh=aupfcqkG003Oemh5u18X7AzJIHI3t/E6A9ywFgfMI6Y=; b=JqVQLOOpKm96GRAxq4x806BWv9QYRn1X2zYzYY4rbgBTy0d/PWW3Db0TtgFFVzSfey rZuRmWjeWATEHei9s4WjhEVJZgKx31MH/QlVYdO3YcEYXv8bQCmz5/aOzKm3fhU9LKVY i+NvkW8KXut+nOKBKInbm8G2GyAHUb2uoMFQoJfU4w8/L/RSyzXzWpT8i5BpntYrsXCN wmbrWSlCMMa91GImYXFWN1kvrVsHdJLwfuNnVwdGA5Yt7+1YUChwFZomIv9QU0W620ai dz5Lln0v3XbUuctZRHH6JjVyeI83RCMGZPJ9LnItlHj6dK4D1UO9sNqRxYpta9xirVgg 4cQA== X-Gm-Message-State: ALQs6tDJF1wRXuZ2cKXpgUSLcrNOMBkWcPyOFO5Ob0Zyn/Cf+1M+N3IG 48HdSPSDpbFYya7Gv2Q2nqj5vf7H X-Received: by 2002:a17:902:758a:: with SMTP id j10-v6mr4402060pll.11.1524736668706; Thu, 26 Apr 2018 02:57:48 -0700 (PDT) Received: from udknight.localhost ([183.90.36.235]) by smtp.gmail.com with ESMTPSA id y13sm35325814pge.34.2018.04.26.02.57.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 26 Apr 2018 02:57:48 -0700 (PDT) Received: from udknight.localhost (localhost [127.0.0.1]) by udknight.localhost (8.14.9/8.14.9) with ESMTP id w3Q9voD0029331; Thu, 26 Apr 2018 17:57:50 +0800 Received: (from root@localhost) by udknight.localhost (8.14.9/8.14.9/Submit) id w3Q9vncP029330; Thu, 26 Apr 2018 17:57:49 +0800 Date: Thu, 26 Apr 2018 17:57:49 +0800 From: Wang YanQing To: daniel@iogearbox.net Cc: ast@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH] bpf: fix misaligned access for BPF_PROG_TYPE_PERF_EVENT program type on x86_32 platform Message-ID: <20180426095749.GA29207@udknight> Mail-Followup-To: Wang YanQing , daniel@iogearbox.net, ast@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All the testcases for BPF_PROG_TYPE_PERF_EVENT program type in test_verifier(kselftest) report below errors on x86_32: " 172/p unpriv: spill/fill of different pointers ldx FAIL Unexpected error message! 0: (bf) r6 = r10 1: (07) r6 += -8 2: (15) if r1 == 0x0 goto pc+3 R1=ctx(id=0,off=0,imm=0) R6=fp-8,call_-1 R10=fp0,call_-1 3: (bf) r2 = r10 4: (07) r2 += -76 5: (7b) *(u64 *)(r6 +0) = r2 6: (55) if r1 != 0x0 goto pc+1 R1=ctx(id=0,off=0,imm=0) R2=fp-76,call_-1 R6=fp-8,call_-1 R10=fp0,call_-1 fp-8=fp 7: (7b) *(u64 *)(r6 +0) = r1 8: (79) r1 = *(u64 *)(r6 +0) 9: (79) r1 = *(u64 *)(r1 +68) invalid bpf_context access off=68 size=8 378/p check bpf_perf_event_data->sample_period byte load permitted FAIL Failed to load prog 'Permission denied'! 0: (b7) r0 = 0 1: (71) r0 = *(u8 *)(r1 +68) invalid bpf_context access off=68 size=1 379/p check bpf_perf_event_data->sample_period half load permitted FAIL Failed to load prog 'Permission denied'! 0: (b7) r0 = 0 1: (69) r0 = *(u16 *)(r1 +68) invalid bpf_context access off=68 size=2 380/p check bpf_perf_event_data->sample_period word load permitted FAIL Failed to load prog 'Permission denied'! 0: (b7) r0 = 0 1: (61) r0 = *(u32 *)(r1 +68) invalid bpf_context access off=68 size=4 381/p check bpf_perf_event_data->sample_period dword load permitted FAIL Failed to load prog 'Permission denied'! 0: (b7) r0 = 0 1: (79) r0 = *(u64 *)(r1 +68) invalid bpf_context access off=68 size=8 " This patch fix it, the fix isn't only necessary for x86_32, it will fix the same problem for other platforms too, if their size of bpf_user_pt_regs_t can't divide exactly into 8. Signed-off-by: Wang YanQing --- Hi all! After mainline accept this patch, then we need to submit a sync patch to update the tools/include/uapi/linux/bpf_perf_event.h. Thanks. include/uapi/linux/bpf_perf_event.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/uapi/linux/bpf_perf_event.h b/include/uapi/linux/bpf_perf_event.h index eb1b9d2..ff4c092 100644 --- a/include/uapi/linux/bpf_perf_event.h +++ b/include/uapi/linux/bpf_perf_event.h @@ -12,7 +12,7 @@ struct bpf_perf_event_data { bpf_user_pt_regs_t regs; - __u64 sample_period; + __u64 sample_period __attribute__((aligned(8))); __u64 addr; }; -- 1.8.5.6.2.g3d8a54e.dirty