diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-10 21:31:26 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-09-10 21:31:26 -0400 |
commit | 1a95620f45155ac523cd1419d89150fbb4eb858b (patch) | |
tree | 07777b8a9e6389f51f64c4161c9d49ad664cebb8 /drivers/scsi/mpt2sas/mpt2sas_base.c | |
parent | ffc296491848118506816888e830d0aa8350bc7e (diff) | |
parent | 14216561e164671ce147458653b1fea06a4ada1e (diff) |
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley:
"I had actually prepared this fix set before I left for KS + Plumbers,
so it's been incubating much longer than it should have. I'll be
picking up my three week backlog this week, so more fixes will then be
forthcoming
This set consist of three minor and one fairly major (the device not
ready causing offlining problem which is a serious regression
introduced by the media change update) fixes.
Signed-off-by: James Bottomley <JBottomley@Parallels.com>"
* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
[SCSI] Fix 'Device not ready' issue on mpt2sas
[SCSI] scsi_lib: fix scsi_io_completion's SG_IO error propagation
[SCSI] megaraid_sas: Move poll_aen_lock initializer
[SCSI] mpt2sas: Fix for Driver oops, when loading driver with max_queue_depth command line option to a very small value
Diffstat (limited to 'drivers/scsi/mpt2sas/mpt2sas_base.c')
-rw-r--r-- | drivers/scsi/mpt2sas/mpt2sas_base.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c index 9d46fcbe7755..b25757d1e91b 100644 --- a/drivers/scsi/mpt2sas/mpt2sas_base.c +++ b/drivers/scsi/mpt2sas/mpt2sas_base.c | |||
@@ -2424,10 +2424,13 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) | |||
2424 | } | 2424 | } |
2425 | 2425 | ||
2426 | /* command line tunables for max controller queue depth */ | 2426 | /* command line tunables for max controller queue depth */ |
2427 | if (max_queue_depth != -1) | 2427 | if (max_queue_depth != -1 && max_queue_depth != 0) { |
2428 | max_request_credit = (max_queue_depth < facts->RequestCredit) | 2428 | max_request_credit = min_t(u16, max_queue_depth + |
2429 | ? max_queue_depth : facts->RequestCredit; | 2429 | ioc->hi_priority_depth + ioc->internal_depth, |
2430 | else | 2430 | facts->RequestCredit); |
2431 | if (max_request_credit > MAX_HBA_QUEUE_DEPTH) | ||
2432 | max_request_credit = MAX_HBA_QUEUE_DEPTH; | ||
2433 | } else | ||
2431 | max_request_credit = min_t(u16, facts->RequestCredit, | 2434 | max_request_credit = min_t(u16, facts->RequestCredit, |
2432 | MAX_HBA_QUEUE_DEPTH); | 2435 | MAX_HBA_QUEUE_DEPTH); |
2433 | 2436 | ||
@@ -2502,7 +2505,7 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc, int sleep_flag) | |||
2502 | /* set the scsi host can_queue depth | 2505 | /* set the scsi host can_queue depth |
2503 | * with some internal commands that could be outstanding | 2506 | * with some internal commands that could be outstanding |
2504 | */ | 2507 | */ |
2505 | ioc->shost->can_queue = ioc->scsiio_depth - (2); | 2508 | ioc->shost->can_queue = ioc->scsiio_depth; |
2506 | dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "scsi host: " | 2509 | dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "scsi host: " |
2507 | "can_queue depth (%d)\n", ioc->name, ioc->shost->can_queue)); | 2510 | "can_queue depth (%d)\n", ioc->name, ioc->shost->can_queue)); |
2508 | 2511 | ||