summaryrefslogtreecommitdiff
path: root/drivers/scsi/aacraid/rx.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-29 13:39:52 -0700
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-29 13:39:52 -0700
commita43266355b3d8cf6717a27159f9a417bdff73782 (patch)
tree3d7e87d115a2aa6326e72171a5c05962830d5f41 /drivers/scsi/aacraid/rx.c
parentd5d4db704b962773c03ee3beb3258b6450611e66 (diff)
parent05e9ebbefb379a4da782b21b8427c88ac28a2334 (diff)
Merge master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6: [SCSI] megaraid_sas: intercept cmd timeout and throttle io [SCSI] fusion: Fix |/|| confusion [SCSI] aic94xx: asd_clear_nexus should fail if the cleared task does not complete [SCSI] aic7xxx: fix aicasm build failure with gcc-3.4.6 [SCSI] aacraid: apply commit config for reset_devices flag [SCSI] sd: fix refcounting regression in suspend/resume routines [SCSI] aacraid: fix panic on short Inquiry [SCSI] aacraid: Correct sa platform support. (Was: [Bug 8469] Bad EIP value on pentium3 SMP kernel-2.6.21.1) [SCSI] NCR53C9x: correct spelling mistake in deprecation notice [SCSI] tgt: fix a rdma indirect transfer error bug [SCSI] MegaRAID: Update MAINTAINERS email-id [SCSI] stex: minor cleanup and version update [SCSI] stex: fix reset recovery for console device [SCSI] stex: extend hard reset wait time [SCSI] stex: fix id mapping issue [SCSI] ipr: Proper return codes for eh_dev_reset for SATA devices [SCSI] zfcp: IO stall after deleting and path checker changes after reenabling zfcp devices [SCSI] zfcp: avoid clutter in erp_dbf
Diffstat (limited to 'drivers/scsi/aacraid/rx.c')
-rw-r--r--drivers/scsi/aacraid/rx.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/scsi/aacraid/rx.c b/drivers/scsi/aacraid/rx.c
index 291cd14f4e98..ae978a373c56 100644
--- a/drivers/scsi/aacraid/rx.c
+++ b/drivers/scsi/aacraid/rx.c
@@ -378,7 +378,7 @@ static int aac_rx_check_health(struct aac_dev *dev)
*
* Will send a fib, returning 0 if successful.
*/
-static int aac_rx_deliver_producer(struct fib * fib)
+int aac_rx_deliver_producer(struct fib * fib)
{
struct aac_dev *dev = fib->dev;
struct aac_queue *q = &dev->queues->queue[AdapNormCmdQueue];
@@ -488,6 +488,8 @@ static int aac_rx_restart_adapter(struct aac_dev *dev, int bled)
return -EINVAL;
if (rx_readl(dev, MUnit.OMRx[0]) & KERNEL_PANIC)
return -ENODEV;
+ if (startup_timeout < 300)
+ startup_timeout = 300;
return 0;
}
@@ -542,7 +544,7 @@ int _aac_rx_init(struct aac_dev *dev)
dev->a_ops.adapter_sync_cmd = rx_sync_cmd;
dev->a_ops.adapter_enable_int = aac_rx_disable_interrupt;
dev->OIMR = status = rx_readb (dev, MUnit.OIMR);
- if ((((status & 0x0c) != 0x0c) || reset_devices) &&
+ if ((((status & 0x0c) != 0x0c) || aac_reset_devices || reset_devices) &&
!aac_rx_restart_adapter(dev, 0))
++restart;
/*
@@ -594,6 +596,8 @@ int _aac_rx_init(struct aac_dev *dev)
}
msleep(1);
}
+ if (restart)
+ aac_commit = 1;
/*
* Fill in the common function dispatch table.
*/