mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-29 17:35:36 -04:00
cxgb4/l2t: Simplify 't4_l2e_free()' and '_t4_l2e_free()'
Use '__skb_queue_purge()' instead of re-implementing it. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
d86784fe9b
commit
d74361dc58
@@ -351,15 +351,13 @@ static struct l2t_entry *find_or_alloc_l2e(struct l2t_data *d, u16 vlan,
|
||||
static void _t4_l2e_free(struct l2t_entry *e)
|
||||
{
|
||||
struct l2t_data *d;
|
||||
struct sk_buff *skb;
|
||||
|
||||
if (atomic_read(&e->refcnt) == 0) { /* hasn't been recycled */
|
||||
if (e->neigh) {
|
||||
neigh_release(e->neigh);
|
||||
e->neigh = NULL;
|
||||
}
|
||||
while ((skb = __skb_dequeue(&e->arpq)) != NULL)
|
||||
kfree_skb(skb);
|
||||
__skb_queue_purge(&e->arpq);
|
||||
}
|
||||
|
||||
d = container_of(e, struct l2t_data, l2tab[e->idx]);
|
||||
@@ -370,7 +368,6 @@ static void _t4_l2e_free(struct l2t_entry *e)
|
||||
static void t4_l2e_free(struct l2t_entry *e)
|
||||
{
|
||||
struct l2t_data *d;
|
||||
struct sk_buff *skb;
|
||||
|
||||
spin_lock_bh(&e->lock);
|
||||
if (atomic_read(&e->refcnt) == 0) { /* hasn't been recycled */
|
||||
@@ -378,8 +375,7 @@ static void t4_l2e_free(struct l2t_entry *e)
|
||||
neigh_release(e->neigh);
|
||||
e->neigh = NULL;
|
||||
}
|
||||
while ((skb = __skb_dequeue(&e->arpq)) != NULL)
|
||||
kfree_skb(skb);
|
||||
__skb_queue_purge(&e->arpq);
|
||||
}
|
||||
spin_unlock_bh(&e->lock);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user