ARM: compat: remove KERNEL_DS usage in sys_oabi_epoll_ctl()
[linux-2.6-microblaze.git] / arch / arm / kernel / sys_oabi-compat.c
index 17bd32b..0203e54 100644 (file)
@@ -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,