|
@@ -251,9 +251,14 @@ static void nic_set_tx_pkt_pad(struct nicpf *nic, int size)
|
|
|
int lmac;
|
|
|
u64 lmac_cfg;
|
|
|
|
|
|
- /* Max value that can be set is 60 */
|
|
|
- if (size > 60)
|
|
|
- size = 60;
|
|
|
+ /* There is a issue in HW where-in while sending GSO sized
|
|
|
+ * pkts as part of TSO, if pkt len falls below this size
|
|
|
+ * NIC will zero PAD packet and also updates IP total length.
|
|
|
+ * Hence set this value to lessthan min pkt size of MAC+IP+TCP
|
|
|
+ * headers, BGX will do the padding to transmit 64 byte pkt.
|
|
|
+ */
|
|
|
+ if (size > 52)
|
|
|
+ size = 52;
|
|
|
|
|
|
for (lmac = 0; lmac < (MAX_BGX_PER_CN88XX * MAX_LMAC_PER_BGX); lmac++) {
|
|
|
lmac_cfg = nic_reg_read(nic, NIC_PF_LMAC_0_7_CFG | (lmac << 3));
|