net/bnxt: fix Rx checksum flags
[dpdk.git] / drivers / net / bnxt / bnxt_rxr.c
index 3f07c11..b384b6e 100644 (file)
@@ -459,7 +459,7 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
 
        if ((rxcmp->flags_type & rte_cpu_to_le_16(RX_PKT_CMPL_FLAGS_MASK)) ==
             RX_PKT_CMPL_FLAGS_ITYPE_PTP_W_TIMESTAMP)
-               mbuf->ol_flags |= PKT_RX_IEEE1588_PTP;
+               mbuf->ol_flags |= PKT_RX_IEEE1588_PTP | PKT_RX_IEEE1588_TMST;
 
        if (agg_buf)
                bnxt_rx_pages(rxq, mbuf, &tmp_raw_cons, agg_buf);
@@ -475,12 +475,12 @@ static int bnxt_rx_pkt(struct rte_mbuf **rx_pkt,
        if (likely(RX_CMP_IP_CS_OK(rxcmp1)))
                mbuf->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
        else
-               mbuf->ol_flags |= PKT_RX_IP_CKSUM_NONE;
+               mbuf->ol_flags |= PKT_RX_IP_CKSUM_BAD;
 
        if (likely(RX_CMP_L4_CS_OK(rxcmp1)))
                mbuf->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
        else
-               mbuf->ol_flags |= PKT_RX_L4_CKSUM_NONE;
+               mbuf->ol_flags |= PKT_RX_L4_CKSUM_BAD;
 
        mbuf->packet_type = bnxt_parse_pkt_type(rxcmp, rxcmp1);
 
@@ -545,6 +545,10 @@ uint16_t bnxt_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
        uint16_t ag_prod = rxr->ag_prod;
        int rc = 0;
 
+       /* If Rx Q was stopped return */
+       if (rxq->rx_deferred_start)
+               return 0;
+
        /* Handle RX burst request */
        while (1) {
                cons = RING_CMP(cpr->cp_ring_struct, raw_cons);