New upstream version 17.11.4
[deb_dpdk.git] / drivers / net / sfc / sfc_ef10_rx.c
index 1484bab..bd2cbd0 100644 (file)
@@ -177,7 +177,7 @@ sfc_ef10_rx_qrefill(struct sfc_ef10_rxq *rxq)
                     ++i, ++id) {
                        struct rte_mbuf *m = objs[i];
                        struct sfc_ef10_rx_sw_desc *rxd;
-                       phys_addr_t phys_addr;
+                       rte_iova_t phys_addr;
 
                        SFC_ASSERT((id & ~ptr_mask) == 0);
                        rxd = &rxq->sw_ring[id];
@@ -189,7 +189,7 @@ sfc_ef10_rx_qrefill(struct sfc_ef10_rxq *rxq)
                         * structure members.
                         */
 
-                       phys_addr = rte_mbuf_data_dma_addr_default(m);
+                       phys_addr = rte_mbuf_data_iova_default(m);
                        EFX_POPULATE_QWORD_2(rxq->rxq_hw_ring[id],
                            ESF_DZ_RX_KER_BYTE_CNT, buf_size,
                            ESF_DZ_RX_KER_BUF_ADDR, phys_addr);
@@ -286,16 +286,18 @@ sfc_ef10_rx_ev_to_offloads(struct sfc_ef10_rxq *rxq, const efx_qword_t rx_ev,
                         PKT_RX_IP_CKSUM_BAD : PKT_RX_IP_CKSUM_GOOD);
                break;
        case ESE_DZ_L3_CLASS_IP6_FRAG:
-               l4_ptype |= RTE_PTYPE_L4_FRAG;
+               l4_ptype = RTE_PTYPE_L4_FRAG;
                /* FALLTHROUGH */
        case ESE_DZ_L3_CLASS_IP6:
-               l3_ptype |= RTE_PTYPE_L3_IPV6_EXT_UNKNOWN;
+               l3_ptype = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN;
                ol_flags |= PKT_RX_RSS_HASH;
                break;
        case ESE_DZ_L3_CLASS_ARP:
                /* Override Layer 2 packet type */
                l2_ptype = RTE_PTYPE_L2_ETHER_ARP;
                break;
+       case ESE_DZ_L3_CLASS_UNKNOWN:
+               break;
        default:
                /* Unexpected Layer 3 class */
                SFC_ASSERT(false);
@@ -544,6 +546,14 @@ sfc_ef10_rx_qdesc_npending(__rte_unused struct sfc_dp_rxq *dp_rxq)
        return -ENOTSUP;
 }
 
+static sfc_dp_rx_qdesc_status_t sfc_ef10_rx_qdesc_status;
+static int
+sfc_ef10_rx_qdesc_status(__rte_unused struct sfc_dp_rxq *dp_rxq,
+                        __rte_unused uint16_t offset)
+{
+       return -ENOTSUP;
+}
+
 
 static uint64_t
 sfc_ef10_mk_mbuf_rearm_data(uint16_t port_id, uint16_t prefix_size)
@@ -699,7 +709,7 @@ struct sfc_dp_rx sfc_ef10_rx = {
                .type           = SFC_DP_RX,
                .hw_fw_caps     = SFC_DP_HW_FW_CAP_EF10,
        },
-       .features               = 0,
+       .features               = SFC_DP_RX_FEAT_MULTI_PROCESS,
        .qcreate                = sfc_ef10_rx_qcreate,
        .qdestroy               = sfc_ef10_rx_qdestroy,
        .qstart                 = sfc_ef10_rx_qstart,
@@ -708,5 +718,6 @@ struct sfc_dp_rx sfc_ef10_rx = {
        .qpurge                 = sfc_ef10_rx_qpurge,
        .supported_ptypes_get   = sfc_ef10_supported_ptypes_get,
        .qdesc_npending         = sfc_ef10_rx_qdesc_npending,
+       .qdesc_status           = sfc_ef10_rx_qdesc_status,
        .pkt_burst              = sfc_ef10_recv_pkts,
 };