OSDN Git Service

net/mlx5e: Fix wrong xmit_more application
authorTariq Toukan <tariqt@mellanox.com>
Wed, 15 May 2019 12:57:13 +0000 (15:57 +0300)
committerSaeed Mahameed <saeedm@mellanox.com>
Fri, 17 May 2019 20:16:48 +0000 (13:16 -0700)
Cited patch refactored the xmit_more indication while not preserving
its functionality. Fix it.

Fixes: 3c31ff22b25f ("drivers: mellanox: use netdev_xmit_more() helper")
Signed-off-by: Tariq Toukan <tariqt@mellanox.com>
Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.h

index 7b61126..195a7d9 100644 (file)
@@ -361,7 +361,7 @@ netdev_tx_t mlx5e_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
        }
 
        stats->bytes     += num_bytes;
-       stats->xmit_more += netdev_xmit_more();
+       stats->xmit_more += xmit_more;
 
        headlen = skb->len - ihs - skb->data_len;
        ds_cnt += !!headlen;
@@ -624,7 +624,8 @@ mlx5i_txwqe_build_datagram(struct mlx5_av *av, u32 dqpn, u32 dqkey,
 }
 
 netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
-                         struct mlx5_av *av, u32 dqpn, u32 dqkey)
+                         struct mlx5_av *av, u32 dqpn, u32 dqkey,
+                         bool xmit_more)
 {
        struct mlx5_wq_cyc *wq = &sq->wq;
        struct mlx5i_tx_wqe *wqe;
@@ -660,7 +661,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
        }
 
        stats->bytes     += num_bytes;
-       stats->xmit_more += netdev_xmit_more();
+       stats->xmit_more += xmit_more;
 
        headlen = skb->len - ihs - skb->data_len;
        ds_cnt += !!headlen;
@@ -705,7 +706,7 @@ netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
                goto err_drop;
 
        mlx5e_txwqe_complete(sq, skb, opcode, ds_cnt, num_wqebbs, num_bytes,
-                            num_dma, wi, cseg, false);
+                            num_dma, wi, cseg, xmit_more);
 
        return NETDEV_TX_OK;
 
index ada1b7c..9ca492b 100644 (file)
@@ -619,7 +619,7 @@ static int mlx5i_xmit(struct net_device *dev, struct sk_buff *skb,
        struct mlx5_ib_ah *mah   = to_mah(address);
        struct mlx5i_priv *ipriv = epriv->ppriv;
 
-       return mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey);
+       return mlx5i_sq_xmit(sq, skb, &mah->av, dqpn, ipriv->qkey, netdev_xmit_more());
 }
 
 static void mlx5i_set_pkey_index(struct net_device *netdev, int id)
index 9165ca5..e19ba3f 100644 (file)
@@ -119,7 +119,8 @@ static inline void mlx5i_sq_fetch_wqe(struct mlx5e_txqsq *sq,
 }
 
 netdev_tx_t mlx5i_sq_xmit(struct mlx5e_txqsq *sq, struct sk_buff *skb,
-                         struct mlx5_av *av, u32 dqpn, u32 dqkey);
+                         struct mlx5_av *av, u32 dqpn, u32 dqkey,
+                         bool xmit_more);
 void mlx5i_handle_rx_cqe(struct mlx5e_rq *rq, struct mlx5_cqe64 *cqe);
 void mlx5i_get_stats(struct net_device *dev, struct rtnl_link_stats64 *stats);