diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2020-04-03 12:06:47 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2020-04-21 18:49:30 +0200 |
commit | c281634c865202e2776b0250678ff93c771947ff (patch) | |
tree | 2aa30ad93d95c8f63cc003baaa8065414f257967 /arch/arm/kernel | |
parent | Linux 5.7-rc1 (diff) | |
download | linux-c281634c865202e2776b0250678ff93c771947ff.tar.xz linux-c281634c865202e2776b0250678ff93c771947ff.zip |
ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
We no longer need to switch to KERNEL_DS mode in sys_oabi_epoll_ctl()
as we can use do_epoll_ctl() to avoid the additional copy.
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Diffstat (limited to 'arch/arm/kernel')
-rw-r--r-- | arch/arm/kernel/sys_oabi-compat.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/arch/arm/kernel/sys_oabi-compat.c b/arch/arm/kernel/sys_oabi-compat.c index 17bd32b22371..0203e545bbc8 100644 --- a/arch/arm/kernel/sys_oabi-compat.c +++ b/arch/arm/kernel/sys_oabi-compat.c @@ -253,20 +253,15 @@ asmlinkage long sys_oabi_epoll_ctl(int epfd, int op, int fd, { struct oabi_epoll_event user; struct epoll_event kernel; - mm_segment_t fs; - long ret; - if (op == EPOLL_CTL_DEL) - return sys_epoll_ctl(epfd, op, fd, NULL); - if (copy_from_user(&user, event, sizeof(user))) + if (ep_op_has_event(op) && + copy_from_user(&user, event, sizeof(user))) return -EFAULT; + kernel.events = user.events; kernel.data = user.data; - fs = get_fs(); - set_fs(KERNEL_DS); - ret = sys_epoll_ctl(epfd, op, fd, &kernel); - set_fs(fs); - return ret; + + return do_epoll_ctl(epfd, op, fd, &kernel, false); } asmlinkage long sys_oabi_epoll_wait(int epfd, |