net/mlx5: allocate verbs object into shared memory
[dpdk.git] / drivers / net / sfc / sfc_ethdev.c
index 2b037d8..7a57472 100644 (file)
@@ -145,6 +145,12 @@ sfc_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
        if (~sa->dp_tx->features & SFC_DP_TX_FEAT_MULTI_SEG)
                dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOMULTSEGS;
 
+       if (~sa->dp_tx->features & SFC_DP_TX_FEAT_MULTI_POOL)
+               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOMULTMEMP;
+
+       if (~sa->dp_tx->features & SFC_DP_TX_FEAT_REFCNT)
+               dev_info->default_txconf.txq_flags |= ETH_TXQ_FLAGS_NOREFCOUNT;
+
 #if EFSYS_OPT_RX_SCALE
        if (sa->rss_support != EFX_RX_SCALE_UNAVAILABLE) {
                dev_info->reta_size = EFX_RSS_TBL_SIZE;
@@ -991,7 +997,7 @@ sfc_set_mc_addr_list(struct rte_eth_dev *dev, struct ether_addr *mc_addr_set,
        }
 
        for (i = 0; i < nb_mc_addr; ++i) {
-               (void)rte_memcpy(mc_addrs, mc_addr_set[i].addr_bytes,
+               rte_memcpy(mc_addrs, mc_addr_set[i].addr_bytes,
                                 EFX_MAC_ADDR_LEN);
                mc_addrs += EFX_MAC_ADDR_LEN;
        }
@@ -1348,7 +1354,7 @@ sfc_dev_rss_reta_update(struct rte_eth_dev *dev,
        struct sfc_port *port = &sa->port;
        unsigned int *rss_tbl_new;
        uint16_t entry;
-       int rc;
+       int rc = 0;
 
 
        if (port->isolated)
@@ -1393,11 +1399,16 @@ sfc_dev_rss_reta_update(struct rte_eth_dev *dev,
                }
        }
 
-       rc = efx_rx_scale_tbl_set(sa->nic, EFX_RSS_CONTEXT_DEFAULT,
-                                 rss_tbl_new, EFX_RSS_TBL_SIZE);
-       if (rc == 0)
-               rte_memcpy(sa->rss_tbl, rss_tbl_new, sizeof(sa->rss_tbl));
+       if (sa->state == SFC_ADAPTER_STARTED) {
+               rc = efx_rx_scale_tbl_set(sa->nic, EFX_RSS_CONTEXT_DEFAULT,
+                                         rss_tbl_new, EFX_RSS_TBL_SIZE);
+               if (rc != 0)
+                       goto fail_scale_tbl_set;
+       }
+
+       rte_memcpy(sa->rss_tbl, rss_tbl_new, sizeof(sa->rss_tbl));
 
+fail_scale_tbl_set:
 bad_reta_entry:
        sfc_adapter_unlock(sa);