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 Flow Director is enabled, set interrupt affinity */
|
||||||
if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {
|
if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE) {
|
||||||
/* assign the mask for this irq */
|
/* assign the mask for this irq */
|
||||||
irq_set_affinity_hint(entry->vector,
|
irq_update_affinity_hint(entry->vector,
|
||||||
&q_vector->affinity_mask);
|
&q_vector->affinity_mask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3264,8 +3264,8 @@ static int ixgbe_request_msix_irqs(struct ixgbe_adapter *adapter)
|
|||||||
free_queue_irqs:
|
free_queue_irqs:
|
||||||
while (vector) {
|
while (vector) {
|
||||||
vector--;
|
vector--;
|
||||||
irq_set_affinity_hint(adapter->msix_entries[vector].vector,
|
irq_update_affinity_hint(adapter->msix_entries[vector].vector,
|
||||||
NULL);
|
NULL);
|
||||||
free_irq(adapter->msix_entries[vector].vector,
|
free_irq(adapter->msix_entries[vector].vector,
|
||||||
adapter->q_vector[vector]);
|
adapter->q_vector[vector]);
|
||||||
}
|
}
|
||||||
@ -3398,7 +3398,7 @@ static void ixgbe_free_irq(struct ixgbe_adapter *adapter)
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
/* clear the affinity_mask in the IRQ descriptor */
|
/* 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);
|
free_irq(entry->vector, q_vector);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user