scsi: megaraid_sas: Clear affinity hint
authorTomas Henzl <thenzl@redhat.com>
Thu, 9 Jul 2020 13:31:44 +0000 (15:31 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 25 Jul 2020 02:09:54 +0000 (22:09 -0400)
To avoid a warning in free_irq, clear the affinity hint.

Link: https://lore.kernel.org/r/20200709133144.8363-1-thenzl@redhat.com
Fixes: f0b9e7bdc309 ("scsi: megaraid_sas: Set affinity for high IOPS reply queues")
Acked-by: Sumit Saxena <sumit.saxena@broadcom.com>
Signed-off-by: Tomas Henzl <thenzl@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/megaraid/megaraid_sas_base.c

index 8038467..861f714 100644 (file)
@@ -5610,9 +5610,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;
@@ -5650,6 +5654,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]);
                }