diff options
Diffstat (limited to 'drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c')
| -rw-r--r-- | drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 13 | 
1 files changed, 6 insertions, 7 deletions
| diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 1767c60056c5..ec706d614cac 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -3744,7 +3744,7 @@ mvpp2_xdp_xmit(struct net_device *dev, int num_frame,  	       struct xdp_frame **frames, u32 flags)  {  	struct mvpp2_port *port = netdev_priv(dev); -	int i, nxmit_byte = 0, nxmit = num_frame; +	int i, nxmit_byte = 0, nxmit = 0;  	struct mvpp2_pcpu_stats *stats;  	u16 txq_id;  	u32 ret; @@ -3762,12 +3762,11 @@ mvpp2_xdp_xmit(struct net_device *dev, int num_frame,  	for (i = 0; i < num_frame; i++) {  		ret = mvpp2_xdp_submit_frame(port, txq_id, frames[i], true); -		if (ret == MVPP2_XDP_TX) { -			nxmit_byte += frames[i]->len; -		} else { -			xdp_return_frame_rx_napi(frames[i]); -			nxmit--; -		} +		if (ret != MVPP2_XDP_TX) +			break; + +		nxmit_byte += frames[i]->len; +		nxmit++;  	}  	if (likely(nxmit > 0)) | 
