diff options
Diffstat (limited to 'drivers/staging/speakup/devsynth.c')
-rw-r--r-- | drivers/staging/speakup/devsynth.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/staging/speakup/devsynth.c b/drivers/staging/speakup/devsynth.c index 940769ef883f..71c728acf4ca 100644 --- a/drivers/staging/speakup/devsynth.c +++ b/drivers/staging/speakup/devsynth.c @@ -13,11 +13,11 @@ static int misc_registered; static int dev_opened; -static ssize_t speakup_file_write(struct file *fp, const char *buffer, - size_t nbytes, loff_t *ppos) +static ssize_t speakup_file_write(struct file *fp, const char __user *buffer, + size_t nbytes, loff_t *ppos) { size_t count = nbytes; - const char *ptr = buffer; + const char __user *ptr = buffer; size_t bytes; unsigned long flags; u_char buf[256]; @@ -30,15 +30,15 @@ static ssize_t speakup_file_write(struct file *fp, const char *buffer, return -EFAULT; count -= bytes; ptr += bytes; - spk_lock(flags); + spin_lock_irqsave(&speakup_info.spinlock, flags); synth_write(buf, bytes); - spk_unlock(flags); + spin_unlock_irqrestore(&speakup_info.spinlock, flags); } return (ssize_t) nbytes; } -static ssize_t speakup_file_read(struct file *fp, char *buf, size_t nbytes, - loff_t *ppos) +static ssize_t speakup_file_read(struct file *fp, char __user *buf, + size_t nbytes, loff_t *ppos) { return 0; } |