| .. | .. |
|---|
| 34 | 34 | #define PARPORT_MAX_SPINTIME_VALUE 1000 |
|---|
| 35 | 35 | |
|---|
| 36 | 36 | static int do_active_device(struct ctl_table *table, int write, |
|---|
| 37 | | - void __user *result, size_t *lenp, loff_t *ppos) |
|---|
| 37 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 38 | 38 | { |
|---|
| 39 | 39 | struct parport *port = (struct parport *)table->extra1; |
|---|
| 40 | 40 | char buffer[256]; |
|---|
| .. | .. |
|---|
| 65 | 65 | *lenp = len; |
|---|
| 66 | 66 | |
|---|
| 67 | 67 | *ppos += len; |
|---|
| 68 | | - |
|---|
| 69 | | - return copy_to_user(result, buffer, len) ? -EFAULT : 0; |
|---|
| 68 | + memcpy(result, buffer, len); |
|---|
| 69 | + return 0; |
|---|
| 70 | 70 | } |
|---|
| 71 | 71 | |
|---|
| 72 | 72 | #ifdef CONFIG_PARPORT_1284 |
|---|
| 73 | 73 | static int do_autoprobe(struct ctl_table *table, int write, |
|---|
| 74 | | - void __user *result, size_t *lenp, loff_t *ppos) |
|---|
| 74 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 75 | 75 | { |
|---|
| 76 | 76 | struct parport_device_info *info = table->extra2; |
|---|
| 77 | 77 | const char *str; |
|---|
| .. | .. |
|---|
| 108 | 108 | |
|---|
| 109 | 109 | *ppos += len; |
|---|
| 110 | 110 | |
|---|
| 111 | | - return copy_to_user (result, buffer, len) ? -EFAULT : 0; |
|---|
| 111 | + memcpy(result, buffer, len); |
|---|
| 112 | + return 0; |
|---|
| 112 | 113 | } |
|---|
| 113 | 114 | #endif /* IEEE1284.3 support. */ |
|---|
| 114 | 115 | |
|---|
| 115 | 116 | static int do_hardware_base_addr(struct ctl_table *table, int write, |
|---|
| 116 | | - void __user *result, |
|---|
| 117 | | - size_t *lenp, loff_t *ppos) |
|---|
| 117 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 118 | 118 | { |
|---|
| 119 | 119 | struct parport *port = (struct parport *)table->extra1; |
|---|
| 120 | 120 | char buffer[20]; |
|---|
| .. | .. |
|---|
| 136 | 136 | *lenp = len; |
|---|
| 137 | 137 | |
|---|
| 138 | 138 | *ppos += len; |
|---|
| 139 | | - |
|---|
| 140 | | - return copy_to_user(result, buffer, len) ? -EFAULT : 0; |
|---|
| 139 | + memcpy(result, buffer, len); |
|---|
| 140 | + return 0; |
|---|
| 141 | 141 | } |
|---|
| 142 | 142 | |
|---|
| 143 | 143 | static int do_hardware_irq(struct ctl_table *table, int write, |
|---|
| 144 | | - void __user *result, |
|---|
| 145 | | - size_t *lenp, loff_t *ppos) |
|---|
| 144 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 146 | 145 | { |
|---|
| 147 | 146 | struct parport *port = (struct parport *)table->extra1; |
|---|
| 148 | 147 | char buffer[20]; |
|---|
| .. | .. |
|---|
| 164 | 163 | *lenp = len; |
|---|
| 165 | 164 | |
|---|
| 166 | 165 | *ppos += len; |
|---|
| 167 | | - |
|---|
| 168 | | - return copy_to_user(result, buffer, len) ? -EFAULT : 0; |
|---|
| 166 | + memcpy(result, buffer, len); |
|---|
| 167 | + return 0; |
|---|
| 169 | 168 | } |
|---|
| 170 | 169 | |
|---|
| 171 | 170 | static int do_hardware_dma(struct ctl_table *table, int write, |
|---|
| 172 | | - void __user *result, |
|---|
| 173 | | - size_t *lenp, loff_t *ppos) |
|---|
| 171 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 174 | 172 | { |
|---|
| 175 | 173 | struct parport *port = (struct parport *)table->extra1; |
|---|
| 176 | 174 | char buffer[20]; |
|---|
| .. | .. |
|---|
| 192 | 190 | *lenp = len; |
|---|
| 193 | 191 | |
|---|
| 194 | 192 | *ppos += len; |
|---|
| 195 | | - |
|---|
| 196 | | - return copy_to_user(result, buffer, len) ? -EFAULT : 0; |
|---|
| 193 | + memcpy(result, buffer, len); |
|---|
| 194 | + return 0; |
|---|
| 197 | 195 | } |
|---|
| 198 | 196 | |
|---|
| 199 | 197 | static int do_hardware_modes(struct ctl_table *table, int write, |
|---|
| 200 | | - void __user *result, |
|---|
| 201 | | - size_t *lenp, loff_t *ppos) |
|---|
| 198 | + void *result, size_t *lenp, loff_t *ppos) |
|---|
| 202 | 199 | { |
|---|
| 203 | 200 | struct parport *port = (struct parport *)table->extra1; |
|---|
| 204 | 201 | char buffer[40]; |
|---|
| .. | .. |
|---|
| 213 | 210 | return -EACCES; |
|---|
| 214 | 211 | |
|---|
| 215 | 212 | { |
|---|
| 216 | | -#define printmode(x) {if(port->modes&PARPORT_MODE_##x){len+=sprintf(buffer+len,"%s%s",f?",":"",#x);f++;}} |
|---|
| 213 | +#define printmode(x) \ |
|---|
| 214 | +do { \ |
|---|
| 215 | + if (port->modes & PARPORT_MODE_##x) \ |
|---|
| 216 | + len += sprintf(buffer + len, "%s%s", f++ ? "," : "", #x); \ |
|---|
| 217 | +} while (0) |
|---|
| 217 | 218 | int f = 0; |
|---|
| 218 | 219 | printmode(PCSPP); |
|---|
| 219 | 220 | printmode(TRISTATE); |
|---|
| .. | .. |
|---|
| 231 | 232 | *lenp = len; |
|---|
| 232 | 233 | |
|---|
| 233 | 234 | *ppos += len; |
|---|
| 234 | | - |
|---|
| 235 | | - return copy_to_user(result, buffer, len) ? -EFAULT : 0; |
|---|
| 235 | + memcpy(result, buffer, len); |
|---|
| 236 | + return 0; |
|---|
| 236 | 237 | } |
|---|
| 237 | 238 | |
|---|
| 238 | 239 | #define PARPORT_PORT_DIR(CHILD) { .procname = NULL, .mode = 0555, .child = CHILD } |
|---|