Commit d74361dc authored by Christophe JAILLET's avatar Christophe JAILLET Committed by David S. Miller
Browse files

cxgb4/l2t: Simplify 't4_l2e_free()' and '_t4_l2e_free()'



Use '__skb_queue_purge()' instead of re-implementing it.

Signed-off-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d86784fe
Loading
Loading
Loading
Loading
+2 −6
Original line number Original line Diff line number Diff line
@@ -351,15 +351,13 @@ exists:
static void _t4_l2e_free(struct l2t_entry *e)
static void _t4_l2e_free(struct l2t_entry *e)
{
{
	struct l2t_data *d;
	struct l2t_data *d;
	struct sk_buff *skb;


	if (atomic_read(&e->refcnt) == 0) {  /* hasn't been recycled */
	if (atomic_read(&e->refcnt) == 0) {  /* hasn't been recycled */
		if (e->neigh) {
		if (e->neigh) {
			neigh_release(e->neigh);
			neigh_release(e->neigh);
			e->neigh = NULL;
			e->neigh = NULL;
		}
		}
		while ((skb = __skb_dequeue(&e->arpq)) != NULL)
		__skb_queue_purge(&e->arpq);
			kfree_skb(skb);
	}
	}


	d = container_of(e, struct l2t_data, l2tab[e->idx]);
	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)
static void t4_l2e_free(struct l2t_entry *e)
{
{
	struct l2t_data *d;
	struct l2t_data *d;
	struct sk_buff *skb;


	spin_lock_bh(&e->lock);
	spin_lock_bh(&e->lock);
	if (atomic_read(&e->refcnt) == 0) {  /* hasn't been recycled */
	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);
			neigh_release(e->neigh);
			e->neigh = NULL;
			e->neigh = NULL;
		}
		}
		while ((skb = __skb_dequeue(&e->arpq)) != NULL)
		__skb_queue_purge(&e->arpq);
			kfree_skb(skb);
	}
	}
	spin_unlock_bh(&e->lock);
	spin_unlock_bh(&e->lock);