net/sfc/base: fix ID retrieval in v3 licensing
[dpdk.git] / drivers / net / sfc / sfc_rx.c
index d8503e2..2c73260 100644 (file)
@@ -673,6 +673,7 @@ sfc_rx_qstart(struct sfc_adapter *sa, unsigned int sw_index)
 
        rxq_info = &sa->rxq_info[sw_index];
        rxq = rxq_info->rxq;
+       SFC_ASSERT(rxq != NULL);
        SFC_ASSERT(rxq->state == SFC_RXQ_INITIALIZED);
 
        evq = rxq->evq;
@@ -763,7 +764,7 @@ sfc_rx_qstop(struct sfc_adapter *sa, unsigned int sw_index)
        rxq_info = &sa->rxq_info[sw_index];
        rxq = rxq_info->rxq;
 
-       if (rxq->state == SFC_RXQ_INITIALIZED)
+       if (rxq == NULL || rxq->state == SFC_RXQ_INITIALIZED)
                return;
        SFC_ASSERT(rxq->state & SFC_RXQ_STARTED);
 
@@ -792,7 +793,6 @@ sfc_rx_get_dev_offload_caps(struct sfc_adapter *sa)
        uint64_t caps = 0;
 
        caps |= DEV_RX_OFFLOAD_JUMBO_FRAME;
-       caps |= DEV_RX_OFFLOAD_CRC_STRIP;
 
        if (sa->dp_rx->features & SFC_DP_RX_FEAT_CHECKSUM) {
                caps |= DEV_RX_OFFLOAD_IPV4_CKSUM;
@@ -1363,7 +1363,8 @@ sfc_rx_start(struct sfc_adapter *sa)
                goto fail_rss_config;
 
        for (sw_index = 0; sw_index < sa->rxq_count; ++sw_index) {
-               if ((!sa->rxq_info[sw_index].deferred_start ||
+               if (sa->rxq_info[sw_index].rxq != NULL &&
+                   (!sa->rxq_info[sw_index].deferred_start ||
                     sa->rxq_info[sw_index].deferred_started)) {
                        rc = sfc_rx_qstart(sa, sw_index);
                        if (rc != 0)
@@ -1439,14 +1440,6 @@ sfc_rx_check_mode(struct sfc_adapter *sa, struct rte_eth_rxmode *rxmode)
                rc = EINVAL;
        }
 
-       /* KEEP_CRC offload flag is not supported by PMD
-        * can remove the below block when DEV_RX_OFFLOAD_CRC_STRIP removed
-        */
-       if (rte_eth_dev_must_keep_crc(rxmode->offloads)) {
-               sfc_warn(sa, "FCS stripping cannot be disabled - always on");
-               rxmode->offloads |= DEV_RX_OFFLOAD_CRC_STRIP;
-       }
-
        /*
         * Requested offloads are validated against supported by ethdev,
         * so unsupported offloads cannot be added as the result of