aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ide/ide.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/ide/ide.c')
-rw-r--r--drivers/ide/ide.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index 3087a565e6bbc..482a90d2053bb 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -1408,6 +1408,7 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device
unsigned int cmd, unsigned long arg)
{
ide_settings_t *setting;
+ ide_driver_t *drv;
int err = 0;
void __user *p = (void __user *)arg;
@@ -1507,7 +1508,8 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device
if (arg != (arg & ((1 << IDE_NICE_DSC_OVERLAP) | (1 << IDE_NICE_1))))
return -EPERM;
drive->dsc_overlap = (arg >> IDE_NICE_DSC_OVERLAP) & 1;
- if (drive->dsc_overlap && !DRIVER(drive)->supports_dsc_overlap) {
+ drv = *(ide_driver_t **)bdev->bd_disk->private_data;
+ if (drive->dsc_overlap && !drv->supports_dsc_overlap) {
drive->dsc_overlap = 0;
return -EPERM;
}