Skip to content
Snippets Groups Projects
Commit fb377eb8 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

ipc: fix sparc64 ipc() wrapper


Matt bisected a sparc64 specific issue with semctl, shmctl and msgctl
to a commit from my y2038 series in linux-5.1, as I missed the custom
sys_ipc() wrapper that sparc64 uses in place of the generic version that
I patched.

The problem is that the sys_{sem,shm,msg}ctl() functions in the kernel
now do not allow being called with the IPC_64 flag any more, resulting
in a -EINVAL error when they don't recognize the command.

Instead, the correct way to do this now is to call the internal
ksys_old_{sem,shm,msg}ctl() functions to select the API version.

As we generally move towards these functions anyway, change all of
sparc_ipc() to consistently use those in place of the sys_*() versions,
and move the required ksys_*() declarations into linux/syscalls.h

The IS_ENABLED(CONFIG_SYSVIPC) check is required to avoid link
errors when ipc is disabled.

Reported-by: default avatarMatt Turner <mattst88@gmail.com>
Fixes: 275f2214 ("ipc: rename old-style shmctl/semctl/msgctl syscalls")
Cc: stable@vger.kernel.org
Tested-by: default avatarMatt Turner <mattst88@gmail.com>
Tested-by: default avatarAnatoly Pugachev <matorola@gmail.com>
Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parent 78e05972
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment