diff options
author | Russell King <rmk+kernel@armlinux.org.uk> | 2020-05-26 12:47:07 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@armlinux.org.uk> | 2020-05-26 12:47:07 +0100 |
commit | 03c7f5f0b844e9f652e87daf5c51bb93ccf75296 (patch) | |
tree | 140ab988587f2909b890b30c689669aa2a4ad82d /arch/arm/kernel/sys_oabi-compat.c | |
parent | 3866f217aaa81bf7165c7f27362eee5d7919c496 (diff) | |
parent | fb597f2a393294f3d3012ecb314f43b60fa48359 (diff) |
Merge branches 'fixes' and 'misc' into for-next
Diffstat (limited to 'arch/arm/kernel/sys_oabi-compat.c')
-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, |