Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8b6da5fb authored by Eric W. Biederman's avatar Eric W. Biederman
Browse files

staging/octeon-ethernet: Call dev_kfree/consume_skb_any instead of dev_kfree_skb.



Replace dev_kfree_skb with dev_kfree_skb_any in cvm_oct_xmit_pow which
can be called in hard irq and other contexts, on the code paths that
drop packets.

Replace dev_kfree_skb with dev_consume_skb_any in cvm_oct_xmit_pow which
can be called in hard irq and other contexts, on the code path where
the packet is transmitted successfully.

Signed-off-by: default avatar"Eric W. Biederman" <ebiederm@xmission.com>
parent 8d4ade28
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -554,7 +554,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
		printk_ratelimited("%s: Failed to allocate a work queue entry\n",
				   dev->name);
		priv->stats.tx_dropped++;
		dev_kfree_skb(skb);
		dev_kfree_skb_any(skb);
		return 0;
	}

@@ -565,7 +565,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
				   dev->name);
		cvmx_fpa_free(work, CVMX_FPA_WQE_POOL, DONT_WRITEBACK(1));
		priv->stats.tx_dropped++;
		dev_kfree_skb(skb);
		dev_kfree_skb_any(skb);
		return 0;
	}

@@ -682,7 +682,7 @@ int cvm_oct_xmit_pow(struct sk_buff *skb, struct net_device *dev)
			     work->grp);
	priv->stats.tx_packets++;
	priv->stats.tx_bytes += skb->len;
	dev_kfree_skb(skb);
	dev_consume_skb_any(skb);
	return 0;
}