[SCSI] megaraid_sas: Add Online Controller Reset to MegaRAID SAS drive
authorbo yang <boyang1288@gmail.com>
Thu, 23 Sep 2010 02:36:29 +0000 (22:36 -0400)
committerJames Bottomley <James.Bottomley@suse.de>
Thu, 7 Oct 2010 22:33:09 +0000 (17:33 -0500)
commit39a985547cbfcbb0b23667b69b8ae82a6cf312ac
tree1a4f526e4de45b56408e03f353d584cbd8c1ab37
parent969c9165581fbb55cab0f500f555a69279cecb57
[SCSI] megaraid_sas: Add Online Controller Reset to MegaRAID SAS drive

To add the Online controller reset support, driver need to do:
a). reset the controller chips -- Xscale and Gen2 which will change
the function calls and add the reset function related to this two
chips.
b). during the reset, driver will store the pending cmds which not
returned by FW to driver's pending queue.  Driver will re-issue those
pending cmds again to FW after the OCR finished.
c). In driver's timeout routine, driver will report to OS as reset.
Also driver's queue routine will block the cmds until the OCR
finished.
d). in Driver's ISR routine, if driver get the FW state as state
change, FW in Failure status and FW support online controller
reset (OCR), driver will start to do the controller reset.
e). In driver's IOCTL routine, the application cmds will wait for the
OCR to finish, then issue the cmds to FW.

Signed-off-by Bo Yang <bo.yang@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/megaraid/megaraid_sas.c
drivers/scsi/megaraid/megaraid_sas.h