Commit fd1754fb authored by Hariprasad Shenai's avatar Hariprasad Shenai Committed by David S. Miller

cxgb4: Fix tx flit calculation

In commit 0aac3f56 ("cxgb4: Add comment for calculate tx flits
and sge length code") introduced a regression where tx flit calculation
is going wrong, which can lead to data corruption, hang, stall and
write-combining failure. Fixing it.
Signed-off-by: default avatarHariprasad Shenai <hariprasad@chelsio.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d43cefcd
...@@ -807,7 +807,7 @@ static inline unsigned int calc_tx_flits(const struct sk_buff *skb) ...@@ -807,7 +807,7 @@ static inline unsigned int calc_tx_flits(const struct sk_buff *skb)
* message or, if we're doing a Large Send Offload, an LSO CPL message * message or, if we're doing a Large Send Offload, an LSO CPL message
* with an embedded TX Packet Write CPL message. * with an embedded TX Packet Write CPL message.
*/ */
flits = sgl_len(skb_shinfo(skb)->nr_frags + 1) + 4; flits = sgl_len(skb_shinfo(skb)->nr_frags + 1);
if (skb_shinfo(skb)->gso_size) if (skb_shinfo(skb)->gso_size)
flits += (sizeof(struct fw_eth_tx_pkt_wr) + flits += (sizeof(struct fw_eth_tx_pkt_wr) +
sizeof(struct cpl_tx_pkt_lso_core) + sizeof(struct cpl_tx_pkt_lso_core) +
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment