cxgb4: Calculate len properly for LSO path
Commit0034b29
("cxgb4: Don't assume LSO only uses SGL path in t4_eth_xmit()") introduced a regression where-in length was calculated wrongly for LSO path, causing chip hangs. So, correct the calculation of len. Fixes:0034b29
("cxgb4: Don't assume LSO only uses SGL path in t4_eth_xmit()") Signed-off-by: Kumar Sanghvi <kumaras@chelsio.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c2b955e006
commit
ca71de6ba7
|
@ -1051,7 +1051,6 @@ out_free: dev_kfree_skb(skb);
|
|||
end = (u64 *)wr + flits;
|
||||
|
||||
len = immediate ? skb->len : 0;
|
||||
len += sizeof(*cpl);
|
||||
ssi = skb_shinfo(skb);
|
||||
if (ssi->gso_size) {
|
||||
struct cpl_tx_pkt_lso *lso = (void *)wr;
|
||||
|
@ -1079,6 +1078,7 @@ out_free: dev_kfree_skb(skb);
|
|||
q->tso++;
|
||||
q->tx_cso += ssi->gso_segs;
|
||||
} else {
|
||||
len += sizeof(*cpl);
|
||||
wr->op_immdlen = htonl(FW_WR_OP(FW_ETH_TX_PKT_WR) |
|
||||
FW_WR_IMMDLEN(len));
|
||||
cpl = (void *)(wr + 1);
|
||||
|
|
Loading…
Reference in New Issue