[SCSI] compat: don't perform unneeded copy in sg_io code
authorAlexey Zaytsev <alexey.zaytsev@gmail.com>
Wed, 10 Jun 2009 19:56:56 +0000 (12:56 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Mon, 15 Jun 2009 15:09:30 +0000 (10:09 -0500)
The members from 'status' in struct sg_io_hdr to the last are used to
transfer information from kernel to user space.  The values that user
space sets are just ignored.

Signed-off-by: Alexey Zaytsev <alexey.zaytsev@gmail.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
fs/compat_ioctl.c

index b83f6bcfa51a4eefc745d819e8eb9592f4af990c..905523cc281f52cbe84d9f75f546082cdeece237 100644 (file)
@@ -788,12 +788,6 @@ static int sg_ioctl_trans(unsigned int fd, unsigned int cmd, unsigned long arg)
        if (put_user(compat_ptr(data), &sgio->usr_ptr))
                return -EFAULT;
 
-       if (copy_in_user(&sgio->status, &sgio32->status,
-                        (4 * sizeof(unsigned char)) +
-                        (2 * sizeof(unsigned short)) +
-                        (3 * sizeof(int))))
-               return -EFAULT;
-
        err = sys_ioctl(fd, cmd, (unsigned long) sgio);
 
        if (err >= 0) {