enic: Use irq_update_affinity_hint()
authorNitesh Narayan Lal <nitesh@redhat.com>
Fri, 3 Sep 2021 15:24:23 +0000 (11:24 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Fri, 10 Dec 2021 19:47:39 +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>
Reviewed-by: Christian Benvenuti <benve@cisco.com>
Link: https://lore.kernel.org/r/20210903152430.244937-8-nitesh@redhat.com
drivers/net/ethernet/cisco/enic/enic_main.c

index aacf141..2faba07 100644 (file)
@@ -150,10 +150,10 @@ static void enic_set_affinity_hint(struct enic *enic)
                    !cpumask_available(enic->msix[i].affinity_mask) ||
                    cpumask_empty(enic->msix[i].affinity_mask))
                        continue;
-               err = irq_set_affinity_hint(enic->msix_entry[i].vector,
-                                           enic->msix[i].affinity_mask);
+               err = irq_update_affinity_hint(enic->msix_entry[i].vector,
+                                              enic->msix[i].affinity_mask);
                if (err)
-                       netdev_warn(enic->netdev, "irq_set_affinity_hint failed, err %d\n",
+                       netdev_warn(enic->netdev, "irq_update_affinity_hint failed, err %d\n",
                                    err);
        }
 
@@ -173,7 +173,7 @@ static void enic_unset_affinity_hint(struct enic *enic)
        int i;
 
        for (i = 0; i < enic->intr_count; i++)
-               irq_set_affinity_hint(enic->msix_entry[i].vector, NULL);
+               irq_update_affinity_hint(enic->msix_entry[i].vector, NULL);
 }
 
 static int enic_udp_tunnel_set_port(struct net_device *netdev,