| From d68b850e1bfb9afb24b888a946165a186a710195 Mon Sep 17 00:00:00 2001 |
| From: Quinn Tran <quinn.tran@cavium.com> |
| Date: Mon, 4 Dec 2017 14:44:59 -0800 |
| Subject: scsi: qla2xxx: Skip IRQ affinity for Target QPairs |
| |
| From: Quinn Tran <quinn.tran@cavium.com> |
| |
| commit d68b850e1bfb9afb24b888a946165a186a710195 upstream. |
| |
| Fix co-existence between Block MQ and Target Mode. Block MQ and |
| initiator mode requires midlayer queue mapping to check for IRQ to be |
| affinitized. For target mode, it's not the case. |
| |
| Fixes: 09620eeb62c41 ("scsi: qla2xxx: Add debug knob for user control workload") |
| Cc: <stable@vger.kernel.org> # 4.12+ |
| Signed-off-by: Quinn Tran <quinn.tran@cavium.com> |
| Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com> |
| Reviewed-by: Hannes Reinecke <hare@suse.com> |
| Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/scsi/qla2xxx/qla_os.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/scsi/qla2xxx/qla_os.c |
| +++ b/drivers/scsi/qla2xxx/qla_os.c |
| @@ -6592,9 +6592,14 @@ qla83xx_disable_laser(scsi_qla_host_t *v |
| |
| static int qla2xxx_map_queues(struct Scsi_Host *shost) |
| { |
| + int rc; |
| scsi_qla_host_t *vha = (scsi_qla_host_t *)shost->hostdata; |
| |
| - return blk_mq_pci_map_queues(&shost->tag_set, vha->hw->pdev); |
| + if (USER_CTRL_IRQ(vha->hw)) |
| + rc = blk_mq_map_queues(&shost->tag_set); |
| + else |
| + rc = blk_mq_pci_map_queues(&shost->tag_set, vha->hw->pdev); |
| + return rc; |
| } |
| |
| static const struct pci_error_handlers qla2xxx_err_handler = { |