ide-{disk,floppy}: set IDE_DFLAG_ATTACH in *_setup()

There should be no functional changes caused by this patch.
Acked-by: default avatarBorislav Petkov <petkovbb@gmail.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 81ee1bb5
...@@ -716,6 +716,14 @@ static void idedisk_setup(ide_drive_t *drive) ...@@ -716,6 +716,14 @@ static void idedisk_setup(ide_drive_t *drive)
drive->dev_flags |= IDE_DFLAG_WCACHE; drive->dev_flags |= IDE_DFLAG_WCACHE;
set_wcache(drive, 1); set_wcache(drive, 1);
if ((drive->dev_flags & IDE_DFLAG_LBA) == 0 &&
(drive->head == 0 || drive->head > 16)) {
printk(KERN_ERR "%s: invalid geometry: %d physical heads?\n",
drive->name, drive->head);
drive->dev_flags &= ~IDE_DFLAG_ATTACH;
} else
drive->dev_flags |= IDE_DFLAG_ATTACH;
} }
static void ide_cacheflush_p(ide_drive_t *drive) static void ide_cacheflush_p(ide_drive_t *drive)
...@@ -957,20 +965,14 @@ static int ide_disk_probe(ide_drive_t *drive) ...@@ -957,20 +965,14 @@ static int ide_disk_probe(ide_drive_t *drive)
drive->driver_data = idkp; drive->driver_data = idkp;
idedisk_setup(drive); idedisk_setup(drive);
if ((drive->dev_flags & IDE_DFLAG_LBA) == 0 &&
(drive->head == 0 || drive->head > 16)) { set_capacity(g, ide_disk_capacity(drive));
printk(KERN_ERR "%s: INVALID GEOMETRY: %d PHYSICAL HEADS?\n",
drive->name, drive->head);
drive->dev_flags &= ~IDE_DFLAG_ATTACH;
} else
drive->dev_flags |= IDE_DFLAG_ATTACH;
g->minors = IDE_DISK_MINORS; g->minors = IDE_DISK_MINORS;
g->driverfs_dev = &drive->gendev; g->driverfs_dev = &drive->gendev;
g->flags |= GENHD_FL_EXT_DEVT; g->flags |= GENHD_FL_EXT_DEVT;
if (drive->dev_flags & IDE_DFLAG_REMOVABLE) if (drive->dev_flags & IDE_DFLAG_REMOVABLE)
g->flags = GENHD_FL_REMOVABLE; g->flags = GENHD_FL_REMOVABLE;
set_capacity(g, ide_disk_capacity(drive));
g->fops = &idedisk_ops; g->fops = &idedisk_ops;
add_disk(g); add_disk(g);
return 0; return 0;
......
...@@ -598,6 +598,8 @@ static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy) ...@@ -598,6 +598,8 @@ static void idefloppy_setup(ide_drive_t *drive, idefloppy_floppy_t *floppy)
(void) ide_floppy_get_capacity(drive); (void) ide_floppy_get_capacity(drive);
ide_proc_register_driver(drive, floppy->driver); ide_proc_register_driver(drive, floppy->driver);
drive->dev_flags |= IDE_DFLAG_ATTACH;
} }
static void ide_floppy_remove(ide_drive_t *drive) static void ide_floppy_remove(ide_drive_t *drive)
...@@ -807,7 +809,6 @@ static int ide_floppy_probe(ide_drive_t *drive) ...@@ -807,7 +809,6 @@ static int ide_floppy_probe(ide_drive_t *drive)
drive->debug_mask = debug_mask; drive->debug_mask = debug_mask;
idefloppy_setup(drive, floppy); idefloppy_setup(drive, floppy);
drive->dev_flags |= IDE_DFLAG_ATTACH;
g->minors = 1 << PARTN_BITS; g->minors = 1 << PARTN_BITS;
g->driverfs_dev = &drive->gendev; g->driverfs_dev = &drive->gendev;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment