net: ena: xdp: XDP_TX: fix memory leak
authorSameeh Jubran <sameehj@amazon.com>
Wed, 3 Jun 2020 08:50:22 +0000 (08:50 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 4 Jun 2020 22:43:01 +0000 (15:43 -0700)
When sending very high packet rate, the XDP tx queues can get full and
start dropping packets. In this case we don't free the pages which
results in ena driver draining the system memory.

Fix:
Simply free the pages when necessary.

Fixes: 548c4940b9f1 ("net: ena: Implement XDP_TX action")
Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_netdev.c

index a0af74c..e101fc9 100644 (file)
@@ -355,7 +355,7 @@ error_unmap_dma:
        ena_unmap_tx_buff(xdp_ring, tx_info);
        tx_info->xdpf = NULL;
 error_drop_packet:
-
+       __free_page(tx_info->xdp_rx_page);
        return NETDEV_TX_OK;
 }