-
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: James Bottomley <James.Bottomley@SteelEye.com>
56d46dd5