diff options
author | Stephen M. Cameron <scameron@beardog.cce.hp.com> | 2010-10-22 14:21:17 -0500 |
---|---|---|
committer | Jens Axboe <jaxboe@fusionio.com> | 2010-10-23 18:45:08 +0200 |
commit | 186fb9cf6a1154bc9b071adfd72fcf256285eb26 (patch) | |
tree | 8d32facb996b7140aeb2abed2a52187a321f3f51 /drivers/block/cciss.c | |
parent | f442e64b93e16dba6bf9ab7e8dc5a90f6bcd8a85 (diff) | |
download | linux-186fb9cf6a1154bc9b071adfd72fcf256285eb26.tar.gz linux-186fb9cf6a1154bc9b071adfd72fcf256285eb26.tar.bz2 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.c | 5 |
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. " |