patch 'net/nfb: use process private variable for internal' has been queued to stable release 23.11.7

Shani Peretz shperetz at nvidia.com
Tue Mar 31 08:24:30 CEST 2026


Hi,

FYI, your patch has been queued to stable release 23.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 04/05/26. So please
shout if anyone has objections.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Queued patches are on a temporary branch at:
https://github.com/shanipr/dpdk-stable

This queued commit can be viewed at:
https://github.com/shanipr/dpdk-stable/commit/048de2591d5d48cb077903232374b6be062b61e7

Thanks.

Shani

---
>From 048de2591d5d48cb077903232374b6be062b61e7 Mon Sep 17 00:00:00 2001
From: Martin Spinler <spinler at cesnet.cz>
Date: Mon, 2 Feb 2026 17:45:03 -0800
Subject: [PATCH] net/nfb: use process private variable for internal

[ upstream commit e08f7ca34b300e0aa0c02df6cb56d9aea60b750c ]

Internal structures of libnfb can't be shared between processes.
Move these structures from dev_private to process_private, which allows
secondary process to correctly initialize and uninitialize the eth_dev.

Fixes: 6435f9a0ac22 ("net/nfb: add new netcope driver")

Signed-off-by: Martin Spinler <spinler at cesnet.cz>
---
 drivers/net/nfb/nfb.h        |  10 ++++
 drivers/net/nfb/nfb_ethdev.c | 103 ++++++++++++++++++++---------------
 drivers/net/nfb/nfb_rx.c     |   2 +-
 drivers/net/nfb/nfb_rxmode.c |  12 ++--
 drivers/net/nfb/nfb_tx.c     |   2 +-
 5 files changed, 78 insertions(+), 51 deletions(-)

diff --git a/drivers/net/nfb/nfb.h b/drivers/net/nfb/nfb.h
index bbfa45144f..a3ba276993 100644
--- a/drivers/net/nfb/nfb.h
+++ b/drivers/net/nfb/nfb.h
@@ -39,6 +39,10 @@
 /* Device arguments */
 static const char * const VALID_KEYS[] = {NULL};
 
+/*
+ * Handles obtained from the libnfb: each process must use own instance.
+ * Stored inside dev->process_private.
+ */
 struct pmd_internals {
 	uint16_t         max_rxmac;
 	uint16_t         max_txmac;
@@ -47,7 +51,13 @@ struct pmd_internals {
 
 	char             nfb_dev[PATH_MAX];
 	struct nfb_device *nfb;
+};
 
+/*
+ * Common data, single instance usable in all processes.
+ * Inited in the RTE_PROC_PRIMARY, stored in dev->data->dev_private.
+ */
+struct pmd_priv {
 	uint16_t max_rx_queues;
 	uint16_t max_tx_queues;
 };
diff --git a/drivers/net/nfb/nfb_ethdev.c b/drivers/net/nfb/nfb_ethdev.c
index 8b41534a34..52dc450a86 100644
--- a/drivers/net/nfb/nfb_ethdev.c
+++ b/drivers/net/nfb/nfb_ethdev.c
@@ -184,7 +184,7 @@ static int
 nfb_eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
 {
 	int ret;
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 	struct rte_eth_conf *dev_conf = &dev->data->dev_conf;
 
 	if (dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_TIMESTAMP) {
@@ -208,7 +208,7 @@ nfb_eth_get_max_mac_address_count(struct rte_eth_dev *dev)
 	uint16_t i;
 	uint32_t c;
 	uint32_t ret = (uint32_t)-1;
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 
 	/*
 	 * Go through all RX MAC components in firmware and find
@@ -238,13 +238,13 @@ static int
 nfb_eth_dev_info(struct rte_eth_dev *dev,
 	struct rte_eth_dev_info *dev_info)
 {
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_priv *priv = dev->data->dev_private;
 
 	dev_info->max_mac_addrs = nfb_eth_get_max_mac_address_count(dev);
 
 	dev_info->max_rx_pktlen = (uint32_t)-1;
-	dev_info->max_rx_queues = internals->max_rx_queues;
-	dev_info->max_tx_queues = internals->max_tx_queues;
+	dev_info->max_rx_queues = priv->max_rx_queues;
+	dev_info->max_tx_queues = priv->max_tx_queues;
 	dev_info->speed_capa = RTE_ETH_LINK_SPEED_100G;
 	dev_info->rx_offload_capa =
 		RTE_ETH_RX_OFFLOAD_TIMESTAMP;
@@ -263,20 +263,20 @@ nfb_eth_dev_info(struct rte_eth_dev *dev,
 static int
 nfb_eth_dev_close(struct rte_eth_dev *dev)
 {
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 	uint16_t i;
 	uint16_t nb_rx = dev->data->nb_rx_queues;
 	uint16_t nb_tx = dev->data->nb_tx_queues;
 	int ret;
 
+	nfb_nc_rxmac_deinit(internals->rxmac, internals->max_rxmac);
+	nfb_nc_txmac_deinit(internals->txmac, internals->max_txmac);
+
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
 
 	ret = nfb_eth_dev_stop(dev);
 
-	nfb_nc_rxmac_deinit(internals->rxmac, internals->max_rxmac);
-	nfb_nc_txmac_deinit(internals->txmac, internals->max_txmac);
-
 	for (i = 0; i < nb_rx; i++) {
 		nfb_eth_rx_queue_release(dev, i);
 		dev->data->rx_queues[i] = NULL;
@@ -311,7 +311,7 @@ nfb_eth_link_update(struct rte_eth_dev *dev,
 	struct rte_eth_link link;
 	memset(&link, 0, sizeof(link));
 
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 
 	status.speed = MAC_SPEED_UNKNOWN;
 
@@ -366,7 +366,7 @@ static int
 nfb_eth_dev_set_link_up(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	uint16_t i;
 	for (i = 0; i < internals->max_rxmac; ++i)
@@ -391,7 +391,7 @@ static int
 nfb_eth_dev_set_link_down(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	uint16_t i;
 	for (i = 0; i < internals->max_rxmac; ++i)
@@ -432,9 +432,8 @@ nfb_eth_mac_addr_set(struct rte_eth_dev *dev,
 {
 	unsigned int i;
 	uint64_t mac;
-	struct rte_eth_dev_data *data = dev->data;
 	struct pmd_internals *internals = (struct pmd_internals *)
-		data->dev_private;
+		dev->process_private;
 
 	mac = nfb_eth_mac_addr_conv(mac_addr);
 	/* Until no real multi-port support, configure all RX MACs the same */
@@ -450,9 +449,8 @@ nfb_eth_mac_addr_add(struct rte_eth_dev *dev,
 {
 	unsigned int i;
 	uint64_t mac;
-	struct rte_eth_dev_data *data = dev->data;
 	struct pmd_internals *internals = (struct pmd_internals *)
-		data->dev_private;
+		dev->process_private;
 
 	mac = nfb_eth_mac_addr_conv(mac_addr);
 	for (i = 0; i < internals->max_rxmac; ++i)
@@ -465,9 +463,8 @@ static void
 nfb_eth_mac_addr_remove(struct rte_eth_dev *dev, uint32_t index)
 {
 	unsigned int i;
-	struct rte_eth_dev_data *data = dev->data;
 	struct pmd_internals *internals = (struct pmd_internals *)
-		data->dev_private;
+		dev->process_private;
 
 	for (i = 0; i < internals->max_rxmac; ++i)
 		nc_rxmac_set_mac(internals->rxmac[i], index, 0, 0);
@@ -513,19 +510,31 @@ static const struct eth_dev_ops ops = {
 static int
 nfb_eth_dev_init(struct rte_eth_dev *dev)
 {
+	int ret;
 	uint32_t mac_count;
 	struct rte_eth_dev_data *data = dev->data;
-	struct pmd_internals *internals = (struct pmd_internals *)
-		data->dev_private;
+	struct pmd_internals *internals;
+	struct pmd_priv *priv = data->dev_private;
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
 	struct rte_ether_addr eth_addr_init;
+	uint16_t max_rx_queues, max_tx_queues;
 	struct rte_kvargs *kvlist;
 
 	RTE_LOG(INFO, PMD, "Initializing NFB device (" PCI_PRI_FMT ")\n",
 		pci_addr->domain, pci_addr->bus, pci_addr->devid,
 		pci_addr->function);
 
+	internals = rte_zmalloc_socket("nfb_internals",
+			sizeof(struct pmd_internals), RTE_CACHE_LINE_SIZE,
+			dev->device->numa_node);
+	if (internals == NULL) {
+		ret = -ENOMEM;
+		return ret;
+	}
+
+	dev->process_private = internals;
+
 	snprintf(internals->nfb_dev, PATH_MAX,
 		"/dev/nfb/by-pci-slot/" PCI_PRI_FMT,
 		pci_addr->domain, pci_addr->bus, pci_addr->devid,
@@ -555,13 +564,14 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
 	if (internals->nfb == NULL) {
 		RTE_LOG(ERR, PMD, "nfb_open(): failed to open %s",
 			internals->nfb_dev);
+		rte_free(internals);
 		return -EINVAL;
 	}
-	internals->max_rx_queues = ndp_get_rx_queue_available_count(internals->nfb);
-	internals->max_tx_queues = ndp_get_tx_queue_available_count(internals->nfb);
+	max_rx_queues = ndp_get_rx_queue_available_count(internals->nfb);
+	max_tx_queues = ndp_get_tx_queue_available_count(internals->nfb);
 
 	RTE_LOG(INFO, PMD, "Available NDP queues RX: %u TX: %u\n",
-		internals->max_rx_queues, internals->max_tx_queues);
+		max_rx_queues, max_tx_queues);
 
 	nfb_nc_rxmac_init(internals->nfb,
 		internals->rxmac,
@@ -580,28 +590,32 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
 	/* Get link state */
 	nfb_eth_link_update(dev, 0);
 
-	/* Allocate space for MAC addresses */
-	mac_count = nfb_eth_get_max_mac_address_count(dev);
-	data->mac_addrs = rte_zmalloc(data->name,
-		sizeof(struct rte_ether_addr) * mac_count, RTE_CACHE_LINE_SIZE);
-	if (data->mac_addrs == NULL) {
-		RTE_LOG(ERR, PMD, "Could not alloc space for MAC address!\n");
-		nfb_close(internals->nfb);
-		return -EINVAL;
-	}
-
-	rte_eth_random_addr(eth_addr_init.addr_bytes);
-	eth_addr_init.addr_bytes[0] = eth_addr.addr_bytes[0];
-	eth_addr_init.addr_bytes[1] = eth_addr.addr_bytes[1];
-	eth_addr_init.addr_bytes[2] = eth_addr.addr_bytes[2];
+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
+		priv->max_rx_queues = max_rx_queues;
+		priv->max_tx_queues = max_tx_queues;
+		/* Allocate space for MAC addresses */
+		mac_count = nfb_eth_get_max_mac_address_count(dev);
+		data->mac_addrs = rte_zmalloc(data->name,
+			sizeof(struct rte_ether_addr) * mac_count, RTE_CACHE_LINE_SIZE);
+		if (data->mac_addrs == NULL) {
+			RTE_LOG(ERR, PMD, "Could not alloc space for MAC address");
+			nfb_close(internals->nfb);
+			rte_free(internals);
+			return -EINVAL;
+		}
+		rte_eth_random_addr(eth_addr_init.addr_bytes);
+		eth_addr_init.addr_bytes[0] = eth_addr.addr_bytes[0];
+		eth_addr_init.addr_bytes[1] = eth_addr.addr_bytes[1];
+		eth_addr_init.addr_bytes[2] = eth_addr.addr_bytes[2];
 
-	nfb_eth_mac_addr_set(dev, &eth_addr_init);
-	rte_ether_addr_copy(&eth_addr_init, &dev->data->mac_addrs[0]);
+		nfb_eth_mac_addr_set(dev, &eth_addr_init);
+		rte_ether_addr_copy(&eth_addr_init, &data->mac_addrs[0]);
 
-	data->promiscuous = nfb_eth_promiscuous_get(dev);
-	data->all_multicast = nfb_eth_allmulticast_get(dev);
+		data->promiscuous = nfb_eth_promiscuous_get(dev);
+		data->all_multicast = nfb_eth_allmulticast_get(dev);
 
-	dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+		data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+	}
 
 	RTE_LOG(INFO, PMD, "NFB device ("
 		PCI_PRI_FMT ") successfully initialized\n",
@@ -625,9 +639,12 @@ nfb_eth_dev_uninit(struct rte_eth_dev *dev)
 {
 	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
 	struct rte_pci_addr *pci_addr = &pci_dev->addr;
+	struct pmd_internals *internals = dev->process_private;
 
 	nfb_eth_dev_close(dev);
 
+	rte_free(internals);
+
 	RTE_LOG(INFO, PMD, "NFB device ("
 		PCI_PRI_FMT ") successfully uninitialized\n",
 		pci_addr->domain, pci_addr->bus, pci_addr->devid,
@@ -663,7 +680,7 @@ nfb_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
 		struct rte_pci_device *pci_dev)
 {
 	return rte_eth_dev_pci_generic_probe(pci_dev,
-		sizeof(struct pmd_internals), nfb_eth_dev_init);
+		sizeof(struct pmd_priv), nfb_eth_dev_init);
 }
 
 /**
diff --git a/drivers/net/nfb/nfb_rx.c b/drivers/net/nfb/nfb_rx.c
index 7941197b77..14cf7edd2b 100644
--- a/drivers/net/nfb/nfb_rx.c
+++ b/drivers/net/nfb/nfb_rx.c
@@ -60,7 +60,7 @@ nfb_eth_rx_queue_setup(struct rte_eth_dev *dev,
 		const struct rte_eth_rxconf *rx_conf __rte_unused,
 		struct rte_mempool *mb_pool)
 {
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 
 	struct ndp_rx_queue *rxq;
 	int ret;
diff --git a/drivers/net/nfb/nfb_rxmode.c b/drivers/net/nfb/nfb_rxmode.c
index ca6e4d5578..dc560d638b 100644
--- a/drivers/net/nfb/nfb_rxmode.c
+++ b/drivers/net/nfb/nfb_rxmode.c
@@ -11,7 +11,7 @@ int
 nfb_eth_promiscuous_enable(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 	uint16_t i;
 
 	for (i = 0; i < internals->max_rxmac; ++i) {
@@ -26,7 +26,7 @@ int
 nfb_eth_promiscuous_disable(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 	uint16_t i;
 	enum nc_rxmac_mac_filter filter = RXMAC_MAC_FILTER_TABLE_BCAST;
 
@@ -44,7 +44,7 @@ int
 nfb_eth_promiscuous_get(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	struct nc_rxmac_status status;
 	status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS;
@@ -59,7 +59,7 @@ int
 nfb_eth_allmulticast_enable(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	uint16_t i;
 	if (dev->data->promiscuous)
@@ -76,7 +76,7 @@ int
 nfb_eth_allmulticast_disable(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	uint16_t i;
 
@@ -95,7 +95,7 @@ int
 nfb_eth_allmulticast_get(struct rte_eth_dev *dev)
 {
 	struct pmd_internals *internals = (struct pmd_internals *)
-		dev->data->dev_private;
+		dev->process_private;
 
 	struct nc_rxmac_status status;
 	status.mac_filter = RXMAC_MAC_FILTER_PROMISCUOUS;
diff --git a/drivers/net/nfb/nfb_tx.c b/drivers/net/nfb/nfb_tx.c
index 5c38d69934..3d7e2e5591 100644
--- a/drivers/net/nfb/nfb_tx.c
+++ b/drivers/net/nfb/nfb_tx.c
@@ -53,7 +53,7 @@ nfb_eth_tx_queue_setup(struct rte_eth_dev *dev,
 	unsigned int socket_id,
 	const struct rte_eth_txconf *tx_conf __rte_unused)
 {
-	struct pmd_internals *internals = dev->data->dev_private;
+	struct pmd_internals *internals = dev->process_private;
 	int ret;
 	struct ndp_tx_queue *txq;
 
-- 
2.43.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-03-31 00:32:35.603487641 +0300
+++ 0071-net-nfb-use-process-private-variable-for-internal.patch	2026-03-31 00:32:29.431347000 +0300
@@ -1 +1 @@
-From e08f7ca34b300e0aa0c02df6cb56d9aea60b750c Mon Sep 17 00:00:00 2001
+From 048de2591d5d48cb077903232374b6be062b61e7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e08f7ca34b300e0aa0c02df6cb56d9aea60b750c ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -15,2 +16,2 @@
- drivers/net/nfb/nfb.h        |  11 +++-
- drivers/net/nfb/nfb_ethdev.c | 103 +++++++++++++++++++++--------------
+ drivers/net/nfb/nfb.h        |  10 ++++
+ drivers/net/nfb/nfb_ethdev.c | 103 ++++++++++++++++++++---------------
@@ -20 +21 @@
- 5 files changed, 79 insertions(+), 51 deletions(-)
+ 5 files changed, 78 insertions(+), 51 deletions(-)
@@ -23 +24 @@
-index 917b830283..90b04c6151 100644
+index bbfa45144f..a3ba276993 100644
@@ -26,3 +27,3 @@
-@@ -41,14 +41,23 @@ extern int nfb_logtype;
- 
- #define RTE_NFB_DRIVER_NAME net_nfb
+@@ -39,6 +39,10 @@
+ /* Device arguments */
+ static const char * const VALID_KEYS[] = {NULL};
@@ -30 +30,0 @@
--
@@ -38,2 +38,3 @@
- 	struct nc_rxmac *rxmac[RTE_MAX_NC_RXMAC];
- 	struct nc_txmac *txmac[RTE_MAX_NC_TXMAC];
+@@ -47,7 +51,13 @@ struct pmd_internals {
+ 
+ 	char             nfb_dev[PATH_MAX];
@@ -52 +53 @@
-index feba06a291..7dbdde2715 100644
+index 8b41534a34..52dc450a86 100644
@@ -56 +57 @@
- nfb_eth_dev_configure(struct rte_eth_dev *dev)
+ nfb_eth_dev_configure(struct rte_eth_dev *dev __rte_unused)
@@ -64 +65 @@
-@@ -207,7 +207,7 @@ nfb_eth_get_max_mac_address_count(struct rte_eth_dev *dev)
+@@ -208,7 +208,7 @@ nfb_eth_get_max_mac_address_count(struct rte_eth_dev *dev)
@@ -73 +74 @@
-@@ -237,13 +237,13 @@ static int
+@@ -238,13 +238,13 @@ static int
@@ -90 +91 @@
-@@ -262,20 +262,20 @@ nfb_eth_dev_info(struct rte_eth_dev *dev,
+@@ -263,20 +263,20 @@ nfb_eth_dev_info(struct rte_eth_dev *dev,
@@ -115 +116 @@
-@@ -310,7 +310,7 @@ nfb_eth_link_update(struct rte_eth_dev *dev,
+@@ -311,7 +311,7 @@ nfb_eth_link_update(struct rte_eth_dev *dev,
@@ -124 +125 @@
-@@ -365,7 +365,7 @@ static int
+@@ -366,7 +366,7 @@ static int
@@ -133 +134 @@
-@@ -390,7 +390,7 @@ static int
+@@ -391,7 +391,7 @@ static int
@@ -142 +143 @@
-@@ -431,9 +431,8 @@ nfb_eth_mac_addr_set(struct rte_eth_dev *dev,
+@@ -432,9 +432,8 @@ nfb_eth_mac_addr_set(struct rte_eth_dev *dev,
@@ -153 +154 @@
-@@ -449,9 +448,8 @@ nfb_eth_mac_addr_add(struct rte_eth_dev *dev,
+@@ -450,9 +449,8 @@ nfb_eth_mac_addr_add(struct rte_eth_dev *dev,
@@ -164 +165 @@
-@@ -464,9 +462,8 @@ static void
+@@ -465,9 +463,8 @@ static void
@@ -175 +176 @@
-@@ -512,19 +509,31 @@ static const struct eth_dev_ops ops = {
+@@ -513,19 +510,31 @@ static const struct eth_dev_ops ops = {
@@ -190 +191 @@
- 	char nfb_dev[PATH_MAX];
+ 	struct rte_kvargs *kvlist;
@@ -192 +193 @@
- 	NFB_LOG(INFO, "Initializing NFB device (" PCI_PRI_FMT ")",
+ 	RTE_LOG(INFO, PMD, "Initializing NFB device (" PCI_PRI_FMT ")\n",
@@ -206 +207 @@
- 	snprintf(nfb_dev, sizeof(nfb_dev),
+ 	snprintf(internals->nfb_dev, PATH_MAX,
@@ -209,2 +210 @@
-@@ -538,13 +547,14 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
- 	internals->nfb = nfb_open(nfb_dev);
+@@ -555,13 +564,14 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
@@ -212 +212,2 @@
- 		NFB_LOG(ERR, "nfb_open(): failed to open %s", nfb_dev);
+ 		RTE_LOG(ERR, PMD, "nfb_open(): failed to open %s",
+ 			internals->nfb_dev);
@@ -221 +222 @@
- 	NFB_LOG(INFO, "Available NDP queues RX: %u TX: %u",
+ 	RTE_LOG(INFO, PMD, "Available NDP queues RX: %u TX: %u\n",
@@ -227 +228 @@
-@@ -563,28 +573,34 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
+@@ -580,28 +590,32 @@ nfb_eth_dev_init(struct rte_eth_dev *dev)
@@ -236 +237 @@
--		NFB_LOG(ERR, "Could not alloc space for MAC address");
+-		RTE_LOG(ERR, PMD, "Could not alloc space for MAC address!\n");
@@ -240,4 +241 @@
-+	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
-+		priv->max_rx_queues = max_rx_queues;
-+		priv->max_tx_queues = max_tx_queues;
- 
+-
@@ -247,0 +246,3 @@
++	if (rte_eal_process_type() == RTE_PROC_PRIMARY) {
++		priv->max_rx_queues = max_rx_queues;
++		priv->max_tx_queues = max_tx_queues;
@@ -253 +254 @@
-+			NFB_LOG(ERR, "Could not alloc space for MAC address");
++			RTE_LOG(ERR, PMD, "Could not alloc space for MAC address");
@@ -258,3 +258,0 @@
- 
--	nfb_eth_mac_addr_set(dev, &eth_addr_init);
--	rte_ether_addr_copy(&eth_addr_init, &dev->data->mac_addrs[0]);
@@ -266,2 +264,2 @@
--	data->promiscuous = nfb_eth_promiscuous_get(dev);
--	data->all_multicast = nfb_eth_allmulticast_get(dev);
+-	nfb_eth_mac_addr_set(dev, &eth_addr_init);
+-	rte_ether_addr_copy(&eth_addr_init, &dev->data->mac_addrs[0]);
@@ -271 +269,2 @@
--	dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+-	data->promiscuous = nfb_eth_promiscuous_get(dev);
+-	data->all_multicast = nfb_eth_allmulticast_get(dev);
@@ -274 +273,2 @@
-+
+ 
+-	dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
@@ -278,3 +278,3 @@
- 	NFB_LOG(INFO, "NFB device (" PCI_PRI_FMT ") successfully initialized",
- 		pci_addr->domain, pci_addr->bus, pci_addr->devid,
-@@ -607,9 +623,12 @@ nfb_eth_dev_uninit(struct rte_eth_dev *dev)
+ 	RTE_LOG(INFO, PMD, "NFB device ("
+ 		PCI_PRI_FMT ") successfully initialized\n",
+@@ -625,9 +639,12 @@ nfb_eth_dev_uninit(struct rte_eth_dev *dev)
@@ -290 +290,2 @@
- 	NFB_LOG(INFO, "NFB device (" PCI_PRI_FMT ") successfully uninitialized",
+ 	RTE_LOG(INFO, PMD, "NFB device ("
+ 		PCI_PRI_FMT ") successfully uninitialized\n",
@@ -292,2 +293 @@
- 		pci_addr->function);
-@@ -644,7 +663,7 @@ nfb_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -663,7 +680,7 @@ nfb_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
@@ -303 +303 @@
-index 462bc3b50d..413d275853 100644
+index 7941197b77..14cf7edd2b 100644
@@ -374 +374 @@
-index cf99268c43..1f997ce22f 100644
+index 5c38d69934..3d7e2e5591 100644


More information about the stable mailing list