]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
scsi: megaraid_sas: Clear affinity hint
authorTomas Henzl <thenzl@redhat.com>
Thu, 9 Jul 2020 13:31:44 +0000 (15:31 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 19 Aug 2020 06:24:00 +0000 (08:24 +0200)
[ Upstream commit 1eb81df5c53b1e785fdef298d533feab991381e4 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/scsi/megaraid/megaraid_sas_base.c

index babe85d7b537a05da1042e0f8417a81a3bc8c2f5..5a95c56ff7c26e2c9e6fa313c42716c8dc69c30b 100644 (file)
@@ -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]);
                }