@@ -297,7 +297,8 @@ static inline void mlx5e_fill_sq_frag_edge(struct mlx5e_txqsq *sq,
297
297
static inline void
298
298
mlx5e_txwqe_complete (struct mlx5e_txqsq * sq , struct sk_buff * skb ,
299
299
u8 opcode , u16 ds_cnt , u8 num_wqebbs , u32 num_bytes , u8 num_dma ,
300
- struct mlx5e_tx_wqe_info * wi , struct mlx5_wqe_ctrl_seg * cseg )
300
+ struct mlx5e_tx_wqe_info * wi , struct mlx5_wqe_ctrl_seg * cseg ,
301
+ bool xmit_more )
301
302
{
302
303
struct mlx5_wq_cyc * wq = & sq -> wq ;
303
304
@@ -320,14 +321,14 @@ mlx5e_txwqe_complete(struct mlx5e_txqsq *sq, struct sk_buff *skb,
320
321
sq -> stats -> stopped ++ ;
321
322
}
322
323
323
- if (!skb -> xmit_more || netif_xmit_stopped (sq -> txq ))
324
+ if (!xmit_more || netif_xmit_stopped (sq -> txq ))
324
325
mlx5e_notify_hw (wq , sq -> pc , sq -> uar_map , cseg );
325
326
}
326
327
327
328
#define INL_HDR_START_SZ (sizeof(((struct mlx5_wqe_eth_seg *)NULL)->inline_hdr.start))
328
329
329
330
netdev_tx_t mlx5e_sq_xmit (struct mlx5e_txqsq * sq , struct sk_buff * skb ,
330
- struct mlx5e_tx_wqe * wqe , u16 pi )
331
+ struct mlx5e_tx_wqe * wqe , u16 pi , bool xmit_more )
331
332
{
332
333
struct mlx5_wq_cyc * wq = & sq -> wq ;
333
334
struct mlx5_wqe_ctrl_seg * cseg ;
@@ -360,7 +361,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
360
361
}
361
362
362
363
stats -> bytes += num_bytes ;
363
- stats -> xmit_more += skb -> xmit_more ;
364
+ stats -> xmit_more += netdev_xmit_more () ;
364
365
365
366
headlen = skb -> len - ihs - skb -> data_len ;
366
367
ds_cnt += !!headlen ;
@@ -423,7 +424,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
423
424
goto err_drop ;
424
425
425
426
mlx5e_txwqe_complete (sq , skb , opcode , ds_cnt , num_wqebbs , num_bytes ,
426
- num_dma , wi , cseg );
427
+ num_dma , wi , cseg , xmit_more );
427
428
428
429
return NETDEV_TX_OK ;
429
430
@@ -449,7 +450,7 @@ netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev)
449
450
if (unlikely (!skb ))
450
451
return NETDEV_TX_OK ;
451
452
452
- return mlx5e_sq_xmit (sq , skb , wqe , pi );
453
+ return mlx5e_sq_xmit (sq , skb , wqe , pi , netdev_xmit_more () );
453
454
}
454
455
455
456
static void mlx5e_dump_error_cqe (struct mlx5e_txqsq * sq ,
@@ -659,7 +660,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
659
660
}
660
661
661
662
stats -> bytes += num_bytes ;
662
- stats -> xmit_more += skb -> xmit_more ;
663
+ stats -> xmit_more += netdev_xmit_more () ;
663
664
664
665
headlen = skb -> len - ihs - skb -> data_len ;
665
666
ds_cnt += !!headlen ;
@@ -704,7 +705,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
704
705
goto err_drop ;
705
706
706
707
mlx5e_txwqe_complete (sq , skb , opcode , ds_cnt , num_wqebbs , num_bytes ,
707
- num_dma , wi , cseg );
708
+ num_dma , wi , cseg , false );
708
709
709
710
return NETDEV_TX_OK ;
710
711
0 commit comments