mirror of
https://github.com/torvalds/linux.git
synced 2025-12-07 20:06:24 +00:00
net: do not provide hard irq safety for sd->defer_lock
kfree_skb() can be called from hard irq handlers, but skb_attempt_defer_free() is meant to be used from process or BH contexts, and skb_defer_free_flush() is meant to be called from BH contexts. Not having to mask hard irq can save some cycles. Signed-off-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e8e1ce8454
commit
931e93bdf8
@@ -6632,11 +6632,11 @@ static void skb_defer_free_flush(struct softnet_data *sd)
|
||||
if (!READ_ONCE(sd->defer_list))
|
||||
return;
|
||||
|
||||
spin_lock_irq(&sd->defer_lock);
|
||||
spin_lock(&sd->defer_lock);
|
||||
skb = sd->defer_list;
|
||||
sd->defer_list = NULL;
|
||||
sd->defer_count = 0;
|
||||
spin_unlock_irq(&sd->defer_lock);
|
||||
spin_unlock(&sd->defer_lock);
|
||||
|
||||
while (skb != NULL) {
|
||||
next = skb->next;
|
||||
|
||||
Reference in New Issue
Block a user