[SCSI] ipr: fix transition to operational for new adapters
authorWayne Boyer <wayneb@linux.vnet.ibm.com>
Wed, 14 Jul 2010 17:49:43 +0000 (10:49 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Wed, 28 Jul 2010 14:05:39 +0000 (09:05 -0500)
commit1df79ca4223632113f14618833b8bb1727a8ca15
tree75b7def7758b9bd3f5bd3c2e6ba530abb644f5ca
parent82c57028e4bf6e2755de91b36223f57406746fa8
[SCSI] ipr: fix transition to operational for new adapters

The method of transitioning to operational for new adapters includes using
initialization stages.  The current stage is indicated via a register read.
The final good stage in the sequence is "operational" but does not necessarily
indicate that the driver can proceed.  There is another bit that gets set in the
adapter->host interrupt register when the adapter has completed enough of its
bringup such that it can accept commands.  The driver was not checking that
bit before proceeding which led to intermittent errors and adapter resets.

The fix is to check the "transition to operational" bit in the interrupt
register after detecting that the initialization stage is "operational" and
only proceed if both are set.

Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com>
Acked-by: Brian King <brking@linux.vnet.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/ipr.c