git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
bus/fslmc: support multi VFIO group
[dpdk.git]
/
drivers
/
net
/
thunderx
/
nicvf_ethdev.c
diff --git
a/drivers/net/thunderx/nicvf_ethdev.c
b/drivers/net/thunderx/nicvf_ethdev.c
index
eb2c11d
..
b93d457
100644
(file)
--- a/
drivers/net/thunderx/nicvf_ethdev.c
+++ b/
drivers/net/thunderx/nicvf_ethdev.c
@@
-362,7
+362,7
@@
nicvf_dev_supported_ptypes_get(struct rte_eth_dev *dev)
return ptypes;
}
return ptypes;
}
-static
void
+static
int
nicvf_dev_stats_reset(struct rte_eth_dev *dev)
{
int i;
nicvf_dev_stats_reset(struct rte_eth_dev *dev)
{
int i;
@@
-370,6
+370,7
@@
nicvf_dev_stats_reset(struct rte_eth_dev *dev)
struct nicvf *nic = nicvf_pmd_priv(dev);
uint16_t rx_start, rx_end;
uint16_t tx_start, tx_end;
struct nicvf *nic = nicvf_pmd_priv(dev);
uint16_t rx_start, rx_end;
uint16_t tx_start, tx_end;
+ int ret;
/* Reset all primary nic counters */
nicvf_rx_range(dev, nic, &rx_start, &rx_end);
/* Reset all primary nic counters */
nicvf_rx_range(dev, nic, &rx_start, &rx_end);
@@
-380,7
+381,9
@@
nicvf_dev_stats_reset(struct rte_eth_dev *dev)
for (i = tx_start; i <= tx_end; i++)
txqs |= (0x3 << (i * 2));
for (i = tx_start; i <= tx_end; i++)
txqs |= (0x3 << (i * 2));
- nicvf_mbox_reset_stat_counters(nic, 0x3FFF, 0x1F, rxqs, txqs);
+ ret = nicvf_mbox_reset_stat_counters(nic, 0x3FFF, 0x1F, rxqs, txqs);
+ if (ret != 0)
+ return ret;
/* Reset secondary nic queue counters */
for (i = 0; i < nic->sqs_count; i++) {
/* Reset secondary nic queue counters */
for (i = 0; i < nic->sqs_count; i++) {
@@
-396,14
+399,19
@@
nicvf_dev_stats_reset(struct rte_eth_dev *dev)
for (i = tx_start; i <= tx_end; i++)
txqs |= (0x3 << ((i % MAX_SND_QUEUES_PER_QS) * 2));
for (i = tx_start; i <= tx_end; i++)
txqs |= (0x3 << ((i % MAX_SND_QUEUES_PER_QS) * 2));
- nicvf_mbox_reset_stat_counters(snic, 0, 0, rxqs, txqs);
+ ret = nicvf_mbox_reset_stat_counters(snic, 0, 0, rxqs, txqs);
+ if (ret != 0)
+ return ret;
}
}
+
+ return 0;
}
/* Promiscuous mode enabled by default in LMAC to VF 1:1 map configuration */
}
/* Promiscuous mode enabled by default in LMAC to VF 1:1 map configuration */
-static
void
+static
int
nicvf_dev_promisc_enable(struct rte_eth_dev *dev __rte_unused)
{
nicvf_dev_promisc_enable(struct rte_eth_dev *dev __rte_unused)
{
+ return 0;
}
static inline uint64_t
}
static inline uint64_t
@@
-1393,7
+1401,7
@@
nicvf_dev_rx_queue_setup(struct rte_eth_dev *dev, uint16_t qidx,
return 0;
}
return 0;
}
-static
void
+static
int
nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
{
struct nicvf *nic = nicvf_pmd_priv(dev);
nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
{
struct nicvf *nic = nicvf_pmd_priv(dev);
@@
-1440,6
+1448,8
@@
nicvf_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
DEV_TX_OFFLOAD_UDP_CKSUM |
DEV_TX_OFFLOAD_TCP_CKSUM,
};
DEV_TX_OFFLOAD_UDP_CKSUM |
DEV_TX_OFFLOAD_TCP_CKSUM,
};
+
+ return 0;
}
static nicvf_iova_addr_t
}
static nicvf_iova_addr_t
@@
-2083,6
+2093,16
@@
kvlist_free:
return ret;
}
static int
return ret;
}
static int
+nicvf_eth_dev_uninit(struct rte_eth_dev *dev)
+{
+ PMD_INIT_FUNC_TRACE();
+
+ if (rte_eal_process_type() == RTE_PROC_PRIMARY)
+ nicvf_dev_close(dev);
+
+ return 0;
+}
+static int
nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
{
int ret;
nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
{
int ret;
@@
-2206,6
+2226,7
@@
nicvf_eth_dev_init(struct rte_eth_dev *eth_dev)
malloc_fail:
rte_free(eth_dev->data->mac_addrs);
malloc_fail:
rte_free(eth_dev->data->mac_addrs);
+ eth_dev->data->mac_addrs = NULL;
alarm_fail:
nicvf_periodic_alarm_stop(nicvf_interrupt, eth_dev);
fail:
alarm_fail:
nicvf_periodic_alarm_stop(nicvf_interrupt, eth_dev);
fail:
@@
-2255,7
+2276,7
@@
static int nicvf_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
static int nicvf_eth_pci_remove(struct rte_pci_device *pci_dev)
{
static int nicvf_eth_pci_remove(struct rte_pci_device *pci_dev)
{
- return rte_eth_dev_pci_generic_remove(pci_dev,
NULL
);
+ return rte_eth_dev_pci_generic_remove(pci_dev,
nicvf_eth_dev_uninit
);
}
static struct rte_pci_driver rte_nicvf_pmd = {
}
static struct rte_pci_driver rte_nicvf_pmd = {