SCSI: aacraid: Fix for arrays are going offline in the system. System hangs
authorMahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
Tue, 18 Jun 2013 11:32:07 +0000 (17:02 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jul 2013 21:07:30 +0000 (14:07 -0700)
commit4e6b18250651a14b053508e30e731247e28e3f2a
treef793ca546f5be2f0a32392af1eeb565e964d4609
parent98dcc2946adbe4349ef1ef9b99873b912831edd4
SCSI: aacraid: Fix for arrays are going offline in the system. System hangs

commit c5bebd829dd95602c15f8da8cc50fa938b5e0254 upstream.

One of the customer had reported that the set of raid logical arrays will
become unavailable (I/O offline) after a long hours of IO stress test.  The OS
wouldn`t be accessible afterwards and require a hard reset.

This driver patch has a fix for race condition between the doorbell and the
circular buffer. The driver is modified to do an extra read after clearing the
doorbell in case there had been a completion posted during the small timing
window.

With this fix, we ran IO stress for ~13 days. There were no IO failures.

Signed-off-by: Mahesh Rajashekhara <Mahesh.Rajashekhara@pmcs.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/scsi/aacraid/src.c