net/hns3: fix timing of clearing interrupt source
[dpdk.git] / drivers / net / hns3 / hns3_rxtx_vec_neon.h
index a58bc3a..74c848d 100644 (file)
@@ -84,7 +84,7 @@ hns3_xmit_fixed_burst_vec(void *__restrict tx_queue,
        txq->next_to_use = next_to_use;
        txq->tx_bd_ready -= nb_tx;
 
-       hns3_write_reg_opt(txq->io_tail_reg, nb_tx);
+       hns3_write_txq_tail_reg(txq, nb_tx);
 
        return nb_tx;
 }
@@ -156,6 +156,14 @@ hns3_recv_burst_vec(struct hns3_rx_queue *__restrict rxq,
                0, 0, 0,      /* ignore non-length fields */
        };
 
+       /* compile-time verifies the shuffle mask */
+       RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, pkt_len) !=
+                        offsetof(struct rte_mbuf, rx_descriptor_fields1) + 4);
+       RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, data_len) !=
+                        offsetof(struct rte_mbuf, rx_descriptor_fields1) + 8);
+       RTE_BUILD_BUG_ON(offsetof(struct rte_mbuf, hash.rss) !=
+                        offsetof(struct rte_mbuf, rx_descriptor_fields1) + 12);
+
        for (pos = 0; pos < nb_pkts; pos += HNS3_DEFAULT_DESCS_PER_LOOP,
                                     rxdp += HNS3_DEFAULT_DESCS_PER_LOOP) {
                uint64x2x2_t descs[HNS3_DEFAULT_DESCS_PER_LOOP];