ixgbe: 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: Nitesh Narayan Lal <nitesh@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Link: https://lore.kernel.org/r/20210903152430.244937-10-nitesh@redhat.com
This commit is contained in:
parent
b8b9dd5252
commit
cc493264c0
@ -3247,8 +3247,8 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)
|
||||
/* If Flow Director is enabled, set interrupt affinity */
|
||||
if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {
|
||||
/* assign the mask for this irq */
|
||||
irq_set_affinity_hint(entry->vector,
|
||||
&q_vector->affinity_mask);
|
||||
irq_update_affinity_hint(entry->vector,
|
||||
&q_vector->affinity_mask);
|
||||
}
|
||||
}
|
||||
|
||||
@ -3264,8 +3264,8 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)
|
||||
free_queue_irqs:
|
||||
while (vector) {
|
||||
vector--;
|
||||
irq_set_affinity_hint(adapter->msix_entries[vector].vector,
|
||||
NULL);
|
||||
irq_update_affinity_hint(adapter->msix_entries[vector].vector,
|
||||
NULL);
|
||||
free_irq(adapter->msix_entries[vector].vector,
|
||||
adapter->q_vector[vector]);
|
||||
}
|
||||
@ -3398,7 +3398,7 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter)
|
||||
continue;
|
||||
|
||||
/* clear the affinity_mask in the IRQ descriptor */
|
||||
irq_set_affinity_hint(entry->vector, NULL);
|
||||
irq_update_affinity_hint(entry->vector, NULL);
|
||||
|
||||
free_irq(entry->vector, q_vector);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user