Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933838AbcJZNx1 (ORCPT ); Wed, 26 Oct 2016 09:53:27 -0400 Received: from twin.jikos.cz ([89.185.236.188]:51163 "EHLO twin.jikos.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755191AbcJZNxX (ORCPT ); Wed, 26 Oct 2016 09:53:23 -0400 Date: Wed, 26 Oct 2016 15:52:16 +0200 From: David Sterba To: kernel-hardening@lists.openwall.com Cc: =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , linux-kernel@vger.kernel.org, Alexei Starovoitov , Andy Lutomirski , Daniel Borkmann , Daniel Mack , David Drysdale , "David S . Miller" , "Eric W . Biederman" , James Morris , Jann Horn , Kees Cook , Paul Moore , Sargun Dhillon , "Serge E . Hallyn" , Tejun Heo , Thomas Graf , Will Drewry , linux-api@vger.kernel.org, linux-security-module@vger.kernel.org, netdev@vger.kernel.org, cgroups@vger.kernel.org Subject: Re: [kernel-hardening] Re: [RFC v4 02/18] bpf: Move u64_to_ptr() to BPF headers and inline it Message-ID: <20161026135216.GE15400@twin.jikos.cz> Reply-To: dave@jikos.cz Mail-Followup-To: kernel-hardening@lists.openwall.com, =?iso-8859-1?Q?Micka=EBl_Sala=FCn?= , linux-kernel@vger.kernel.org, Alexei Starovoitov , Andy Lutomirski , Daniel Borkmann , Daniel Mack , David Drysdale , "David S . Miller" , "Eric W . Biederman" , James Morris , Jann Horn , Kees Cook , Paul Moore , Sargun Dhillon , "Serge E . Hallyn" , Tejun Heo , Thomas Graf , Will Drewry , linux-api@vger.kernel.org, linux-security-module@vger.kernel.org, netdev@vger.kernel.org, cgroups@vger.kernel.org References: <20161026065654.19166-1-mic@digikod.net> <20161026065654.19166-3-mic@digikod.net> <4045933.vGduYR3PCp@wuerfel> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4045933.vGduYR3PCp@wuerfel> User-Agent: Mutt/1.5.23.1-rc1 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1588 Lines: 40 On Wed, Oct 26, 2016 at 09:19:08AM +0200, Arnd Bergmann wrote: > On Wednesday, October 26, 2016 8:56:38 AM CEST Micka?l Sala?n wrote: > > include/linux/bpf.h | 6 ++++++ > > kernel/bpf/syscall.c | 6 ------ > > 2 files changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/include/linux/bpf.h b/include/linux/bpf.h > > index c201017b5730..cf87db6daf27 100644 > > --- a/include/linux/bpf.h > > +++ b/include/linux/bpf.h > > @@ -283,6 +283,12 @@ static inline void bpf_long_memcpy(void *dst, const void *src, u32 size) > > > > /* verify correctness of eBPF program */ > > int bpf_check(struct bpf_prog **fp, union bpf_attr *attr); > > + > > +/* helper to convert user pointers passed inside __aligned_u64 fields */ > > +static inline void __user *u64_to_ptr(__u64 val) > > +{ > > + return (void __user *) (unsigned long) val; > > +} > > #else > > > > > We already have at least six copies of this helper: > > fs/btrfs/qgroup.c:#define u64_to_ptr(x) ((struct btrfs_qgroup *)(uintptr_t)x) This one does not take __user pointers, unlike the rest. Anyway, the name is misleading, I'll send a cleanup. Thanks. > kernel/bpf/syscall.c:static void __user *u64_to_ptr(__u64 val) > drivers/staging/android/ion/ion_test.c:#define u64_to_uptr(x) ((void __user *)(unsigned long)(x)) > drivers/firewire/core-cdev.c:static void __user *u64_to_uptr(u64 value) > drivers/staging/android/ion/ion_test.c:#define u64_to_uptr(x) ((void __user *)(unsigned long)(x)) > include/linux/kernel.h:#define u64_to_user_ptr(x) ( \ > > Just use the one in linux/kernel.h > > Arnd