| .. | .. |
|---|
| 34 | 34 | u32 tmp; |
|---|
| 35 | 35 | |
|---|
| 36 | 36 | preempt_disable(); |
|---|
| 37 | | - pagefault_disable(); |
|---|
| 38 | 37 | |
|---|
| 39 | 38 | ret = -EFAULT; |
|---|
| 40 | 39 | if (unlikely(get_user(oldval, uaddr) != 0)) |
|---|
| .. | .. |
|---|
| 67 | 66 | ret = -EFAULT; |
|---|
| 68 | 67 | |
|---|
| 69 | 68 | out_pagefault_enable: |
|---|
| 70 | | - pagefault_enable(); |
|---|
| 71 | 69 | preempt_enable(); |
|---|
| 72 | 70 | |
|---|
| 73 | 71 | if (ret == 0) |
|---|
| .. | .. |
|---|
| 118 | 116 | static inline int |
|---|
| 119 | 117 | arch_futex_atomic_op_inuser(int op, u32 oparg, int *oval, u32 __user *uaddr) |
|---|
| 120 | 118 | { |
|---|
| 121 | | - int oldval = 0, ret; |
|---|
| 122 | | - |
|---|
| 123 | | - pagefault_disable(); |
|---|
| 124 | | - |
|---|
| 125 | | - switch (op) { |
|---|
| 126 | | - case FUTEX_OP_SET: |
|---|
| 127 | | - case FUTEX_OP_ADD: |
|---|
| 128 | | - case FUTEX_OP_OR: |
|---|
| 129 | | - case FUTEX_OP_ANDN: |
|---|
| 130 | | - case FUTEX_OP_XOR: |
|---|
| 131 | | - default: |
|---|
| 132 | | - ret = -ENOSYS; |
|---|
| 133 | | - } |
|---|
| 134 | | - |
|---|
| 135 | | - pagefault_enable(); |
|---|
| 136 | | - |
|---|
| 137 | | - if (!ret) |
|---|
| 138 | | - *oval = oldval; |
|---|
| 139 | | - |
|---|
| 140 | | - return ret; |
|---|
| 119 | + return -ENOSYS; |
|---|
| 141 | 120 | } |
|---|
| 142 | 121 | |
|---|
| 143 | 122 | static inline int |
|---|