[SCSI] mpt2sas : Device removal algorithm in interrupt context only
authorKashyap, Desai <kashyap.desai@lsi.com>
Tue, 9 Mar 2010 12:04:13 +0000 (17:34 +0530)
committerJames Bottomley <James.Bottomley@suse.de>
Sun, 11 Apr 2010 14:23:29 +0000 (09:23 -0500)
commit1278b11f46d9f34097f44ecc417148f27e8997fe
tree986281490f5692194f64ce6e79aa5580a9f36bb8
parent40956059fb2ef717f1e864a6685e7cd31758fc2b
[SCSI] mpt2sas : Device removal algorithm in interrupt context only

external host not connecting after controller reboot: The
problem is : devices are not coming back after having the cable
disconnected then reconnected. The problem is because the
driver/firmware device removal handshake is failing. Due to this failure,
the controller firmware is not sending out device add events when the target
is reconnected. This is root caused to a race in the driver/firmware device
removal algorithm. There is duplicate code in both interrupt and user
context; where target reset is being issue from user context path while
sas_iounit_control(OP_REMOVE) is being sent from interrupt context. An
active target_reset will fail the OP_REMOVE. To fix this problem, the
duplicate code has been removed from user context path.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/mpt2sas/mpt2sas_base.h
drivers/scsi/mpt2sas/mpt2sas_scsih.c