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];
        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;
 }
 
        return 0;
 }
 
-static ssize_t softsynth_read(struct file *fp, char *buf, size_t count,
+static ssize_t softsynth_read(struct file *fp, char __user *buf, size_t count,
                              loff_t *pos)
 {
        int chars_sent = 0;
-       char *cp;
+       char __user *cp;
        char *init;
        char ch;
        int empty;
 
 static int last_index;
 
-static ssize_t softsynth_write(struct file *fp, const char *buf, size_t count,
-                              loff_t *pos)
+static ssize_t softsynth_write(struct file *fp, const char __user *buf,
+                              size_t count, loff_t *pos)
 {
        unsigned long supplied_index = 0;
        int converted;