net/fm10k: fix address of first segment
[dpdk.git] / drivers / net / fm10k / fm10k_rxtx_vec.c
index 005fda6..45542be 100644 (file)
@@ -52,8 +52,10 @@ fm10k_desc_to_olflags_v(__m128i descs[4], struct rte_mbuf **rx_pkts)
 
        const __m128i pkttype_msk = _mm_set_epi16(
                        0x0000, 0x0000, 0x0000, 0x0000,
-                       PKT_RX_VLAN, PKT_RX_VLAN,
-                       PKT_RX_VLAN, PKT_RX_VLAN);
+                       PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED,
+                       PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED,
+                       PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED,
+                       PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED);
 
        /* mask everything except rss type */
        const __m128i rsstype_msk = _mm_set_epi16(
@@ -676,6 +678,7 @@ fm10k_recv_scattered_pkts_vec(void *rx_queue,
                        i++;
                if (i == nb_bufs)
                        return nb_bufs;
+               rxq->pkt_first_seg = rx_pkts[i];
        }
        return i + fm10k_reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i,
                &split_flags[i]);
@@ -709,7 +712,7 @@ vtx1(volatile struct fm10k_tx_desc *txdp,
                struct rte_mbuf *pkt, uint64_t flags)
 {
        __m128i descriptor = _mm_set_epi64x(flags << 56 |
-                       pkt->vlan_tci << 16 | pkt->data_len,
+                       (uint64_t)pkt->vlan_tci << 16 | (uint64_t)pkt->data_len,
                        MBUF_DMA_ADDR(pkt));
        _mm_store_si128((__m128i *)txdp, descriptor);
 }