提交 b62735d9 编写于 作者: M Mikael Pettersson 提交者: Linus Torvalds

[PATCH] ide-scsi: fix for IDE probe/remove ops changes

Kernel 2.6.16-rc1 broke the ide-scsi driver: ide-scsi loads but fails to
find any devices to bind to.  It also triggers a message "Driver 'ide-scsi'
needs updating - please use bus_type methods" from the driver core.

The IDE core in 2.6.16-rc1 changed the location of an IDE driver's
->probe()/->remove()/->shutdown() methods: they are now in the ide_driver_t
struct not in the gen_driver sub-struct.  drivers/ide/ was updated for this
change but ide-scsi.c wasn't.  Hence the breakage.

This patch repairs ide-scsi and also eliminates the driver core warning.
Signed-off-by: NMikael Pettersson <mikpe@csd.uu.se>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Greg KH <greg@kroah.com>
Acked-by: NBartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 6292d9aa
...@@ -751,9 +751,8 @@ static void idescsi_setup (ide_drive_t *drive, idescsi_scsi_t *scsi) ...@@ -751,9 +751,8 @@ static void idescsi_setup (ide_drive_t *drive, idescsi_scsi_t *scsi)
idescsi_add_settings(drive); idescsi_add_settings(drive);
} }
static int ide_scsi_remove(struct device *dev) static void ide_scsi_remove(ide_drive_t *drive)
{ {
ide_drive_t *drive = to_ide_device(dev);
struct Scsi_Host *scsihost = drive->driver_data; struct Scsi_Host *scsihost = drive->driver_data;
struct ide_scsi_obj *scsi = scsihost_to_idescsi(scsihost); struct ide_scsi_obj *scsi = scsihost_to_idescsi(scsihost);
struct gendisk *g = scsi->disk; struct gendisk *g = scsi->disk;
...@@ -768,11 +767,9 @@ static int ide_scsi_remove(struct device *dev) ...@@ -768,11 +767,9 @@ static int ide_scsi_remove(struct device *dev)
scsi_remove_host(scsihost); scsi_remove_host(scsihost);
ide_scsi_put(scsi); ide_scsi_put(scsi);
return 0;
} }
static int ide_scsi_probe(struct device *); static int ide_scsi_probe(ide_drive_t *);
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
static ide_proc_entry_t idescsi_proc[] = { static ide_proc_entry_t idescsi_proc[] = {
...@@ -788,9 +785,9 @@ static ide_driver_t idescsi_driver = { ...@@ -788,9 +785,9 @@ static ide_driver_t idescsi_driver = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "ide-scsi", .name = "ide-scsi",
.bus = &ide_bus_type, .bus = &ide_bus_type,
.probe = ide_scsi_probe,
.remove = ide_scsi_remove,
}, },
.probe = ide_scsi_probe,
.remove = ide_scsi_remove,
.version = IDESCSI_VERSION, .version = IDESCSI_VERSION,
.media = ide_scsi, .media = ide_scsi,
.supports_dsc_overlap = 0, .supports_dsc_overlap = 0,
...@@ -1119,9 +1116,8 @@ static struct scsi_host_template idescsi_template = { ...@@ -1119,9 +1116,8 @@ static struct scsi_host_template idescsi_template = {
.proc_name = "ide-scsi", .proc_name = "ide-scsi",
}; };
static int ide_scsi_probe(struct device *dev) static int ide_scsi_probe(ide_drive_t *drive)
{ {
ide_drive_t *drive = to_ide_device(dev);
idescsi_scsi_t *idescsi; idescsi_scsi_t *idescsi;
struct Scsi_Host *host; struct Scsi_Host *host;
struct gendisk *g; struct gendisk *g;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册