ssi = skb_shinfo(skb);
        if (ssi->gso_size) {
-               struct cpl_tx_pkt_lso_core *lso = (void *)(wr + 1);
+               struct cpl_tx_pkt_lso *lso = (void *)wr;
                bool v6 = (ssi->gso_type & SKB_GSO_TCPV6) != 0;
                int l3hdr_len = skb_network_header_len(skb);
                int eth_xtra_len = skb_network_offset(skb) - ETH_HLEN;
 
                wr->op_immdlen = htonl(FW_WR_OP(FW_ETH_TX_PKT_WR) |
                                       FW_WR_IMMDLEN(sizeof(*lso)));
-               lso->lso_ctrl = htonl(LSO_OPCODE(CPL_TX_PKT_LSO) |
-                                     LSO_FIRST_SLICE | LSO_LAST_SLICE |
-                                     LSO_IPV6(v6) |
-                                     LSO_ETHHDR_LEN(eth_xtra_len / 4) |
-                                     LSO_IPHDR_LEN(l3hdr_len / 4) |
-                                     LSO_TCPHDR_LEN(tcp_hdr(skb)->doff));
-               lso->ipid_ofst = htons(0);
-               lso->mss = htons(ssi->gso_size);
-               lso->seqno_offset = htonl(0);
-               lso->len = htonl(skb->len);
+               lso->c.lso_ctrl = htonl(LSO_OPCODE(CPL_TX_PKT_LSO) |
+                                       LSO_FIRST_SLICE | LSO_LAST_SLICE |
+                                       LSO_IPV6(v6) |
+                                       LSO_ETHHDR_LEN(eth_xtra_len / 4) |
+                                       LSO_IPHDR_LEN(l3hdr_len / 4) |
+                                       LSO_TCPHDR_LEN(tcp_hdr(skb)->doff));
+               lso->c.ipid_ofst = htons(0);
+               lso->c.mss = htons(ssi->gso_size);
+               lso->c.seqno_offset = htonl(0);
+               lso->c.len = htonl(skb->len);
                cpl = (void *)(lso + 1);
                cntrl = TXPKT_CSUM_TYPE(v6 ? TX_CSUM_TCPIP6 : TX_CSUM_TCPIP) |
                        TXPKT_IPHDR_LEN(l3hdr_len) |