• Patrick Mansfield's avatar
    [PATCH] fix 2.5 scsi queue depth setting · 6647da0e
    Patrick Mansfield authored
    This patch fixes queue depth setting of scsi devices.
    
    This is done by pairing shost->slave_attach() calls with
    a scsi_build_commandblocks in the new scsi_slave_attach.
    
    This is a patch aginst linux-scsi.bkbits.net/scsi-for-linus-2.5 after
    applying the last posted hch version of the "Eliminate scsi_host_tmpl_list"
    patch, it still applies with offset to the current scsi-for-linus-2.5.
    
    It also:
    
    Will properly call shost->slave_attach after a scsi_unregister_device()
    followed by a scsi_register_device() - as could happen if you were able to
    rmmod all upper level drivers and then insmod any of them back (only
    possible when not booted on scsi).
    
    Checks for scsi_build_commandblocks() allocation failures.
    
    Sets queue depth even if shost->slave_attach() does not call
    scsi_adjust_queue_depth.
    
    Removes the use of revoke (no drivers are setting it, it was only
    call via the proc scsi remove-single-device interface).
    
    There are at least two problems with sysfs and scsi (one in sysfs, one in
    scsi, I'll try and post more soon ...) so I could not completey test rmmod
    of an adapter or upper level driver without leading to an oops or shutdown
    hang.
    
     hosts.c              |    5 --
     hosts.h              |    6 --
     osst.c               |    9 ++-
     scsi.c               |  118 +++++++++++++++++++++++++++++++--------------------
     scsi.h               |    2
     scsi_mid_low_api.txt |   24 ----------
     scsi_scan.c          |    9 ---
     sd.c                 |   10 +++-
     sg.c                 |   10 ++--
     sr.c                 |    7 ++-
     st.c                 |   11 +++-
     11 files changed, 106 insertions(+), 105 deletions(-)
    
    ===== drivers/scsi/hosts.c 1.23 vs edited =====
    6647da0e
st.c 113 KB