Received: by 10.213.65.68 with SMTP id h4csp1007872imn; Sun, 18 Mar 2018 10:41:45 -0700 (PDT) X-Google-Smtp-Source: AG47ELvdFsuu86dc4kqkENXCeEbm9CLL7aOe/8WSZ0Z8bnc/IPkbzYj6Vn+VGbGhqInlmQwPyKHK X-Received: by 2002:a17:902:e83:: with SMTP id 3-v6mr9878381plx.158.1521394905546; Sun, 18 Mar 2018 10:41:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521394905; cv=none; d=google.com; s=arc-20160816; b=i31XaINFATOrPb/YzyOU+6sp6yHJjptALpLGsDilng4ejZh/irkykYOHRlYx8YGyh3 EvCMYKXx1VEnfOmf4U8tguhi7YLcYO+Axg56nwyBmjjsDWK/zdbd72rBOGPNDfiA9Yci peWbHG6chAUHNehCIIOFu6CSkisMEppft5+Mg+dp7J1OqwbMPm8bhGQdcE6P1ta0jdns ce29avQ9UprlRkCAsn3dTMJmJoysAD4s+9OVsyfnfz/Xk+cbmhUiCL4vdNvbmMmZF3Da K4VAYnZsidycK8h4IKYS0MkxYoF6so8GttWH+pqaVJ1LIedUaYHvOMzUY9yexXAUT6ly Xk/A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:cc :to:from:date:arc-authentication-results; bh=DuUOrei2miSEmuXKnDvjOFh6mwX+tmXjuwSMRDUYeJA=; b=p+wwr4xlUaqkWnWX77MIY5Q1JBWwRLH3PYjFxEd8/Phr1v+/o+nz+9GzfrmfqzqHXf E40KQDP0XG2mT/JohvlXd2/CQCjrTj+jyzNdRKyM5gd4wwGG6ef8J8zseC2+LsbCm/h7 FLwhJrOluutVswXqCr2i9c9eFFXGqxOpkvSEkUqlu3CLaFptD+IF3fb9UkHh/TtjGs1C 2gPfih/sJDLwdVoFWAIbUAecvYUd98ibkBhy3rb2lw4y1fhC+fwurGgx30Ev8pwQAb4U F5jvZcjzIl+cIbSSn9KChgXuCcxMFVIOr9cxSgfsiqNvfEgUfACpVd1rTC81AdIZMeuC S3Ag== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y16-v6si8504596plr.174.2018.03.18.10.41.31; Sun, 18 Mar 2018 10:41:45 -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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754360AbeCRRkh (ORCPT + 99 others); Sun, 18 Mar 2018 13:40:37 -0400 Received: from zeniv.linux.org.uk ([195.92.253.2]:40682 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754051AbeCRRk0 (ORCPT ); Sun, 18 Mar 2018 13:40:26 -0400 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.87 #1 (Red Hat Linux)) id 1excI2-0006Pt-9P; Sun, 18 Mar 2018 17:40:14 +0000 Date: Sun, 18 Mar 2018 17:40:14 +0000 From: Al Viro To: Dominik Brodowski Cc: linux-kernel@vger.kernel.org, torvalds@linux-foundation.org, arnd@arndb.de, linux-arch@vger.kernel.org, Ralf Baechle , James Hogan , linux-mips@linux-mips.org, Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , linuxppc-dev@lists.ozlabs.org, Martin Schwidefsky , Heiko Carstens , linux-s390@vger.kernel.org, "David S . Miller" , sparclinux@vger.kernel.org, Ingo Molnar , Jiri Slaby , x86@kernel.org Subject: Re: [RFC PATCH 4/6] mm: provide generic compat_sys_readahead() implementation Message-ID: <20180318174014.GR30522@ZenIV.linux.org.uk> References: <20180318161056.5377-1-linux@dominikbrodowski.net> <20180318161056.5377-5-linux@dominikbrodowski.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180318161056.5377-5-linux@dominikbrodowski.net> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Sun, Mar 18, 2018 at 05:10:54PM +0100, Dominik Brodowski wrote: > +#ifdef __ARCH_WANT_COMPAT_SYS_READAHEAD > +#if defined(__ARCH_WANT_COMPAT_SYS_WITH_PADDING) && \ > + defined(__ARCH_WANT_LE_COMPAT_SYS) > +COMPAT_SYSCALL_DEFINE5(readahead, int, fd, unsigned int, padding, > + unsigned int, off_lo, unsigned int, off_hi, > + size_t, count) > +#elif defined(__ARCH_WANT_COMPAT_SYS_WITH_PADDING) && \ > + !defined(__ARCH_WANT_LE_COMPAT_SYS) > +COMPAT_SYSCALL_DEFINE5(readahead, int, fd, unsigned int, padding, > + unsigned int, off_hi, unsigned int, off_lo, > + size_t, count) > +#elif !defined(__ARCH_WANT_COMPAT_SYS_WITH_PADDING) && \ > + defined(__ARCH_WANT_LE_COMPAT_SYS) > +COMPAT_SYSCALL_DEFINE4(readahead, int, fd, > + unsigned int, off_lo, unsigned int, off_hi, > + size_t, count) > +#else /* no padding, big endian */ > +COMPAT_SYSCALL_DEFINE4(readahead, int, fd, > + unsigned int, off_hi, unsigned int, off_lo, > + size_t, count) > +#endif > +{ > + return do_readahead(fd, ((u64) off_hi << 32) | off_lo, count); > } *UGH* static inline compat_to_u64(u32 w0, u32 w1) { #ifdef __BIG_ENDIAN return ((u64)w0 << 32) | w1; #else return ((u64)w1 << 32) | w0; #endif } in compat.h, then this turns into #ifdef __ARCH_WANT_COMPAT_SYS_WITH_PADDING COMPAT_SYSCALL_DEFINE5(readahead, int, fd, unsigned int, padding, u32, off0, u32 off1, compat_size_t, count) #else COMPAT_SYSCALL_DEFINE4(readahead, int, fd, u32, off0, u32 off1, compat_size_t, count) #endif { return do_readahead(fd, compat_to_u64(off0, off1), count); }