Commit aaeab80b authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[PATCH] ide_scsi: allow it to be used for non CD only

Some people want to use ide_cd for CD-ROM but still dynamically load
ide-scsi for things like tape drives.  If you compile in the CD driver this
works out but if you want them modular you need an option to ensure that
whoever loads first the right things happen.

This replaces the original draft patch which leaked a scsi host reference

[akpm@osdl.org: add MODULE_PARM_DESC]
Signed-off-by: default avatarAlan Cox <alan@redhat.com>
Cc: Bartlomiej Zolnierkiewicz <B.Zolnierkiewicz@elka.pw.edu.pl>
Cc: Jens Axboe <jens.axboe@oracle.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 2ee91f19
...@@ -110,6 +110,7 @@ typedef struct ide_scsi_obj { ...@@ -110,6 +110,7 @@ typedef struct ide_scsi_obj {
} idescsi_scsi_t; } idescsi_scsi_t;
static DEFINE_MUTEX(idescsi_ref_mutex); static DEFINE_MUTEX(idescsi_ref_mutex);
static int idescsi_nocd; /* Set by module param to skip cd */
#define ide_scsi_g(disk) \ #define ide_scsi_g(disk) \
container_of((disk)->private_data, struct ide_scsi_obj, driver) container_of((disk)->private_data, struct ide_scsi_obj, driver)
...@@ -1127,6 +1128,9 @@ static int ide_scsi_probe(ide_drive_t *drive) ...@@ -1127,6 +1128,9 @@ static int ide_scsi_probe(ide_drive_t *drive)
warned = 1; warned = 1;
} }
if (idescsi_nocd && drive->media == ide_cdrom)
return -ENODEV;
if (!strstr("ide-scsi", drive->driver_req) || if (!strstr("ide-scsi", drive->driver_req) ||
!drive->present || !drive->present ||
drive->media == ide_disk || drive->media == ide_disk ||
...@@ -1187,6 +1191,8 @@ static void __exit exit_idescsi_module(void) ...@@ -1187,6 +1191,8 @@ static void __exit exit_idescsi_module(void)
driver_unregister(&idescsi_driver.gen_driver); driver_unregister(&idescsi_driver.gen_driver);
} }
module_param(idescsi_nocd, int, 0600);
MODULE_PARM_DESC(idescsi_nocd, "Disable handling of CD-ROMs so they may be driven by ide-cd");
module_init(init_idescsi_module); module_init(init_idescsi_module);
module_exit(exit_idescsi_module); module_exit(exit_idescsi_module);
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
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