summaryrefslogtreecommitdiffstats
path: root/drivers/block/cciss.c
diff options
context:
space:
mode:
authorStephen M. Cameron <scameron@beardog.cce.hp.com>2010-10-22 21:21:17 +0200
committerJens Axboe <jaxboe@fusionio.com>2010-10-23 18:45:08 +0200
commit186fb9cf6a1154bc9b071adfd72fcf256285eb26 (patch)
tree8d32facb996b7140aeb2abed2a52187a321f3f51 /drivers/block/cciss.c
parentcciss: Use kernel provided PCI state save and restore functions (diff)
downloadlinux-186fb9cf6a1154bc9b071adfd72fcf256285eb26.tar.xz
linux-186fb9cf6a1154bc9b071adfd72fcf256285eb26.zip
cciss: limit commands allocated on reset_devices
This is to conserve memory in a memory-limited kdump scenario Signed-off-by: Stephen M. Cameron <scameron@beardog.cce.hp.com> Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
Diffstat (limited to 'drivers/block/cciss.c')
-rw-r--r--drivers/block/cciss.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index 2e547bddc5a7..9e761b994b4c 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -4079,6 +4079,11 @@ static int __devinit cciss_find_cfgtables(ctlr_info_t *h)
static void __devinit cciss_get_max_perf_mode_cmds(struct ctlr_info *h)
{
h->max_commands = readl(&(h->cfgtable->MaxPerformantModeCommands));
+
+ /* Limit commands in memory limited kdump scenario. */
+ if (reset_devices && h->max_commands > 32)
+ h->max_commands = 32;
+
if (h->max_commands < 16) {
dev_warn(&h->pdev->dev, "Controller reports "
"max supported commands of %d, an obvious lie. "