[SCSI] ibmvfc: Fix soft lockup on resume
authorBrian King <brking@linux.vnet.ibm.com>
Thu, 17 Jun 2010 18:55:13 +0000 (13:55 -0500)
committerJames Bottomley <James.Bottomley@suse.de>
Tue, 27 Jul 2010 17:02:39 +0000 (12:02 -0500)
commit73ee5d8672871bd69077ca71e7208a36bfa6343c
tree6494ae5426a54a98ad5f8f6aec4ba58e41003fc4
parent15f7fc060a7bf49991c35b23e1e7d73a1535382a
[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>
drivers/scsi/ibmvscsi/ibmvfc.c
drivers/scsi/ibmvscsi/ibmvfc.h