Use dev_consume_skb_any() in place of dev_kfree_skb_any()
when control frame has been successfully processed in flower
and on the driver's main TX completion path.

Signed-off-by: Jakub Kicinski <jakub.kicin...@netronome.com>
Reviewed-by: Simon Horman <simon.hor...@netronome.com>
---
 drivers/net/ethernet/netronome/nfp/flower/cmsg.c    | 3 +++
 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/netronome/nfp/flower/cmsg.c 
b/drivers/net/ethernet/netronome/nfp/flower/cmsg.c
index d82d9888d676..e014d862b9b6 100644
--- a/drivers/net/ethernet/netronome/nfp/flower/cmsg.c
+++ b/drivers/net/ethernet/netronome/nfp/flower/cmsg.c
@@ -189,8 +189,11 @@ nfp_flower_cmsg_process_one_rx(struct nfp_app *app, struct 
sk_buff *skb)
        default:
                nfp_flower_cmsg_warn(app, "Cannot handle invalid repr control 
type %u\n",
                                     type);
+               goto out;
        }
 
+       dev_consume_skb_any(skb);
+       return;
 out:
        dev_kfree_skb_any(skb);
 }
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c 
b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 2920889fa6d6..1c0187f0af51 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -991,7 +991,7 @@ static void nfp_net_tx_complete(struct nfp_net_tx_ring 
*tx_ring)
 
                /* check for last gather fragment */
                if (fidx == nr_frags - 1)
-                       dev_kfree_skb_any(skb);
+                       dev_consume_skb_any(skb);
 
                tx_ring->txbufs[idx].dma_addr = 0;
                tx_ring->txbufs[idx].skb = NULL;
-- 
2.14.1

Reply via email to