]> git.droids-corp.org - dpdk.git/blobdiff - drivers/net/hinic/hinic_pmd_rx.c
net/hinic: optimize Rx performance
[dpdk.git] / drivers / net / hinic / hinic_pmd_rx.c
index a9f396222ab5dd6733c826cfe7f916d73e95f1c9..743bae9693f95555d5dedbddcebf529f1d40b52c 100644 (file)
@@ -971,13 +971,10 @@ u16 hinic_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, u16 nb_pkts)
        while (pkts < nb_pkts) {
                 /* 2. current ci is done */
                rx_cqe = &rxq->rx_cqe[sw_ci];
-               status = rx_cqe->status;
+               status = __atomic_load_n(&rx_cqe->status, __ATOMIC_ACQUIRE);
                if (!HINIC_GET_RX_DONE_BE(status))
                        break;
 
-               /* read other cqe member after status */
-               rte_rmb();
-
                /* convert cqe and get packet length */
                hinic_rq_cqe_be_to_cpu32(&cqe, (volatile void *)rx_cqe);
                vlan_len = cqe.vlan_len;