From: Ben Hutchings Date: Mon, 2 Jul 2012 22:03:02 +0000 (+0100) Subject: sfc: Use dev_kfree_skb() in efx_end_loopback() X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=e3ed2bdfc4a5dcdcdf74141e88af9990dc141a4b;p=deliverable%2Flinux.git sfc: Use dev_kfree_skb() in efx_end_loopback() Fix CID 102619 in the Coverity report on Linux. efx_end_loopback() iterates over an array of skb pointers of which some may be null (if efx_begin_loopback() failed). It should not use dev_kfree_skb_irq(), which requires non-null pointers. In practice this is safe because it does not run in interrupt context and therefore always ends up calling dev_kfree_skb(), which does allow null pointers. But we should make that explicit. Signed-off-by: Ben Hutchings --- diff --git a/drivers/net/ethernet/sfc/selftest.c b/drivers/net/ethernet/sfc/selftest.c index de4c0069f5b2..ccc428fc267b 100644 --- a/drivers/net/ethernet/sfc/selftest.c +++ b/drivers/net/ethernet/sfc/selftest.c @@ -488,7 +488,7 @@ static int efx_end_loopback(struct efx_tx_queue *tx_queue, skb = state->skbs[i]; if (skb && !skb_shared(skb)) ++tx_done; - dev_kfree_skb_any(skb); + dev_kfree_skb(skb); } netif_tx_unlock_bh(efx->net_dev);