aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/commsup.c
diff options
context:
space:
mode:
authorMark Haverkamp <markh@linux-foundation.org>2007-03-15 13:26:05 -0400
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2007-03-20 11:54:11 -0400
commit8418852d11f0bbaeebeedd4243560d8fdc85410d (patch)
tree83a6d2c4841c41bdc8a627c3e248deb1cc730210 /drivers/scsi/aacraid/commsup.c
parentb22f687dd28a7a8886b918294b4d558ef175c07d (diff)
[SCSI] aacraid: add restart adapter platform function
Received from Mark Salyzyn, This patch updates the adapter restart function to deal with some adapters that have specific IOP reset needs. Since the code for restarting the adapter was in two places, changed over to utilizing a platform function in one place. Signed-off-by: Mark Haverkamp <markh@linux-foundation.org> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid/commsup.c')
-rw-r--r--drivers/scsi/aacraid/commsup.c13
1 files changed, 1 insertions, 12 deletions
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c
index 1b97f60652ba..55bf6f395e92 100644
--- a/drivers/scsi/aacraid/commsup.c
+++ b/drivers/scsi/aacraid/commsup.c
@@ -1035,7 +1035,6 @@ static void aac_handle_aif(struct aac_dev * dev, struct fib * fibptr)
1035static int _aac_reset_adapter(struct aac_dev *aac) 1035static int _aac_reset_adapter(struct aac_dev *aac)
1036{ 1036{
1037 int index, quirks; 1037 int index, quirks;
1038 u32 ret;
1039 int retval; 1038 int retval;
1040 struct Scsi_Host *host; 1039 struct Scsi_Host *host;
1041 struct scsi_device *dev; 1040 struct scsi_device *dev;
@@ -1059,20 +1058,10 @@ static int _aac_reset_adapter(struct aac_dev *aac)
1059 * If a positive health, means in a known DEAD PANIC 1058 * If a positive health, means in a known DEAD PANIC
1060 * state and the adapter could be reset to `try again'. 1059 * state and the adapter could be reset to `try again'.
1061 */ 1060 */
1062 retval = aac_adapter_check_health(aac); 1061 retval = aac_adapter_restart(aac, aac_adapter_check_health(aac));
1063 if (retval == 0)
1064 retval = aac_adapter_sync_cmd(aac, IOP_RESET_ALWAYS,
1065 0, 0, 0, 0, 0, 0, &ret, NULL, NULL, NULL, NULL);
1066 if (retval)
1067 retval = aac_adapter_sync_cmd(aac, IOP_RESET,
1068 0, 0, 0, 0, 0, 0, &ret, NULL, NULL, NULL, NULL);
1069 1062
1070 if (retval) 1063 if (retval)
1071 goto out; 1064 goto out;
1072 if (ret != 0x00000001) {
1073 retval = -ENODEV;
1074 goto out;
1075 }
1076 1065
1077 /* 1066 /*
1078 * Loop through the fibs, close the synchronous FIBS 1067 * Loop through the fibs, close the synchronous FIBS