From: Linus Torvalds Date: Tue, 17 Jul 2007 22:57:42 +0000 (-0700) Subject: Revert drivers/ide/ide.c scsi_cmd_ioctl() usage changes X-Git-Tag: v2.6.23-rc1~506 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=1985026d32e69ed6dac3ba0ef8ff10366f060ed3;p=linux-2.6-omap-h63xx.git Revert drivers/ide/ide.c scsi_cmd_ioctl() usage changes The old IDE driver is not ready to take generic SCSI commands, even if it uses them for some specific issues (ie the tray open/close ioctls for IDE CD-ROM's). Pointed out by Bartlomiej. I'm sure we'll have it fixed properly soon enough, but for now we should not allow it to cause problems. Cc: Bartlomiej Zolnierkiewicz Cc: Jens Axboe Signed-off-by: Linus Torvalds --- diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c index 8cd7694593c..077fb674a96 100644 --- a/drivers/ide/ide.c +++ b/drivers/ide/ide.c @@ -1049,13 +1049,9 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device unsigned long flags; ide_driver_t *drv; void __user *p = (void __user *)arg; - int err, (*setfunc)(ide_drive_t *, int); + int err = 0, (*setfunc)(ide_drive_t *, int); u8 *val; - err = scsi_cmd_ioctl(file, bdev->bd_disk->queue, bdev->bd_disk, cmd, p); - if (err != -ENOTTY) - return err; - switch (cmd) { case HDIO_GET_32BIT: val = &drive->io_32bit; goto read_val; case HDIO_GET_KEEPSETTINGS: val = &drive->keep_settings; goto read_val; @@ -1175,6 +1171,10 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device return 0; } + case CDROMEJECT: + case CDROMCLOSETRAY: + return scsi_cmd_ioctl(file, bdev->bd_disk->queue, bdev->bd_disk, cmd, p); + case HDIO_GET_BUSSTATE: if (!capable(CAP_SYS_ADMIN)) return -EACCES;