diff options
author | Al Viro <viro@ftp.linux.org.uk> | 2006-01-12 04:06:31 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-12 12:09:04 -0500 |
commit | d85f6891aa143bed92590e10e210e7e102bbb2a1 (patch) | |
tree | ce1ea8a89499bcd3b9a20bcb70e49e7edccceddc /drivers/char | |
parent | ab14caec7a5f0d9569c8a9dd2ad62e89b220c968 (diff) |
[PATCH] m68k: dsp56k __user annotations
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Cc: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/char')
-rw-r--r-- | drivers/char/dsp56k.c | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/char/dsp56k.c b/drivers/char/dsp56k.c index 8693835cb2d5..e233cf280bc0 100644 --- a/drivers/char/dsp56k.c +++ b/drivers/char/dsp56k.c | |||
@@ -165,7 +165,7 @@ static int dsp56k_reset(void) | |||
165 | return 0; | 165 | return 0; |
166 | } | 166 | } |
167 | 167 | ||
168 | static int dsp56k_upload(u_char *bin, int len) | 168 | static int dsp56k_upload(u_char __user *bin, int len) |
169 | { | 169 | { |
170 | int i; | 170 | int i; |
171 | u_char *p; | 171 | u_char *p; |
@@ -199,7 +199,7 @@ static int dsp56k_upload(u_char *bin, int len) | |||
199 | return 0; | 199 | return 0; |
200 | } | 200 | } |
201 | 201 | ||
202 | static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, | 202 | static ssize_t dsp56k_read(struct file *file, char __user *buf, size_t count, |
203 | loff_t *ppos) | 203 | loff_t *ppos) |
204 | { | 204 | { |
205 | struct inode *inode = file->f_dentry->d_inode; | 205 | struct inode *inode = file->f_dentry->d_inode; |
@@ -225,10 +225,10 @@ static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, | |||
225 | } | 225 | } |
226 | case 2: /* 16 bit */ | 226 | case 2: /* 16 bit */ |
227 | { | 227 | { |
228 | short *data; | 228 | short __user *data; |
229 | 229 | ||
230 | count /= 2; | 230 | count /= 2; |
231 | data = (short*) buf; | 231 | data = (short __user *) buf; |
232 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_RECEIVE, | 232 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_RECEIVE, |
233 | put_user(dsp56k_host_interface.data.w[1], data+n++)); | 233 | put_user(dsp56k_host_interface.data.w[1], data+n++)); |
234 | return 2*n; | 234 | return 2*n; |
@@ -244,10 +244,10 @@ static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, | |||
244 | } | 244 | } |
245 | case 4: /* 32 bit */ | 245 | case 4: /* 32 bit */ |
246 | { | 246 | { |
247 | long *data; | 247 | long __user *data; |
248 | 248 | ||
249 | count /= 4; | 249 | count /= 4; |
250 | data = (long*) buf; | 250 | data = (long __user *) buf; |
251 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_RECEIVE, | 251 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_RECEIVE, |
252 | put_user(dsp56k_host_interface.data.l, data+n++)); | 252 | put_user(dsp56k_host_interface.data.l, data+n++)); |
253 | return 4*n; | 253 | return 4*n; |
@@ -262,7 +262,7 @@ static ssize_t dsp56k_read(struct file *file, char *buf, size_t count, | |||
262 | } | 262 | } |
263 | } | 263 | } |
264 | 264 | ||
265 | static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, | 265 | static ssize_t dsp56k_write(struct file *file, const char __user *buf, size_t count, |
266 | loff_t *ppos) | 266 | loff_t *ppos) |
267 | { | 267 | { |
268 | struct inode *inode = file->f_dentry->d_inode; | 268 | struct inode *inode = file->f_dentry->d_inode; |
@@ -287,10 +287,10 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, | |||
287 | } | 287 | } |
288 | case 2: /* 16 bit */ | 288 | case 2: /* 16 bit */ |
289 | { | 289 | { |
290 | const short *data; | 290 | const short __user *data; |
291 | 291 | ||
292 | count /= 2; | 292 | count /= 2; |
293 | data = (const short *)buf; | 293 | data = (const short __user *)buf; |
294 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, | 294 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, |
295 | get_user(dsp56k_host_interface.data.w[1], data+n++)); | 295 | get_user(dsp56k_host_interface.data.w[1], data+n++)); |
296 | return 2*n; | 296 | return 2*n; |
@@ -306,10 +306,10 @@ static ssize_t dsp56k_write(struct file *file, const char *buf, size_t count, | |||
306 | } | 306 | } |
307 | case 4: /* 32 bit */ | 307 | case 4: /* 32 bit */ |
308 | { | 308 | { |
309 | const long *data; | 309 | const long __user *data; |
310 | 310 | ||
311 | count /= 4; | 311 | count /= 4; |
312 | data = (const long *)buf; | 312 | data = (const long __user *)buf; |
313 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, | 313 | handshake(count, dsp56k.maxio, dsp56k.timeout, DSP56K_TRANSMIT, |
314 | get_user(dsp56k_host_interface.data.l, data+n++)); | 314 | get_user(dsp56k_host_interface.data.l, data+n++)); |
315 | return 4*n; | 315 | return 4*n; |
@@ -328,6 +328,7 @@ static int dsp56k_ioctl(struct inode *inode, struct file *file, | |||
328 | unsigned int cmd, unsigned long arg) | 328 | unsigned int cmd, unsigned long arg) |
329 | { | 329 | { |
330 | int dev = iminor(inode) & 0x0f; | 330 | int dev = iminor(inode) & 0x0f; |
331 | void __user *argp = (void __user *)arg; | ||
331 | 332 | ||
332 | switch(dev) | 333 | switch(dev) |
333 | { | 334 | { |
@@ -336,9 +337,9 @@ static int dsp56k_ioctl(struct inode *inode, struct file *file, | |||
336 | switch(cmd) { | 337 | switch(cmd) { |
337 | case DSP56K_UPLOAD: | 338 | case DSP56K_UPLOAD: |
338 | { | 339 | { |
339 | char *bin; | 340 | char __user *bin; |
340 | int r, len; | 341 | int r, len; |
341 | struct dsp56k_upload *binary = (struct dsp56k_upload *) arg; | 342 | struct dsp56k_upload __user *binary = argp; |
342 | 343 | ||
343 | if(get_user(len, &binary->len) < 0) | 344 | if(get_user(len, &binary->len) < 0) |
344 | return -EFAULT; | 345 | return -EFAULT; |
@@ -372,7 +373,7 @@ static int dsp56k_ioctl(struct inode *inode, struct file *file, | |||
372 | case DSP56K_HOST_FLAGS: | 373 | case DSP56K_HOST_FLAGS: |
373 | { | 374 | { |
374 | int dir, out, status; | 375 | int dir, out, status; |
375 | struct dsp56k_host_flags *hf = (struct dsp56k_host_flags*) arg; | 376 | struct dsp56k_host_flags __user *hf = argp; |
376 | 377 | ||
377 | if(get_user(dir, &hf->dir) < 0) | 378 | if(get_user(dir, &hf->dir) < 0) |
378 | return -EFAULT; | 379 | return -EFAULT; |