From 7b06ff3f690edcd66025550a640b2a2ec722058e Mon Sep 17 00:00:00 2001
From: Daniel J Blueman <daniel@numascale.com>
Date: Fri, 1 Jul 2016 14:05:14 +0800
Subject: [PATCH] Ensure MegaRAID controllers pin interrupt locally

Signed-off-by: Daniel J Blueman <daniel@numascale.com>
---
 drivers/scsi/megaraid/megaraid_sas_base.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c b/drivers/scsi/megaraid/megaraid_sas_base.c
index 00ce3e2..d5d9f86 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -4531,7 +4531,6 @@ megasas_setup_irqs_msix(struct megasas_instance *instance, u8 is_probe)
 	pdev = instance->pdev;
 
 	/* Try MSI-x */
-	cpu = cpumask_first(cpu_online_mask);
 	for (i = 0; i < instance->msix_vectors; i++) {
 		instance->irq_context[i].instance = instance;
 		instance->irq_context[i].MSIxIndex = i;
@@ -4555,6 +4554,7 @@ megasas_setup_irqs_msix(struct megasas_instance *instance, u8 is_probe)
 				return -1;
 		}
 		if (smp_affinity_enable) {
+			cpu = cpu_near_dev(instance->pdev, i);
 			if (irq_set_affinity_hint(instance->msixentry[i].vector,
 				get_cpu_mask(cpu)))
 				dev_err(&instance->pdev->dev,
-- 
2.7.4

