From: Tomas Henzl <the...@redhat.com>

[ Upstream commit 1eb81df5c53b1e785fdef298d533feab991381e4 ]

To avoid a warning in free_irq, clear the affinity hint.

Link: https://lore.kernel.org/r/20200709133144.8363-1-the...@redhat.com
Fixes: f0b9e7bdc309 ("scsi: megaraid_sas: Set affinity for high IOPS reply 
queues")
Acked-by: Sumit Saxena <sumit.sax...@broadcom.com>
Signed-off-by: Tomas Henzl <the...@redhat.com>
Signed-off-by: Martin K. Petersen <martin.peter...@oracle.com>
Signed-off-by: Sasha Levin <sas...@kernel.org>
---
 drivers/scsi/megaraid/megaraid_sas_base.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/drivers/scsi/megaraid/megaraid_sas_base.c 
b/drivers/scsi/megaraid/megaraid_sas_base.c
index 00668335c2afc..924ea9f4cdd09 100644
--- a/drivers/scsi/megaraid/megaraid_sas_base.c
+++ b/drivers/scsi/megaraid/megaraid_sas_base.c
@@ -5602,9 +5602,13 @@ megasas_setup_irqs_msix(struct megasas_instance 
*instance, u8 is_probe)
                        &instance->irq_context[i])) {
                        dev_err(&instance->pdev->dev,
                                "Failed to register IRQ for vector %d.\n", i);
-                       for (j = 0; j < i; j++)
+                       for (j = 0; j < i; j++) {
+                               if (j < instance->low_latency_index_start)
+                                       irq_set_affinity_hint(
+                                               pci_irq_vector(pdev, j), NULL);
                                free_irq(pci_irq_vector(pdev, j),
                                         &instance->irq_context[j]);
+                       }
                        /* Retry irq register for IO_APIC*/
                        instance->msix_vectors = 0;
                        instance->msix_load_balance = false;
@@ -5642,6 +5646,9 @@ megasas_destroy_irqs(struct megasas_instance *instance) {
 
        if (instance->msix_vectors)
                for (i = 0; i < instance->msix_vectors; i++) {
+                       if (i < instance->low_latency_index_start)
+                               irq_set_affinity_hint(
+                                   pci_irq_vector(instance->pdev, i), NULL);
                        free_irq(pci_irq_vector(instance->pdev, i),
                                 &instance->irq_context[i]);
                }
-- 
2.25.1



Reply via email to