[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20161205171242.GH14429@e104818-lin.cambridge.arm.com>
Date: Mon, 5 Dec 2016 17:12:43 +0000
From: Catalin Marinas <catalin.marinas@....com>
To: Yury Norov <ynorov@...iumnetworks.com>
Cc: arnd@...db.de, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-doc@...r.kernel.org,
linux-arch@...r.kernel.org, szabolcs.nagy@....com,
heiko.carstens@...ibm.com, cmetcalf@...hip.com,
philipp.tomsich@...obroma-systems.com, joseph@...esourcery.com,
zhouchengming1@...wei.com, Prasun.Kapoor@...iumnetworks.com,
agraf@...e.de, geert@...ux-m68k.org, kilobyte@...band.pl,
manuel.montezelo@...il.com, pinskia@...il.com,
linyongting@...wei.com, klimov.linux@...il.com, broonie@...nel.org,
bamvor.zhangjian@...wei.com, maxim.kuvyrkov@...aro.org,
Nathan_Lynch@...tor.com, schwidefsky@...ibm.com,
davem@...emloft.net, christoph.muellner@...obroma-systems.com
Subject: Re: [PATCH 11/18] arm64: ilp32: share aarch32 syscall handlers
On Fri, Oct 21, 2016 at 11:33:10PM +0300, Yury Norov wrote:
> off_t is passed in register pair just like in aarch32.
> In this patch corresponding aarch32 handlers are shared to
> ilp32 code.
[...]
> +/*
> + * Note: off_4k (w5) is always in units of 4K. If we can't do the
> + * requested offset because it is not page-aligned, we return -EINVAL.
> + */
> +ENTRY(compat_sys_mmap2_wrapper)
> +#if PAGE_SHIFT > 12
> + tst w5, #~PAGE_MASK >> 12
> + b.ne 1f
> + lsr w5, w5, #PAGE_SHIFT - 12
> +#endif
> + b sys_mmap_pgoff
> +1: mov x0, #-EINVAL
> + ret
> +ENDPROC(compat_sys_mmap2_wrapper)
For compat sys_mmap2, the pgoff argument is in multiples of 4K. This was
traditionally used for architectures where off_t is 32-bit to allow
mapping files to 2^44.
Since off_t is 64-bit with AArch64/ILP32, should we just pass the off_t
as a 64-bit value in two different registers (w5 and w6)?
--
Catalin
Powered by blists - more mailing lists