diff options
author | Brian King <brking@linux.vnet.ibm.com> | 2010-06-17 14:55:13 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-07-27 13:02:39 -0400 |
commit | 73ee5d8672871bd69077ca71e7208a36bfa6343c (patch) | |
tree | 6494ae5426a54a98ad5f8f6aec4ba58e41003fc4 /drivers/scsi/ibmvscsi/ibmvfc.h | |
parent | 15f7fc060a7bf49991c35b23e1e7d73a1535382a (diff) |
[SCSI] ibmvfc: Fix soft lockup on resume
This fixes a softlockup seen on resume. During resume, the CRQ
must be reenabled. However, the H_ENABLE_CRQ hcall used to do
this may return H_BUSY or H_LONG_BUSY. When this happens, the
caller is expected to retry later. Normally the H_ENABLE_CRQ
succeeds relatively soon. However, we have seen cases where
this can take long enough to see softlockup warnings.
This patch changes a simple loop, which was causing the
softlockup, to a loop at task level which sleeps between
retries rather than simply spinning.
Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/ibmvscsi/ibmvfc.h')
-rw-r--r-- | drivers/scsi/ibmvscsi/ibmvfc.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.h b/drivers/scsi/ibmvscsi/ibmvfc.h index 7e9742764e4b..2010d73aca81 100644 --- a/drivers/scsi/ibmvscsi/ibmvfc.h +++ b/drivers/scsi/ibmvscsi/ibmvfc.h | |||
@@ -649,6 +649,8 @@ struct ibmvfc_event_pool { | |||
649 | 649 | ||
650 | enum ibmvfc_host_action { | 650 | enum ibmvfc_host_action { |
651 | IBMVFC_HOST_ACTION_NONE = 0, | 651 | IBMVFC_HOST_ACTION_NONE = 0, |
652 | IBMVFC_HOST_ACTION_RESET, | ||
653 | IBMVFC_HOST_ACTION_REENABLE, | ||
652 | IBMVFC_HOST_ACTION_LOGO, | 654 | IBMVFC_HOST_ACTION_LOGO, |
653 | IBMVFC_HOST_ACTION_LOGO_WAIT, | 655 | IBMVFC_HOST_ACTION_LOGO_WAIT, |
654 | IBMVFC_HOST_ACTION_INIT, | 656 | IBMVFC_HOST_ACTION_INIT, |