Patch from: steve cameron Remove unneeded cciss_scsi init code from cciss driver. drivers/block/cciss.c | 3 --- drivers/block/cciss_scsi.c | 21 +++++++++------------ 2 files changed, 9 insertions(+), 15 deletions(-) diff -puN drivers/block/cciss.c~cciss-8 drivers/block/cciss.c --- 25/drivers/block/cciss.c~cciss-8 Wed Feb 12 12:12:54 2003 +++ 25-akpm/drivers/block/cciss.c Wed Feb 12 12:12:54 2003 @@ -2440,9 +2440,6 @@ static int __init cciss_init_one(struct set_capacity(disk, drv->nr_blocks); add_disk(disk); } - - cciss_register_scsi(i, 1); /* hook ourself into SCSI subsystem */ - return(1); } diff -puN drivers/block/cciss_scsi.c~cciss-8 drivers/block/cciss_scsi.c --- 25/drivers/block/cciss_scsi.c~cciss-8 Wed Feb 12 12:12:54 2003 +++ 25-akpm/drivers/block/cciss_scsi.c Wed Feb 12 12:12:54 2003 @@ -89,8 +89,10 @@ static struct cciss_scsi_hba_t ccissscsi working even with the SCSI system. It's so scsi_unregister_host will differentiate the controllers. When register_scsi_module is called, each host template is - customized (name change) in cciss_register_scsi() - (that's called from cciss.c:cciss_init_one()) */ + customized (name change) in cciss_register_scsi() (that's + called from cciss_engage_scsi, called from + cciss.c:cciss_proc_write(), on "engage scsi" being received + from user space.) */ static Scsi_Host_Template driver_template[MAX_CTLR] = @@ -1530,7 +1532,7 @@ cciss_unregister_scsi(int ctlr) } static int -cciss_register_scsi(int ctlr, int this_is_init_time) +cciss_register_scsi(int ctlr) { unsigned long flags; @@ -1540,15 +1542,10 @@ cciss_register_scsi(int ctlr, int this_i driver_template[ctlr].module = THIS_MODULE;; /* Since this is really a block driver, the SCSI core may not be - initialized yet, in which case, calling scsi_register_host - would hang. instead, we will do it later, via /proc filesystem + initialized at init time, in which case, calling scsi_register_host + would hang. Instead, we do it later, via /proc filesystem and rc scripts, when we know SCSI core is good to go. */ - if (this_is_init_time) { - CPQ_TAPE_UNLOCK(ctlr, flags); - return 0; - } - /* Only register if SCSI devices are detected. */ if (ccissscsi[ctlr].ndevices != 0) { ((struct cciss_scsi_adapter_data_t *) @@ -1582,7 +1579,7 @@ cciss_engage_scsi(int ctlr) } spin_unlock_irqrestore(CCISS_LOCK(ctlr), flags); cciss_update_non_disk_devices(ctlr, -1); - cciss_register_scsi(ctlr, 0); + cciss_register_scsi(ctlr); return 0; } @@ -1608,7 +1605,7 @@ cciss_proc_tape_report(int ctlr, unsigne #define cciss_find_non_disk_devices(cntl_num) #define cciss_unregister_scsi(ctlr) -#define cciss_register_scsi(ctlr, this_is_init_time) +#define cciss_register_scsi(ctlr) #define cciss_proc_tape_report(ctlr, buffer, pos, len) #endif /* CONFIG_CISS_SCSI_TAPE */ _