patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / drivers / scsi / osst.c
index a465197..b26d95e 100644 (file)
@@ -154,8 +154,8 @@ static int modes_defined = FALSE;
 static OSST_buffer *new_tape_buffer(int, int, int);
 static int enlarge_buffer(OSST_buffer *, int);
 static void normalize_buffer(OSST_buffer *);
-static int append_to_buffer(const char *, OSST_buffer *, int);
-static int from_buffer(OSST_buffer *, char *, int);
+static int append_to_buffer(const char __user *, OSST_buffer *, int);
+static int from_buffer(OSST_buffer *, char __user *, int);
 static int osst_zero_buffer_tail(OSST_buffer *);
 static int osst_copy_to_buffer(OSST_buffer *, unsigned char *);
 static int osst_copy_from_buffer(OSST_buffer *, unsigned char *);
@@ -3157,13 +3157,13 @@ static void reset_state(OS_Scsi_Tape *STp)
 /* Entry points to osst */
 
 /* Write command */
-static ssize_t osst_write(struct file * filp, const char * buf, size_t count, loff_t *ppos)
+static ssize_t osst_write(struct file * filp, const char __user * buf, size_t count, loff_t *ppos)
 {
        ssize_t        total, retval = 0;
        ssize_t        i, do_count, blks, transfer;
        int            write_threshold;
        int            doing_write = 0;
-       const char   * b_point;
+       const char   __user * b_point;
        Scsi_Request * SRpnt = NULL;
        ST_mode      * STm;
        ST_partstat  * STps;
@@ -3486,7 +3486,7 @@ out:
 
 
 /* Read command */
-static ssize_t osst_read(struct file * filp, char * buf, size_t count, loff_t *ppos)
+static ssize_t osst_read(struct file * filp, char __user * buf, size_t count, loff_t *ppos)
 {
        ssize_t        total, retval = 0;
        ssize_t        i, transfer;
@@ -4725,6 +4725,7 @@ static int osst_ioctl(struct inode * inode,struct file * file,
        Scsi_Request * SRpnt = NULL;
        OS_Scsi_Tape * STp   = file->private_data;
        char         * name  = tape_name(STp);
+       void __user *p = (void __user *)arg;
 
        if (down_interruptible(&STp->lock))
                return -ERESTARTSYS;
@@ -4765,7 +4766,7 @@ static int osst_ioctl(struct inode * inode,struct file * file,
                        goto out;
                }
 
-               i = copy_from_user((char *) &mtc, (char *)arg, sizeof(struct mtop));
+               i = copy_from_user((char *) &mtc, p, sizeof(struct mtop));
                if (i) {
                        retval = (-EFAULT);
                        goto out;
@@ -5003,8 +5004,7 @@ static int osst_ioctl(struct inode * inode,struct file * file,
                    STp->drv_buffer != 0)
                        mt_status.mt_gstat |= GMT_IM_REP_EN(0xffffffff);
 
-               i = copy_to_user((char *)arg, (char *)&mt_status,
-                     sizeof(struct mtget));
+               i = copy_to_user(p, &mt_status, sizeof(struct mtget));
                if (i) {
                        retval = (-EFAULT);
                        goto out;
@@ -5031,7 +5031,7 @@ static int osst_ioctl(struct inode * inode,struct file * file,
                        goto out;
                }
                mt_pos.mt_blkno = blk;
-               i = copy_to_user((char *)arg, (char *) (&mt_pos), sizeof(struct mtpos));
+               i = copy_to_user(p, &mt_pos, sizeof(struct mtpos));
                if (i)
                        retval = -EFAULT;
                goto out;
@@ -5040,7 +5040,7 @@ static int osst_ioctl(struct inode * inode,struct file * file,
 
        up(&STp->lock);
 
-       return scsi_ioctl(STp->device, cmd_in, (void *) arg);
+       return scsi_ioctl(STp->device, cmd_in, p);
 
 out:
        if (SRpnt) scsi_release_request(SRpnt);
@@ -5189,7 +5189,7 @@ static void normalize_buffer(OSST_buffer *STbuffer)
 
 /* Move data from the user buffer to the tape buffer. Returns zero (success) or
    negative error code. */
-static int append_to_buffer(const char *ubp, OSST_buffer *st_bp, int do_count)
+static int append_to_buffer(const char __user *ubp, OSST_buffer *st_bp, int do_count)
 {
        int i, cnt, res, offset;
 
@@ -5222,7 +5222,7 @@ static int append_to_buffer(const char *ubp, OSST_buffer *st_bp, int do_count)
 
 /* Move data from the tape buffer to the user buffer. Returns zero (success) or
    negative error code. */
-static int from_buffer(OSST_buffer *st_bp, char *ubp, int do_count)
+static int from_buffer(OSST_buffer *st_bp, char __user *ubp, int do_count)
 {
        int i, cnt, res, offset;