diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-01 22:19:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-01 22:19:15 -0400 |
commit | 7a48837732f87a574ee3e1855927dc250117f565 (patch) | |
tree | f2e975a347d6d489e9f1932f9864fc978910def0 /drivers/scsi/ipr.c | |
parent | 1a0b6abaea78f73d9bc0a2f6df2d9e4c917cade1 (diff) | |
parent | 27fbf4e87c16bb3e40730890169a643a494b7c64 (diff) |
Merge branch 'for-3.15/core' of git://git.kernel.dk/linux-block
Pull core block layer updates from Jens Axboe:
"This is the pull request for the core block IO bits for the 3.15
kernel. It's a smaller round this time, it contains:
- Various little blk-mq fixes and additions from Christoph and
myself.
- Cleanup of the IPI usage from the block layer, and associated
helper code. From Frederic Weisbecker and Jan Kara.
- Duplicate code cleanup in bio-integrity from Gu Zheng. This will
give you a merge conflict, but that should be easy to resolve.
- blk-mq notify spinlock fix for RT from Mike Galbraith.
- A blktrace partial accounting bug fix from Roman Pen.
- Missing REQ_SYNC detection fix for blk-mq from Shaohua Li"
* 'for-3.15/core' of git://git.kernel.dk/linux-block: (25 commits)
blk-mq: add REQ_SYNC early
rt,blk,mq: Make blk_mq_cpu_notify_lock a raw spinlock
blk-mq: support partial I/O completions
blk-mq: merge blk_mq_insert_request and blk_mq_run_request
blk-mq: remove blk_mq_alloc_rq
blk-mq: don't dump CPU -> hw queue map on driver load
blk-mq: fix wrong usage of hctx->state vs hctx->flags
blk-mq: allow blk_mq_init_commands() to return failure
block: remove old blk_iopoll_enabled variable
blktrace: fix accounting of partially completed requests
smp: Rename __smp_call_function_single() to smp_call_function_single_async()
smp: Remove wait argument from __smp_call_function_single()
watchdog: Simplify a little the IPI call
smp: Move __smp_call_function_single() below its safe version
smp: Consolidate the various smp_call_function_single() declensions
smp: Teach __smp_call_function_single() to check for offline cpus
smp: Remove unused list_head from csd
smp: Iterate functions through llist_for_each_entry_safe()
block: Stop abusing rq->csd.list in blk-softirq
block: Remove useless IPI struct initialization
...
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r-- | drivers/scsi/ipr.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 2f8dd8e4225b..924b0ba74dfe 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -3670,16 +3670,14 @@ static ssize_t ipr_store_iopoll_weight(struct device *dev, | |||
3670 | return strlen(buf); | 3670 | return strlen(buf); |
3671 | } | 3671 | } |
3672 | 3672 | ||
3673 | if (blk_iopoll_enabled && ioa_cfg->iopoll_weight && | 3673 | if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { |
3674 | ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { | ||
3675 | for (i = 1; i < ioa_cfg->hrrq_num; i++) | 3674 | for (i = 1; i < ioa_cfg->hrrq_num; i++) |
3676 | blk_iopoll_disable(&ioa_cfg->hrrq[i].iopoll); | 3675 | blk_iopoll_disable(&ioa_cfg->hrrq[i].iopoll); |
3677 | } | 3676 | } |
3678 | 3677 | ||
3679 | spin_lock_irqsave(shost->host_lock, lock_flags); | 3678 | spin_lock_irqsave(shost->host_lock, lock_flags); |
3680 | ioa_cfg->iopoll_weight = user_iopoll_weight; | 3679 | ioa_cfg->iopoll_weight = user_iopoll_weight; |
3681 | if (blk_iopoll_enabled && ioa_cfg->iopoll_weight && | 3680 | if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { |
3682 | ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { | ||
3683 | for (i = 1; i < ioa_cfg->hrrq_num; i++) { | 3681 | for (i = 1; i < ioa_cfg->hrrq_num; i++) { |
3684 | blk_iopoll_init(&ioa_cfg->hrrq[i].iopoll, | 3682 | blk_iopoll_init(&ioa_cfg->hrrq[i].iopoll, |
3685 | ioa_cfg->iopoll_weight, ipr_iopoll); | 3683 | ioa_cfg->iopoll_weight, ipr_iopoll); |
@@ -5525,8 +5523,7 @@ static irqreturn_t ipr_isr_mhrrq(int irq, void *devp) | |||
5525 | return IRQ_NONE; | 5523 | return IRQ_NONE; |
5526 | } | 5524 | } |
5527 | 5525 | ||
5528 | if (blk_iopoll_enabled && ioa_cfg->iopoll_weight && | 5526 | if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { |
5529 | ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { | ||
5530 | if ((be32_to_cpu(*hrrq->hrrq_curr) & IPR_HRRQ_TOGGLE_BIT) == | 5527 | if ((be32_to_cpu(*hrrq->hrrq_curr) & IPR_HRRQ_TOGGLE_BIT) == |
5531 | hrrq->toggle_bit) { | 5528 | hrrq->toggle_bit) { |
5532 | if (!blk_iopoll_sched_prep(&hrrq->iopoll)) | 5529 | if (!blk_iopoll_sched_prep(&hrrq->iopoll)) |
@@ -9975,8 +9972,7 @@ static int ipr_probe(struct pci_dev *pdev, const struct pci_device_id *dev_id) | |||
9975 | ioa_cfg->host->max_channel = IPR_VSET_BUS; | 9972 | ioa_cfg->host->max_channel = IPR_VSET_BUS; |
9976 | ioa_cfg->iopoll_weight = ioa_cfg->chip_cfg->iopoll_weight; | 9973 | ioa_cfg->iopoll_weight = ioa_cfg->chip_cfg->iopoll_weight; |
9977 | 9974 | ||
9978 | if (blk_iopoll_enabled && ioa_cfg->iopoll_weight && | 9975 | if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { |
9979 | ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { | ||
9980 | for (i = 1; i < ioa_cfg->hrrq_num; i++) { | 9976 | for (i = 1; i < ioa_cfg->hrrq_num; i++) { |
9981 | blk_iopoll_init(&ioa_cfg->hrrq[i].iopoll, | 9977 | blk_iopoll_init(&ioa_cfg->hrrq[i].iopoll, |
9982 | ioa_cfg->iopoll_weight, ipr_iopoll); | 9978 | ioa_cfg->iopoll_weight, ipr_iopoll); |
@@ -10005,8 +10001,7 @@ static void ipr_shutdown(struct pci_dev *pdev) | |||
10005 | int i; | 10001 | int i; |
10006 | 10002 | ||
10007 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); | 10003 | spin_lock_irqsave(ioa_cfg->host->host_lock, lock_flags); |
10008 | if (blk_iopoll_enabled && ioa_cfg->iopoll_weight && | 10004 | if (ioa_cfg->iopoll_weight && ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { |
10009 | ioa_cfg->sis64 && ioa_cfg->nvectors > 1) { | ||
10010 | ioa_cfg->iopoll_weight = 0; | 10005 | ioa_cfg->iopoll_weight = 0; |
10011 | for (i = 1; i < ioa_cfg->hrrq_num; i++) | 10006 | for (i = 1; i < ioa_cfg->hrrq_num; i++) |
10012 | blk_iopoll_disable(&ioa_cfg->hrrq[i].iopoll); | 10007 | blk_iopoll_disable(&ioa_cfg->hrrq[i].iopoll); |