summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/ide/ide-cd.c3
-rw-r--r--drivers/ide/ide-disk.c13
-rw-r--r--drivers/ide/ide-floppy.c12
-rw-r--r--drivers/ide/ide-probe.c9
-rw-r--r--drivers/ide/ide.c2
-rw-r--r--drivers/s390/block/dasd_genhd.c2
-rw-r--r--drivers/scsi/sd.c5
-rw-r--r--fs/partitions/check.c4
-rw-r--r--include/linux/genhd.h2
9 files changed, 11 insertions, 41 deletions
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index d6e7db8b7887..860f2436179d 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -3147,6 +3147,9 @@ static int ide_cdrom_reinit (ide_drive_t *drive)
cdrom_read_toc(drive, &sense);
g->minor_shift = 0;
+ /* probably bogus, but that's the old behaviour */
+ g->de_arr[0] = NULL;
+ g->flags = 0;
add_gendisk(g);
register_disk(g, mk_kdev(g->major,g->first_minor),
1<<g->minor_shift, ide_fops,
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index ce8e1a9e57b9..5fb72ddaf952 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -1516,8 +1516,6 @@ static void idedisk_add_settings(ide_drive_t *drive)
static void idedisk_setup (ide_drive_t *drive)
{
- int i;
-
struct hd_driveid *id = drive->id;
unsigned long capacity;
@@ -1538,15 +1536,6 @@ static void idedisk_setup (ide_drive_t *drive)
drive->doorlocking = 1;
}
}
- for (i = 0; i < MAX_DRIVES; ++i) {
- ide_hwif_t *hwif = HWIF(drive);
-
- if (drive != &hwif->drives[i]) continue;
- hwif->gd[i]->de_arr[i] = drive->de;
- if (drive->removable)
- hwif->gd[i]->flags[i] |= GENHD_FL_REMOVABLE;
- break;
- }
#if 1
(void) probe_lba_addressing(drive, 1);
@@ -1714,6 +1703,8 @@ static int idedisk_reinit(ide_drive_t *drive)
}
DRIVER(drive)->busy--;
g->minor_shift = PARTN_BITS;
+ g->de_arr[0] = drive->de;
+ g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0;
add_gendisk(g);
register_disk(g, mk_kdev(g->major,g->first_minor),
1<<g->minor_shift, ide_fops,
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index 24ef0f8ba412..94f57d4b5b9f 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -2065,7 +2065,6 @@ static void idefloppy_add_settings(ide_drive_t *drive)
static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
{
struct idefloppy_id_gcw gcw;
- int i;
*((unsigned short *) &gcw) = drive->id->config;
drive->driver_data = floppy;
@@ -2108,15 +2107,6 @@ static void idefloppy_setup (ide_drive_t *drive, idefloppy_floppy_t *floppy)
(void) idefloppy_get_capacity (drive);
idefloppy_add_settings(drive);
- for (i = 0; i < MAX_DRIVES; ++i) {
- ide_hwif_t *hwif = HWIF(drive);
-
- if (drive != &hwif->drives[i]) continue;
- hwif->gd[i]->de_arr[i] = drive->de;
- if (drive->removable)
- hwif->gd[i]->flags[i] |= GENHD_FL_REMOVABLE;
- break;
- }
}
static int idefloppy_cleanup (ide_drive_t *drive)
@@ -2221,6 +2211,8 @@ static int idefloppy_reinit (ide_drive_t *drive)
idefloppy_setup (drive, floppy);
DRIVER(drive)->busy--;
g->minor_shift = PARTN_BITS;
+ g->de_arr[0] = drive->de;
+ g->flags = drive->removable ? GENHD_FL_REMOVABLE : 0;
add_gendisk(g);
register_disk(g, mk_kdev(g->major,g->first_minor),
1<<g->minor_shift, ide_fops,
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
index cd9b76e89e46..9fc3488c111b 100644
--- a/drivers/ide/ide-probe.c
+++ b/drivers/ide/ide-probe.c
@@ -809,7 +809,6 @@ static void init_gendisk (ide_hwif_t *hwif)
struct gendisk *gd;
struct hd_struct *part;
devfs_handle_t *de_arr;
- char *flags;
unsigned int unit, units, minors;
extern devfs_handle_t ide_devfs_handle;
char *names;
@@ -841,11 +840,6 @@ static void init_gendisk (ide_hwif_t *hwif)
goto err_kmalloc_gd_de_arr;
memset(de_arr, 0, sizeof(devfs_handle_t) * MAX_DRIVES);
- flags = kmalloc(sizeof(char) * MAX_DRIVES, GFP_KERNEL);
- if (!flags)
- goto err_kmalloc_gd_flags;
- memset(flags, 0, sizeof(char) * MAX_DRIVES);
-
names = kmalloc (4 * MAX_DRIVES, GFP_KERNEL);
if (!names)
goto err_kmalloc_gd_names;
@@ -854,7 +848,6 @@ static void init_gendisk (ide_hwif_t *hwif)
for (unit = 0; unit < units; ++unit) {
gd[unit].part = part + (unit << PARTN_BITS);
gd[unit].de_arr = de_arr + unit;
- gd[unit].flags = flags + unit;
hwif->drives[unit].part = gd[unit].part;
gd[unit].major = hwif->major;
gd[unit].first_minor = unit << PARTN_BITS;
@@ -891,8 +884,6 @@ static void init_gendisk (ide_hwif_t *hwif)
return;
err_kmalloc_gd_names:
- kfree(names);
-err_kmalloc_gd_flags:
kfree(de_arr);
err_kmalloc_gd_de_arr:
kfree(part);
diff --git a/drivers/ide/ide.c b/drivers/ide/ide.c
index c81cbf3ae916..7c1ed4dd8f25 100644
--- a/drivers/ide/ide.c
+++ b/drivers/ide/ide.c
@@ -2064,8 +2064,6 @@ void ide_unregister (unsigned int index)
kfree(gd->part);
if (gd->de_arr)
kfree (gd->de_arr);
- if (gd->flags)
- kfree (gd->flags);
kfree(gd);
for (i = 0; i < MAX_DRIVES; i++)
hwif->gd[i] = NULL;
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c
index 056a917799a8..82d060ba4026 100644
--- a/drivers/s390/block/dasd_genhd.c
+++ b/drivers/s390/block/dasd_genhd.c
@@ -35,7 +35,6 @@ struct major_info {
int major;
struct gendisk disks[DASD_PER_MAJOR];
devfs_handle_t de_arr[DASD_PER_MAJOR];
- char flags[DASD_PER_MAJOR];
char names[DASD_PER_MAJOR * 8];
struct hd_struct part[1<<MINORBITS];
};
@@ -108,7 +107,6 @@ dasd_register_major(int major)
disk->minor_shift = DASD_PARTN_BITS;
disk->fops = &dasd_device_operations;
disk->de_arr = mi->de_arr + i;
- disk->flags = mi->flags + i;
disk->part = mi->part + (i << DASD_PARTN_BITS);
}
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index b4edc9266a48..b1686243dccb 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1302,7 +1302,6 @@ static int sd_attach(Scsi_Device * sdp)
struct gendisk disk;
devfs_handle_t de;
struct device *dev;
- char flags;
char name[5];
} *p;
struct gendisk *gd;
@@ -1316,7 +1315,6 @@ static int sd_attach(Scsi_Device * sdp)
return 1;
gd = &p->disk;
gd->de_arr = &p->de;
- gd->flags = &p->flags;
gd->driverfs_dev_arr = &p->dev;
SCSI_LOG_HLQUEUE(3, printk("sd_attach: scsi device: <%d,%d,%d,%d>\n",
@@ -1361,8 +1359,7 @@ static int sd_attach(Scsi_Device * sdp)
else
sprintf(p->name, "sd%c", 'a'+dsk_nr%26);
gd->major_name = p->name;
- if (sdp->removable)
- gd->flags[0] |= GENHD_FL_REMOVABLE;
+ gd->flags = sdp->removable ? GENHD_FL_REMOVABLE : 0;
sd_disks[dsk_nr] = gd;
sd_dskname(dsk_nr, diskname);
printk(KERN_NOTICE "Attached scsi %sdisk %s at scsi%d, channel %d, "
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index fa248882183b..db8d2e8269a3 100644
--- a/fs/partitions/check.c
+++ b/fs/partitions/check.c
@@ -260,7 +260,7 @@ static void devfs_register_partition(struct gendisk *dev, int part)
dir = devfs_get_parent(p[0].de);
if (!dir)
return;
- if ( dev->flags && (dev->flags[0] & GENHD_FL_REMOVABLE) )
+ if (dev->flags & GENHD_FL_REMOVABLE)
devfs_flags |= DEVFS_FL_REMOVABLE;
sprintf (devname, "part%d", part);
p[part].de = devfs_register (dir, devname, devfs_flags,
@@ -282,7 +282,7 @@ static void devfs_register_disc(struct gendisk *dev)
if (p[0].de)
return;
- if ( dev->flags && (dev->flags[0] & GENHD_FL_REMOVABLE) )
+ if (dev->flags & GENHD_FL_REMOVABLE)
devfs_flags |= DEVFS_FL_REMOVABLE;
if (dev->de_arr) {
dir = dev->de_arr[0];
diff --git a/include/linux/genhd.h b/include/linux/genhd.h
index dcff86342667..aa2f694ceb1a 100644
--- a/include/linux/genhd.h
+++ b/include/linux/genhd.h
@@ -81,7 +81,7 @@ struct gendisk {
devfs_handle_t *de_arr; /* one per physical disc */
struct device **driverfs_dev_arr;/* support driverfs hierarchy */
- char *flags; /* one per physical disc */
+ int flags;
};
/* drivers/block/genhd.c */