ice: do not create xdp_frame on XDP_TX
authorMaciej Fijalkowski <maciej.fijalkowski@intel.com>
Thu, 19 Aug 2021 12:00:00 +0000 (14:00 +0200)
committerTony Nguyen <anthony.l.nguyen@intel.com>
Fri, 15 Oct 2021 14:39:03 +0000 (07:39 -0700)
xdp_frame is not needed for XDP_TX data path in ice driver case.
For this data path cleaning of sent descriptor will not happen anywhere
outside of the driver, which means that carrying the information about
the underlying memory model via xdp_frame will not be used. Therefore,
this conversion can be simply dropped, which would relieve CPU a bit.

Signed-off-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Tested-by: George Kuruvinakunnel <george.kuruvinakunnel@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
drivers/net/ethernet/intel/ice/ice_txrx.c

index b031f754c5cb0d8e135f30e6dba74b425a35a6d7..7739cd37905202d5833ad5d4a273010b15104e74 100644 (file)
@@ -554,7 +554,7 @@ ice_run_xdp(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp,
                return ICE_XDP_PASS;
        case XDP_TX:
                xdp_ring = rx_ring->vsi->xdp_rings[smp_processor_id()];
-               result = ice_xmit_xdp_buff(xdp, xdp_ring);
+               result = ice_xmit_xdp_ring(xdp->data, xdp->data_end - xdp->data, xdp_ring);
                if (result == ICE_XDP_CONSUMED)
                        goto out_failure;
                return result;