[SCSI] mpt2sas: fix broadcast AEN and task management issue
commitf93213de5c28d4aeda51b3c03daf7e27f6dd2b7a
authorKashyap, Desai <kashyap.desai@lsi.com>
Tue, 14 Jun 2011 05:26:43 +0000 (14 10:56 +0530)
committerJames Bottomley <JBottomley@Parallels.com>
Wed, 29 Jun 2011 21:15:51 +0000 (29 16:15 -0500)
tree424e6e1e95065387f38b8160febf8866c72c549a
parenta3e1e55e4b5ca4d49618c592b4d10814e21e12a7
[SCSI] mpt2sas: fix broadcast AEN and task management issue

Properly handling of target reset in multi-initiator environment

Clean up in broadcast change handling:
(1) Need to look at the status of each task management request, and retry
    the TM when there are failures.
(2) Need quiescence IO so the driver doesn't take on more IO request while
    it's in the middle of sending TM  request to firmware
(3)  Add support to keep track of how many pending broadcast AEN events
     are received while the broadcast handling is active, then loop back at
     the end of this routine if there were any events received.

Clean up in mpt2sas_scsih_issue_tm routine:
(1) Make sure proper status is returned when host reset fails
(2) Clean up sanity checks near end of routine, insuring all outstanding
    IOs were completed.

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