[SCSI] hpsa: prevent stalled i/o
authorStephen M. Cameron <scameron@beardog.cce.hp.com>
Mon, 23 Sep 2013 18:34:17 +0000 (13:34 -0500)
committerJames Bottomley <JBottomley@Parallels.com>
Thu, 19 Dec 2013 15:38:56 +0000 (07:38 -0800)
commit396883e292ebe1e14ded99fd8b26be500926f055
tree71cd4a71008293204144136a024dd551738c1794
parent0390f0c0dfb540149d7369276b17ec53caf506cb
[SCSI] hpsa: prevent stalled i/o

If a fifo full condition is encountered, i/o requests will stack
up in the h->reqQ queue.  The only thing which empties this queue
is start_io, which only gets called when new i/o requests come in.
If none are forthcoming, i/o in h->reqQ will be stalled.

To fix this, whenever fifo full condition is encountered, this
is recorded, and the interrupt handler examines this to see
if a fifo full condition was recently encountered when a
command completes and will call start_io to prevent i/o's in
h->reqQ from getting stuck.

I've only ever seen this problem occur when running specialized
test programs that pound on the the CCISS_PASSTHRU ioctl.

Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/hpsa.c
drivers/scsi/hpsa.h