[SCSI] compat_ioct: fix bsg SG_IO
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Tue, 5 Jan 2010 10:41:44 +0000 (19:41 +0900)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 8 Feb 2010 19:43:18 +0000 (13:43 -0600)
commit84eb8fb42c120ff32b201c1cdd910033c888f699
tree6524fd3b36c939f532b579448e6a5fbda47d02b7
parent0f19bc681ed0849a2b95778460a0a8132e3700e2
[SCSI] compat_ioct: fix bsg SG_IO

bsg's SG_IO doesn't work on 32-bit userspace and 64-bit kernelspace.

The problem is that both sg and bsg drivers use SG_IO
ioctl. sg_ioctl_trans() does 32/64-bit conversion even against bsg
header. It messes up bsg header. bsg driver gets garbage.

This patch fixes sg_ioctl_trans to handle only sg header (struct
sg_io_hdr).

Reported-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
fs/compat_ioctl.c