On Thu, Jan 10, 2019 at 8:40 PM Paul Burton paul.burton@mips.com wrote:
On Thu, Jan 10, 2019 at 05:24:31PM +0100, Arnd Bergmann wrote:
While reading through the sysvipc implementation, I noticed that the n32 semctl/shmctl/msgctl system calls behave differently based on whether o32 support is enabled or not: Without o32, the IPC_64 flag passed by user space is rejected but calls without that flag get IPC_64 behavior.
As far as I can tell, this was inadvertently changed by a cleanup patch but never noticed by anyone, possibly nobody has tried using sysvipc on n32 after linux-3.19.
Change it back to the old behavior now.
Fixes: 78aaf956ba3a ("MIPS: Compat: Fix build error if CONFIG_MIPS32_COMPAT but no compat ABI.") Cc: stable@vger.kernel.org Signed-off-by: Arnd Bergmann arnd@arndb.de
As stated above, this was only found by inspection, the patch is not tested. Please review accordingly.
Nice catch! Would you prefer to merge this yourself, or that I take it through the mips tree?
Up to you: if you want to merge it for 5.0, I'll just drop it from my tree.
If the former then:
Acked-by: Paul Burton paul.burton@mips.com
Thanks!
I suspect kernels configured with n32 support but no o32 support are probably not very common - for internal testing we currently always enable both.
Do you know of anyone actually still using n32 in production systems with 4.x kernels? I wonder if it just fell out of popularity as the 64-bit machines that used it either became large enough to want 64-bit user space, or got replaced by arm64 or mips32 hardware.
Arnd