diff options
author | Mark Haverkamp <markh@osdl.org> | 2006-05-10 12:12:48 -0400 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-05-20 10:22:25 -0400 |
commit | 404d9a900b5bc83a3780ec337ca6fdcb04b766c0 (patch) | |
tree | cb43521e7ddd2e20cae26ed8b70ea77dab9bae79 /drivers/scsi/aacraid/rkt.c | |
parent | 3c1e0cca9469bd19590ade25f6d9f94da2710d5b (diff) |
[SCSI] aacraid: adjustable timeouts
Received From Mark Salyzyn
Add the ability to adjust for unusual corner case failures. Both of
these additional module parameters deal with embedded, non-intel or
complicated system scenarios.
Aif_timeout can be increased past the default 2 minute timeout to drop
application registrations when a system has an unusually high event load
resulting from continuing management requests, or simultaneous builds,
or sluggish user space as a result of system load.
Startup_timeout can be increased past the default 3 minute timeout to
drop an adapter initialization for systems that have a very large number
of targets, or slow to spin-up targets, or a complicated set of array
configurations that extend the time for the firmware to declare that it
is operational. This timeout would only have an affect on non-intel
based systems, as the (more patient) BIOS would generally be where the
startup delay would be dealt with.
Signed-off-by: Mark Haverkamp <markh@osdl.org>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/aacraid/rkt.c')
-rw-r--r-- | drivers/scsi/aacraid/rkt.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/aacraid/rkt.c b/drivers/scsi/aacraid/rkt.c index 7a23e027eb78..5b52966bbbf3 100644 --- a/drivers/scsi/aacraid/rkt.c +++ b/drivers/scsi/aacraid/rkt.c | |||
@@ -444,14 +444,14 @@ int aac_rkt_init(struct aac_dev *dev) | |||
444 | */ | 444 | */ |
445 | while (!(rkt_readl(dev, MUnit.OMRx[0]) & KERNEL_UP_AND_RUNNING)) | 445 | while (!(rkt_readl(dev, MUnit.OMRx[0]) & KERNEL_UP_AND_RUNNING)) |
446 | { | 446 | { |
447 | if(time_after(jiffies, start+180*HZ)) | 447 | if(time_after(jiffies, start+startup_timeout*HZ)) |
448 | { | 448 | { |
449 | status = rkt_readl(dev, MUnit.OMRx[0]); | 449 | status = rkt_readl(dev, MUnit.OMRx[0]); |
450 | printk(KERN_ERR "%s%d: adapter kernel failed to start, init status = %lx.\n", | 450 | printk(KERN_ERR "%s%d: adapter kernel failed to start, init status = %lx.\n", |
451 | dev->name, instance, status); | 451 | dev->name, instance, status); |
452 | goto error_iounmap; | 452 | goto error_iounmap; |
453 | } | 453 | } |
454 | schedule_timeout_uninterruptible(1); | 454 | msleep(1); |
455 | } | 455 | } |
456 | if (request_irq(dev->scsi_host_ptr->irq, aac_rkt_intr, SA_SHIRQ|SA_INTERRUPT, "aacraid", (void *)dev)<0) | 456 | if (request_irq(dev->scsi_host_ptr->irq, aac_rkt_intr, SA_SHIRQ|SA_INTERRUPT, "aacraid", (void *)dev)<0) |
457 | { | 457 | { |