Commit cb39ca92 authored by Nitesh Narayan Lal's avatar Nitesh Narayan Lal Committed by Thomas Gleixner
Browse files

enic: Use irq_update_affinity_hint()



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: default avatarNitesh Narayan Lal <nitesh@redhat.com>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Reviewed-by: default avatarChristian Benvenuti <benve@cisco.com>
Link: https://lore.kernel.org/r/20210903152430.244937-8-nitesh@redhat.com
parent fb5bd854
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -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,
		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,