Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: speakup: fix warnings by adding __user annotations

This patch fixes the following sparse warnings by adding
__user annotations.

drivers/staging/speakup/speakup_soft.c:248:34: warning:
incorrect type in argument 1 (different address spaces)
drivers/staging/speakup/speakup_soft.c:248:34:
expected void [noderef] <asn:1>*dst
drivers/staging/speakup/speakup_soft.c:248:34:
got char *[assigned] cp
drivers/staging/speakup/speakup_soft.c:272:40: warning:
incorrect type in argument 1 (different address spaces)
drivers/staging/speakup/speakup_soft.c:272:40:
expected char const [noderef] <asn:1>*s
drivers/staging/speakup/speakup_soft.c:272:40:
got char const *buf
drivers/staging/speakup/speakup_soft.c:306:17: warning:
incorrect type in initializer (incompatible argument 2
(different address spaces))
drivers/staging/speakup/speakup_soft.c:306:17:
expected long ( *read )( ... )
drivers/staging/speakup/speakup_soft.c:306:17:
got long ( static [toplevel] *<noident> )( ... )
drivers/staging/speakup/speakup_soft.c:307:18: warning:
incorrect type in initializer (incompatible argument 2
(different address spaces))
drivers/staging/speakup/speakup_soft.c:307:18:
expected long ( *write )( ... )
drivers/staging/speakup/speakup_soft.c:307:18:
got long ( static [toplevel] *<nfile_operationsoident> )( ... )

drivers/staging/speakup/devsynth.c:29:41: warning:
incorrect type in argument 2 (different address spaces)
drivers/staging/speakup/devsynth.c:29:41:
expected void const [noderef] <asn:1>*from
drivers/staging/speakup/devsynth.c:29:41: got char const *ptr
drivers/staging/speakup/devsynth.c:62:17: warning:
incorrect type in initializer (incompatible argument 2
(different address spaces))
drivers/staging/speakup/devsynth.c:62:17:
expected long ( *read )( ... )
drivers/staging/speakup/devsynth.c:62:17:
got long ( static [toplevel] *<noident> )( ... )
drivers/staging/speakup/devsynth.c:63:18: warning:
incorrect type in initializer (incompatible argument 2
(different address spaces))
drivers/staging/speakup/devsynth.c:63:18:
expected long ( *write )( ... )
drivers/staging/speakup/devsynth.c:63:18:
got long ( static [toplevel] *<noident> )( ... )

Signed-off-by: Emil Goode <emilgoode@gmail.com>
Acked-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Emil Goode and committed by
Greg Kroah-Hartman
7c10f1cd 0012196c

+9 -9
+5 -5
drivers/staging/speakup/devsynth.c
··· 13 13 static int misc_registered; 14 14 static int dev_opened; 15 15 16 - static ssize_t speakup_file_write(struct file *fp, const char *buffer, 17 - size_t nbytes, loff_t *ppos) 16 + static ssize_t speakup_file_write(struct file *fp, const char __user *buffer, 17 + size_t nbytes, loff_t *ppos) 18 18 { 19 19 size_t count = nbytes; 20 - const char *ptr = buffer; 20 + const char __user *ptr = buffer; 21 21 size_t bytes; 22 22 unsigned long flags; 23 23 u_char buf[256]; ··· 37 37 return (ssize_t) nbytes; 38 38 } 39 39 40 - static ssize_t speakup_file_read(struct file *fp, char *buf, size_t nbytes, 41 - loff_t *ppos) 40 + static ssize_t speakup_file_read(struct file *fp, char __user *buf, 41 + size_t nbytes, loff_t *ppos) 42 42 { 43 43 return 0; 44 44 }
+4 -4
drivers/staging/speakup/speakup_soft.c
··· 201 201 return 0; 202 202 } 203 203 204 - static ssize_t softsynth_read(struct file *fp, char *buf, size_t count, 204 + static ssize_t softsynth_read(struct file *fp, char __user *buf, size_t count, 205 205 loff_t *pos) 206 206 { 207 207 int chars_sent = 0; 208 - char *cp; 208 + char __user *cp; 209 209 char *init; 210 210 char ch; 211 211 int empty; ··· 263 263 264 264 static int last_index; 265 265 266 - static ssize_t softsynth_write(struct file *fp, const char *buf, size_t count, 267 - loff_t *pos) 266 + static ssize_t softsynth_write(struct file *fp, const char __user *buf, 267 + size_t count, loff_t *pos) 268 268 { 269 269 unsigned long supplied_index = 0; 270 270 int converted;