• Tom Coughlan's avatar
    [PATCH] aacraid: remove aac_handle_aif · 56d46dd5
    Tom Coughlan authored
    When aac_command_thread detects an adapter event (AifCmdDriverNotify or
    AifCmdEventNotify) it calls aac_handle_aif. This routine sets a flag,
    calls fib_adapter_complete, and returns. The bad news is that after the
    return, aac_command_thread continues to process the command and calls
    fib_adapter_complete again.
    
    Under some circumstances this causes the driver to take the device
    offline. In my case, it happens with a Dell CERC SATA with a RAID 5 in
    the "building" state:
    
    aacraid: Host adapter reset request. SCSI hang ?
    aacraid: Host adapter appears dead
    scsi: Device offlined - not ready after error recovery: host 0 channel 0
    id 0 lun 0
    SCSI error : <0 0 0 0> return code = 0x6000000
    end_request: I/O error, dev sda, sector 976537592
    
    Mark Salyzyn says the intent is for aac_handle_aif to perform some
    plug-n-play actions based on the adapter event, and return, leaving the
    command completion to the caller.
    
    The attached patch solves the problem by removing aac_handle_aif
    entirely, since it is wrong, and there is currently no code in the
    driver to actually do anything with these events.
    Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
    56d46dd5
commsup.c 26.3 KB