Message ID | 20230213104003.30413-1-martyna.szapar-mudlaw@linux.intel.com |
---|---|
State | Changes Requested |
Delegated to: | Anthony Nguyen |
Headers | show |
Series | [net] ice: Fix missing cleanup routine in the case of partial memory allocation | expand |
>-----Original Message----- >From: Intel-wired-lan <intel-wired-lan-bounces@osuosl.org> On Behalf Of >Martyna Szapar-Mudlaw >Sent: 13 February 2023 16:10 >To: intel-wired-lan@osuosl.org >Cc: Martyna Szapar-Mudlaw <martyna.szapar-mudlaw@linux.intel.com> >Subject: [Intel-wired-lan] [PATCH net] ice: Fix missing cleanup routine in the >case of partial memory allocation > >Add missing memory free in the case of partial memory allocation in the loop >in ice_realloc_zc_buf function. > >Fixes: 7e753eb675f0 ("ice: Fix DMA mappings leak") >Signed-off-by: Martyna Szapar-Mudlaw <martyna.szapar- >mudlaw@linux.intel.com> >Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com> >--- > drivers/net/ethernet/intel/ice/ice_xsk.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com> (A Contingent Worker at Intel)
diff --git a/drivers/net/ethernet/intel/ice/ice_xsk.c b/drivers/net/ethernet/intel/ice/ice_xsk.c index 7105de6fb344..0b025a36e6f1 100644 --- a/drivers/net/ethernet/intel/ice/ice_xsk.c +++ b/drivers/net/ethernet/intel/ice/ice_xsk.c @@ -377,8 +377,16 @@ int ice_realloc_zc_buf(struct ice_vsi *vsi, bool zc) for_each_set_bit(q, vsi->af_xdp_zc_qps, max_t(int, vsi->alloc_txq, vsi->alloc_rxq)) { rx_ring = vsi->rx_rings[q]; - if (ice_realloc_rx_xdp_bufs(rx_ring, zc)) + if (ice_realloc_rx_xdp_bufs(rx_ring, zc)) { + unsigned long qid = q; + + for_each_set_bit(q, vsi->af_xdp_zc_qps, qid) { + rx_ring = vsi->rx_rings[q]; + zc ? kfree(rx_ring->xdp_buf) : + kfree(rx_ring->rx_buf); + } return -ENOMEM; + } } return 0;