We just ran into this too at osdl. I have something that gets the
driver to load, but I'm not sure what the right thing is to do.
The cmd_per_lun element of the driver_template is set to
AAC_NUM_IO_FIB. This is 512.
During probe, scsi_alloc_sdev is called. It calls
scsi_adjust_queue_depth with the cmd_per_lun value.
scsi_adjust_queue_depth returns without doing anything if the tags value
is greater than 256. This leaves the Scsi_Device queue_depth at zero.
Later when an I/O is queued, scsi_request_fn checks for device_busy >=
queue_depth. If so, the function does a break and exits. This is where
it hangs.
To get things to load I set cmd_per_lun to 256. I don't know if the is
the correct way to deal with the problem. Maybe someone else can say
something about that.
===== drivers/scsi/aacraid/linit.c 1.12 vs edited =====
--- 1.12/drivers/scsi/aacraid/linit.c Mon Feb 24 13:03:30 2003
+++ edited/drivers/scsi/aacraid/linit.c Wed Mar 12 14:32:18 2003
@@ -693,7 +693,7 @@
this_id: 16,
sg_tablesize: 16,
max_sectors: 128,
- cmd_per_lun: AAC_NUM_IO_FIB,
+ cmd_per_lun: 256,
eh_abort_handler: aac_eh_abort,
eh_device_reset_handler:aac_eh_device_reset,
eh_bus_reset_handler: aac_eh_bus_reset,
-- Mark Haverkamp <markh@osdl.org>- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/