RDMA/irdma: Use irq_update_affinity_hint()
authorNitesh Narayan Lal <nitesh@redhat.com>
Fri, 3 Sep 2021 15:24:22 +0000 (11:24 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 10 Dec 2021 19:47:38 +0000 (20:47 +0100)
The driver uses irq_set_affinity_hint() to update the affinity_hint mask
that is consumed by the userspace to distribute the interrupts. However,
under the hood irq_set_affinity_hint() also applies the provided cpumask
(if not NULL) as the affinity for the given interrupt which is an
undocumented side effect.

To remove this side effect irq_set_affinity_hint() has been marked
as deprecated and new interfaces have been introduced. Hence, replace the
irq_set_affinity_hint() with the new interface irq_update_affinity_hint()
that only updates the affinity_hint pointer.

Signed-off-by: Nitesh Narayan Lal <nitesh@redhat.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Tatyana Nikolova <tatyana.e.nikolova@intel.com>
Link: https://lore.kernel.org/r/20210903152430.244937-7-nitesh@redhat.com
drivers/infiniband/hw/irdma/hw.c

index 4108dca..367f121 100644 (file)
@@ -545,7 +545,7 @@ static void irdma_destroy_irq(struct irdma_pci_f *rf,
        struct irdma_sc_dev *dev = &rf->sc_dev;
 
        dev->irq_ops->irdma_dis_irq(dev, msix_vec->idx);
-       irq_set_affinity_hint(msix_vec->irq, NULL);
+       irq_update_affinity_hint(msix_vec->irq, NULL);
        free_irq(msix_vec->irq, dev_id);
 }
 
@@ -1095,7 +1095,7 @@ irdma_cfg_ceq_vector(struct irdma_pci_f *rf, struct irdma_ceq *iwceq,
        }
        cpumask_clear(&msix_vec->mask);
        cpumask_set_cpu(msix_vec->cpu_affinity, &msix_vec->mask);
-       irq_set_affinity_hint(msix_vec->irq, &msix_vec->mask);
+       irq_update_affinity_hint(msix_vec->irq, &msix_vec->mask);
        if (status) {
                ibdev_dbg(&rf->iwdev->ibdev, "ERR: ceq irq config fail\n");
                return IRDMA_ERR_CFG;