• James Bottomley 's avatar
    [SCSI] aic7xxx: make correct use of slave_alloc/destroy and remove the per device timer · c7525233
    James Bottomley authored
    The allocation of all of our components should be done in slave alloc.
    Currently it's rather fancifully refcounted in the queuecommand
    callback.  This patch moves allocation and destroy to their correct
    places in slave_alloc/slave_destory.  Now we can guarantee that
    everywhere a device is requested, it's actually been allocated, so don't
    check for this anymore.
    
    Additionally, the per device busy timer was the only source of potential
    use after free.  It's been deleted because Linux does the correct thing
    with busy returns, so there's no need to implement a separate timer in
    the driver.
    
    Finally, implement code that forces all the device parameters to zero
    (i.e. async and narrow) in the slave alloc, inform the spi class of the
    bios recorded maximums and wait until slave configure before trying
    anything more adventurous.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    c7525233
aic7xxx_osm.c 81.4 KB