net/sfc: start to factor out multi-process shared data
[dpdk.git] / drivers / net / sfc / sfc_ethdev.c
index f3316e1..88dbecd 100644 (file)
@@ -491,7 +491,7 @@ sfc_tx_queue_release(void *queue)
                return;
 
        txq = sfc_txq_by_dp_txq(dp_txq);
-       sw_index = sfc_txq_sw_index(txq);
+       sw_index = dp_txq->dpq.queue_id;
 
        SFC_ASSERT(txq->evq != NULL);
        sa = txq->evq->sa;
@@ -1196,7 +1196,7 @@ sfc_rx_queue_start(struct rte_eth_dev *dev, uint16_t rx_queue_id)
        if (sa->state != SFC_ADAPTER_STARTED)
                goto fail_not_started;
 
-       if (sa->rxq_info[rx_queue_id].rxq == NULL)
+       if (sa->rxq_info[rx_queue_id].state != SFC_RXQ_INITIALIZED)
                goto fail_not_setup;
 
        rc = sfc_rx_qstart(sa, rx_queue_id);
@@ -1248,7 +1248,7 @@ sfc_tx_queue_start(struct rte_eth_dev *dev, uint16_t tx_queue_id)
        if (sa->state != SFC_ADAPTER_STARTED)
                goto fail_not_started;
 
-       if (sa->txq_info[tx_queue_id].txq == NULL)
+       if (sa->txq_info[tx_queue_id].state != SFC_TXQ_INITIALIZED)
                goto fail_not_setup;
 
        rc = sfc_tx_qstart(sa, tx_queue_id);
@@ -2023,6 +2023,7 @@ static int
 sfc_eth_dev_init(struct rte_eth_dev *dev)
 {
        struct sfc_adapter *sa = dev->data->dev_private;
+       struct sfc_adapter_shared *sas;
        struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
        uint32_t logtype_main;
        int rc;
@@ -2035,6 +2036,9 @@ sfc_eth_dev_init(struct rte_eth_dev *dev)
                                            SFC_LOGTYPE_MAIN_STR,
                                            RTE_LOG_NOTICE);
 
+       sa->priv.shared = &sa->_shared;
+       sas = sa->priv.shared;
+
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                return -sfc_eth_dev_secondary_init(dev, logtype_main);
 
@@ -2047,8 +2051,8 @@ sfc_eth_dev_init(struct rte_eth_dev *dev)
        dev->process_private = sa;
 
        /* Required for logging */
-       sa->pci_addr = pci_dev->addr;
-       sa->port_id = dev->data->port_id;
+       sas->pci_addr = pci_dev->addr;
+       sas->port_id = dev->data->port_id;
        sa->priv.logtype_main = logtype_main;
 
        sa->eth_dev = dev;