|WARNING| pw113140-113151 [PATCH] [12/12] net/nfp: add flower PF rxtx logic

dpdklab at iol.unh.edu dpdklab at iol.unh.edu
Tue Jun 21 10:40:37 CEST 2022


Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/113140

_apply patch failure_

Submitter: Chaoyong He <chaoyong.he at corigine.com>
Date: Tuesday, June 21 2022 08:08:39 
Applied on: CommitID:a1b2afe431d80ab65b2ed9889a61ead335e53299
Apply patch set 113140-113151 failed:

Checking patch drivers/net/nfp/nfp_common.h...
Hunk #1 succeeded at 104 (offset -7 lines).
Hunk #2 succeeded at 122 (offset -7 lines).
Hunk #3 succeeded at 154 (offset -7 lines).
Hunk #4 succeeded at 162 (offset -7 lines).
Hunk #5 succeeded at 422 (offset -24 lines).
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: while searching for:
#include "nfp_cpp_bridge.h"

static int
nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port)
{
	struct nfp_eth_table *nfp_eth_table;
	struct nfp_net_hw *hw = NULL;

	/* Grab a pointer to the correct physical port */
	hw = pf_dev->ports[port];

	nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);

	nfp_eth_copy_mac((uint8_t *)&hw->mac_addr,
			 (uint8_t *)&nfp_eth_table->ports[port].mac_addr);

error: patch failed: drivers/net/nfp/nfp_ethdev.c:39
Hunk #2 succeeded at 86 (offset 22 lines).
Hunk #3 succeeded at 94 (offset 22 lines).
Hunk #4 succeeded at 106 (offset 22 lines).
error: while searching for:
	struct nfp_net_hw *hw;
	struct rte_pci_device *pci_dev;
	struct nfp_pf_dev *pf_dev;
	int i;

	if (rte_eal_process_type() != RTE_PROC_PRIMARY)

error: patch failed: drivers/net/nfp/nfp_ethdev.c:250
Hunk #6 succeeded at 292 (offset 29 lines).
Hunk #7 succeeded at 321 (offset 37 lines).
Hunk #8 succeeded at 337 (offset 37 lines).
error: while searching for:
{
	struct rte_pci_device *pci_dev;
	struct nfp_pf_dev *pf_dev;
	struct nfp_net_hw *hw;
	struct rte_ether_addr *tmp_ether_addr;
	uint64_t rx_bar_off = 0;

error: patch failed: drivers/net/nfp/nfp_ethdev.c:404
error: while searching for:
	/* Use backpointer here to the PF of this eth_dev */
	pf_dev = NFP_NET_DEV_PRIVATE_TO_PF(eth_dev->data->dev_private);

	/* NFP can not handle DMA addresses requiring more than 40 bits */
	if (rte_mem_check_dma_mask(40)) {
		RTE_LOG(ERR, PMD,

error: patch failed: drivers/net/nfp/nfp_ethdev.c:420
error: while searching for:
	 * Use PF array of physical ports to get pointer to
	 * this specific port
	 */
	hw = pf_dev->ports[port];

	PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, "
			"NFP internal port number: %d", port, hw->nfp_idx);

error: patch failed: drivers/net/nfp/nfp_ethdev.c:438
Hunk #12 succeeded at 556 (offset -21 lines).
error: while searching for:
}

static int
nfp_init_phyports(struct nfp_pf_dev *pf_dev)
{
	int i;
	int ret = 0;
	struct nfp_net_hw *hw;
	struct rte_eth_dev *eth_dev;
	struct nfp_eth_table *nfp_eth_table;

	nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
	if (nfp_eth_table == NULL) {
		PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
		return -EIO;
	}

	/* Loop through all physical ports on PF */
	for (i = 0; i < pf_dev->total_phyports; i++) {
		const unsigned int numa_node = rte_socket_id();
		char port_name[RTE_ETH_NAME_MAX_LEN];

		snprintf(port_name, sizeof(port_name), "%s_port%d",
			 pf_dev->pci_dev->device.name, i);


error: patch failed: drivers/net/nfp/nfp_ethdev.c:718
Hunk #14 succeeded at 748 (offset -63 lines).
error: while searching for:
		rte_eth_dev_probing_finish(eth_dev);

	} /* End loop, all ports on this PF */
	ret = 0;
	goto eth_table_cleanup;

port_cleanup:
	for (i = 0; i < pf_dev->total_phyports; i++) {
		if (pf_dev->ports[i] && pf_dev->ports[i]->eth_dev) {
			struct rte_eth_dev *tmp_dev;
			tmp_dev = pf_dev->ports[i]->eth_dev;
			rte_eth_dev_release_port(tmp_dev);
			pf_dev->ports[i] = NULL;
		}
	}
eth_table_cleanup:
	free(nfp_eth_table);

	return ret;
}

error: patch failed: drivers/net/nfp/nfp_ethdev.c:783
error: while searching for:
static int
nfp_pf_init(struct rte_pci_device *pci_dev)
{
	int err;
	int ret = 0;
	uint64_t addr;
	int total_ports;
	struct nfp_cpp *cpp;
	struct nfp_pf_dev *pf_dev;
	struct nfp_hwinfo *hwinfo;
	char name[RTE_ETH_NAME_MAX_LEN];

error: patch failed: drivers/net/nfp/nfp_ethdev.c:804
error: while searching for:
	if (hwinfo == NULL) {
		PMD_INIT_LOG(ERR, "Error reading hwinfo table");
		ret = -EIO;
		goto error;
	}

	nfp_eth_table = nfp_eth_read_ports(cpp);
	if (nfp_eth_table == NULL) {
		PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");

error: patch failed: drivers/net/nfp/nfp_ethdev.c:840
Hunk #18 succeeded at 852 (offset -66 lines).
error: while searching for:
	}

	/* Populate the newly created PF device */
	pf_dev->cpp = cpp;
	pf_dev->hwinfo = hwinfo;
	pf_dev->sym_tbl = sym_tbl;
	pf_dev->total_phyports = total_ports;

	if (total_ports > 1)
		pf_dev->multiport = true;

	pf_dev->pci_dev = pci_dev;

	/* Map the symbol table */
	pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
			pf_dev->total_phyports * 32768, &pf_dev->ctrl_area);
	if (pf_dev->ctrl_bar == NULL) {
		PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
		ret = -EIO;
		goto pf_cleanup;
	}

	PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);

	/* configure access to tx/rx vNIC BARs */
	switch (pci_dev->id.device_id) {
	case PCI_DEVICE_ID_NFP3800_PF_NIC:

error: patch failed: drivers/net/nfp/nfp_ethdev.c:888
error: while searching for:
	default:
		PMD_INIT_LOG(ERR, "nfp_net: no device ID matching");
		err = -ENODEV;
		goto ctrl_area_cleanup;
	}

	pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0,

error: patch failed: drivers/net/nfp/nfp_ethdev.c:923
error: while searching for:
	if (pf_dev->hw_queues == NULL) {
		PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc");
		ret = -EIO;
		goto ctrl_area_cleanup;
	}

	PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues);

	/*
	 * Initialize and prep physical ports now
	 * This will loop through all physical ports
	 */
	ret = nfp_init_phyports(pf_dev);
	if (ret) {
		PMD_INIT_LOG(ERR, "Could not create physical ports");
		goto hwqueues_cleanup;
	}


error: patch failed: drivers/net/nfp/nfp_ethdev.c:932
Hunk #22 succeeded at 920 (offset -75 lines).
Hunk #23 succeeded at 928 (offset -75 lines).
error: while searching for:
nfp_pf_secondary_init(struct rte_pci_device *pci_dev)
{
	int i;
	int err;
	int total_ports;
	struct nfp_cpp *cpp;
	struct nfp_net_hw *hw;

error: patch failed: drivers/net/nfp/nfp_ethdev.c:977
Hunk #25 succeeded at 979 (offset -78 lines).
error: while searching for:
		if (eth_dev == NULL) {
			RTE_LOG(ERR, EAL,
				"secondary process attach failed, ethdev doesn't exist");
			return -ENODEV;
		}

		hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);

error: patch failed: drivers/net/nfp/nfp_ethdev.c:1028
error: while searching for:
		rte_eth_dev_probing_finish(eth_dev);
	}

	/* Register the CPP bridge service for the secondary too */
	nfp_register_cpp_service(cpp);

	return 0;
}

static int

error: patch failed: drivers/net/nfp/nfp_ethdev.c:1041
Applied patch drivers/net/nfp/nfp_common.h cleanly.
Applying patch drivers/net/nfp/nfp_ethdev.c with 15 rejects...
Rejected hunk #1.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Hunk #6 applied cleanly.
Hunk #7 applied cleanly.
Hunk #8 applied cleanly.
Rejected hunk #9.
Rejected hunk #10.
Rejected hunk #11.
Hunk #12 applied cleanly.
Rejected hunk #13.
Hunk #14 applied cleanly.
Rejected hunk #15.
Rejected hunk #16.
Rejected hunk #17.
Hunk #18 applied cleanly.
Rejected hunk #19.
Rejected hunk #20.
Rejected hunk #21.
Hunk #22 applied cleanly.
Hunk #23 applied cleanly.
Rejected hunk #24.
Hunk #25 applied cleanly.
Rejected hunk #26.
Rejected hunk #27.
diff a/drivers/net/nfp/nfp_ethdev.c b/drivers/net/nfp/nfp_ethdev.c	(rejected hunks)
@@ -39,15 +39,15 @@
 #include "nfp_cpp_bridge.h"
 
 static int
-nfp_net_pf_read_mac(struct nfp_pf_dev *pf_dev, int port)
+nfp_net_pf_read_mac(struct nfp_app_nic *app_nic, int port)
 {
 	struct nfp_eth_table *nfp_eth_table;
 	struct nfp_net_hw *hw = NULL;
 
 	/* Grab a pointer to the correct physical port */
-	hw = pf_dev->ports[port];
+	hw = app_nic->ports[port];
 
-	nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
+	nfp_eth_table = nfp_eth_read_ports(app_nic->pf_dev->cpp);
 
 	nfp_eth_copy_mac((uint8_t *)&hw->mac_addr,
 			 (uint8_t *)&nfp_eth_table->ports[port].mac_addr);
@@ -250,6 +252,7 @@
 	struct nfp_net_hw *hw;
 	struct rte_pci_device *pci_dev;
 	struct nfp_pf_dev *pf_dev;
+	struct nfp_app_nic *app_nic;
 	int i;
 
 	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
@@ -404,6 +409,7 @@
 {
 	struct rte_pci_device *pci_dev;
 	struct nfp_pf_dev *pf_dev;
+	struct nfp_app_nic *app_nic;
 	struct nfp_net_hw *hw;
 	struct rte_ether_addr *tmp_ether_addr;
 	uint64_t rx_bar_off = 0;
@@ -420,6 +426,9 @@
 	/* Use backpointer here to the PF of this eth_dev */
 	pf_dev = NFP_NET_DEV_PRIVATE_TO_PF(eth_dev->data->dev_private);
 
+	/* Use backpointer to the CoreNIC app struct */
+	app_nic = NFP_APP_PRIV_TO_APP_NIC(pf_dev->app_priv);
+
 	/* NFP can not handle DMA addresses requiring more than 40 bits */
 	if (rte_mem_check_dma_mask(40)) {
 		RTE_LOG(ERR, PMD,
@@ -438,7 +447,7 @@
 	 * Use PF array of physical ports to get pointer to
 	 * this specific port
 	 */
-	hw = pf_dev->ports[port];
+	hw = app_nic->ports[port];
 
 	PMD_INIT_LOG(DEBUG, "Working with physical port number: %d, "
 			"NFP internal port number: %d", port, hw->nfp_idx);
@@ -718,25 +727,67 @@
 }
 
 static int
-nfp_init_phyports(struct nfp_pf_dev *pf_dev)
+nfp_init_app_nic(struct nfp_pf_dev *pf_dev,
+		struct nfp_eth_table *nfp_eth_table)
 {
 	int i;
-	int ret = 0;
+	int ret;
+	int err = 0;
+	int total_vnics;
 	struct nfp_net_hw *hw;
+	unsigned int numa_node;
 	struct rte_eth_dev *eth_dev;
-	struct nfp_eth_table *nfp_eth_table;
+	struct nfp_app_nic *app_nic;
+	char port_name[RTE_ETH_NAME_MAX_LEN];
 
-	nfp_eth_table = nfp_eth_read_ports(pf_dev->cpp);
-	if (nfp_eth_table == NULL) {
-		PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
-		return -EIO;
+	PMD_INIT_LOG(INFO, "Total physical ports: %d", nfp_eth_table->count);
+
+	/* Allocate memory for the CoreNIC app */
+	app_nic = rte_zmalloc("nfp_app_nic", sizeof(*app_nic), 0);
+	if (app_nic == NULL)
+		return -ENOMEM;
+
+	/* Point the app_priv pointer in the PF to the coreNIC app */
+	pf_dev->app_priv = app_nic;
+
+	/* Read the number of vNIC's created for the PF */
+	total_vnics = nfp_rtsym_read_le(pf_dev->sym_tbl, "nfd_cfg_pf0_num_ports", &err);
+	if (err || total_vnics <= 0 || total_vnics > 8) {
+		PMD_INIT_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value");
+		ret = -ENODEV;
+		goto app_cleanup;
 	}
 
-	/* Loop through all physical ports on PF */
-	for (i = 0; i < pf_dev->total_phyports; i++) {
-		const unsigned int numa_node = rte_socket_id();
-		char port_name[RTE_ETH_NAME_MAX_LEN];
+	/*
+	 * For coreNIC the number of vNICs exposed should be the same as the
+	 * number of physical ports
+	 */
+	if (total_vnics != (int)nfp_eth_table->count) {
+		PMD_INIT_LOG(ERR, "Total physical ports do not match number of vNICs");
+		ret = -ENODEV;
+		goto app_cleanup;
+	}
 
+	/* Populate coreNIC app properties*/
+	app_nic->total_phyports = total_vnics;
+	app_nic->pf_dev = pf_dev;
+	if (total_vnics > 1)
+		app_nic->multiport = true;
+
+	/* Map the symbol table */
+	pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
+			app_nic->total_phyports * 32768, &pf_dev->ctrl_area);
+	if (pf_dev->ctrl_bar == NULL) {
+		PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
+		ret = -EIO;
+		goto app_cleanup;
+	}
+
+	PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);
+
+	/* Loop through all physical ports on PF */
+	numa_node = rte_socket_id();
+	for (i = 0; i < app_nic->total_phyports; i++) {
 		snprintf(port_name, sizeof(port_name), "%s_port%d",
 			 pf_dev->pci_dev->device.name, i);
 
@@ -783,20 +834,21 @@
 		rte_eth_dev_probing_finish(eth_dev);
 
 	} /* End loop, all ports on this PF */
-	ret = 0;
-	goto eth_table_cleanup;
+
+	return 0;
 
 port_cleanup:
-	for (i = 0; i < pf_dev->total_phyports; i++) {
-		if (pf_dev->ports[i] && pf_dev->ports[i]->eth_dev) {
+	for (i = 0; i < app_nic->total_phyports; i++) {
+		if (app_nic->ports[i] && app_nic->ports[i]->eth_dev) {
 			struct rte_eth_dev *tmp_dev;
-			tmp_dev = pf_dev->ports[i]->eth_dev;
+			tmp_dev = app_nic->ports[i]->eth_dev;
 			rte_eth_dev_release_port(tmp_dev);
-			pf_dev->ports[i] = NULL;
+			app_nic->ports[i] = NULL;
 		}
 	}
-eth_table_cleanup:
-	free(nfp_eth_table);
+	nfp_cpp_area_free(pf_dev->ctrl_area);
+app_cleanup:
+	rte_free(app_nic);
 
 	return ret;
 }
@@ -804,11 +856,11 @@
 static int
 nfp_pf_init(struct rte_pci_device *pci_dev)
 {
-	int err;
-	int ret = 0;
+	int ret;
+	int err = 0;
 	uint64_t addr;
-	int total_ports;
 	struct nfp_cpp *cpp;
+	enum nfp_app_id app_id;
 	struct nfp_pf_dev *pf_dev;
 	struct nfp_hwinfo *hwinfo;
 	char name[RTE_ETH_NAME_MAX_LEN];
@@ -840,9 +892,10 @@
 	if (hwinfo == NULL) {
 		PMD_INIT_LOG(ERR, "Error reading hwinfo table");
 		ret = -EIO;
-		goto error;
+		goto cpp_cleanup;
 	}
 
+	/* Read the number of physical ports from hardware */
 	nfp_eth_table = nfp_eth_read_ports(cpp);
 	if (nfp_eth_table == NULL) {
 		PMD_INIT_LOG(ERR, "Error reading NFP ethernet table");
@@ -888,27 +935,12 @@
 	}
 
 	/* Populate the newly created PF device */
+	pf_dev->app_id = app_id;
 	pf_dev->cpp = cpp;
 	pf_dev->hwinfo = hwinfo;
 	pf_dev->sym_tbl = sym_tbl;
-	pf_dev->total_phyports = total_ports;
-
-	if (total_ports > 1)
-		pf_dev->multiport = true;
-
 	pf_dev->pci_dev = pci_dev;
 
-	/* Map the symbol table */
-	pf_dev->ctrl_bar = nfp_rtsym_map(pf_dev->sym_tbl, "_pf0_net_bar0",
-			pf_dev->total_phyports * 32768, &pf_dev->ctrl_area);
-	if (pf_dev->ctrl_bar == NULL) {
-		PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for _pf0_net_ctrl_bar");
-		ret = -EIO;
-		goto pf_cleanup;
-	}
-
-	PMD_INIT_LOG(DEBUG, "ctrl bar: %p", pf_dev->ctrl_bar);
-
 	/* configure access to tx/rx vNIC BARs */
 	switch (pci_dev->id.device_id) {
 	case PCI_DEVICE_ID_NFP3800_PF_NIC:
@@ -923,7 +955,7 @@
 	default:
 		PMD_INIT_LOG(ERR, "nfp_net: no device ID matching");
 		err = -ENODEV;
-		goto ctrl_area_cleanup;
+		goto pf_cleanup;
 	}
 
 	pf_dev->hw_queues = nfp_cpp_map_area(pf_dev->cpp, 0, 0,
@@ -932,18 +964,27 @@
 	if (pf_dev->hw_queues == NULL) {
 		PMD_INIT_LOG(ERR, "nfp_rtsym_map fails for net.qc");
 		ret = -EIO;
-		goto ctrl_area_cleanup;
+		goto pf_cleanup;
 	}
 
 	PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p", pf_dev->hw_queues);
 
 	/*
-	 * Initialize and prep physical ports now
-	 * This will loop through all physical ports
+	 * PF initialization has been done at this point. Call app specific
+	 * init code now
 	 */
-	ret = nfp_init_phyports(pf_dev);
-	if (ret) {
-		PMD_INIT_LOG(ERR, "Could not create physical ports");
+	switch (pf_dev->app_id) {
+	case NFP_APP_CORE_NIC:
+		PMD_INIT_LOG(INFO, "Initializing coreNIC");
+		ret = nfp_init_app_nic(pf_dev, nfp_eth_table);
+		if (ret) {
+			PMD_INIT_LOG(ERR, "Could not initialize coreNIC!");
+			goto hwqueues_cleanup;
+		}
+		break;
+	default:
+		PMD_INIT_LOG(ERR, "Unsupported Firmware loaded");
+		ret = -EINVAL;
 		goto hwqueues_cleanup;
 	}
 
@@ -977,7 +1018,8 @@
 nfp_pf_secondary_init(struct rte_pci_device *pci_dev)
 {
 	int i;
-	int err;
+	int err = 0;
+	int ret = 0;
 	int total_ports;
 	struct nfp_cpp *cpp;
 	struct nfp_net_hw *hw;
@@ -1028,7 +1075,8 @@
 		if (eth_dev == NULL) {
 			RTE_LOG(ERR, EAL,
 				"secondary process attach failed, ethdev doesn't exist");
-			return -ENODEV;
+			ret = -ENODEV;
+			break;
 		}
 
 		hw = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -1041,10 +1089,16 @@
 		rte_eth_dev_probing_finish(eth_dev);
 	}
 
+	if (ret)
+		goto sym_tbl_cleanup;
+
 	/* Register the CPP bridge service for the secondary too */
 	nfp_register_cpp_service(cpp);
 
-	return 0;
+sym_tbl_cleanup:
+	free(sym_tbl);
+
+	return ret;
 }
 
 static int
Checking patch drivers/net/nfp/nfp_common.h...
error: drivers/net/nfp/nfp_common.h: does not match index
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/flower/nfp_flower.c...
Checking patch drivers/net/nfp/flower/nfp_flower.h...
Checking patch drivers/net/nfp/meson.build...
Checking patch drivers/net/nfp/nfp_cpp_bridge.c...
Checking patch drivers/net/nfp/nfp_cpp_bridge.h...
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower.h cleanly.
Applied patch drivers/net/nfp/meson.build cleanly.
Applied patch drivers/net/nfp/nfp_cpp_bridge.c cleanly.
Applied patch drivers/net/nfp/nfp_cpp_bridge.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_ovs_compat.h...
Checking patch drivers/net/nfp/nfp_common.h...
error: drivers/net/nfp/nfp_common.h: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower_ovs_compat.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/nfp_rxtx.c...
Hunk #1 succeeded at 134 (offset 18 lines).
Hunk #2 succeeded at 595 (offset 18 lines).
error: while searching for:
	return 0;
}

/* Leaving always free descriptors for avoiding wrapping confusion */
static inline
uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq)
{
	if (txq->wr_p >= txq->rd_p)
		return txq->tx_count - (txq->wr_p - txq->rd_p) - 8;
	else
		return txq->rd_p - txq->wr_p - 8;
}

/*
 * nfp_net_txq_full - Check if the TX queue free descriptors
 * is below tx_free_threshold
 *
 * @txq: TX queue to check
 *
 * This function uses the host copy* of read/write pointers
 */
static inline
uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq)
{
	return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh);
}

/* nfp_net_tx_tso - Set TX descriptor for TSO */
static inline void
nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd,

error: patch failed: drivers/net/nfp/nfp_rxtx.c:774
Checking patch drivers/net/nfp/nfp_rxtx.h...
Hunk #1 succeeded at 274 (offset -56 lines).
error: while searching for:
uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue,
		struct rte_mbuf **tx_pkts,
		uint16_t nb_pkts);

#endif /* _NFP_RXTX_H_ */
/*

error: patch failed: drivers/net/nfp/nfp_rxtx.h:355
Applying patch drivers/net/nfp/nfp_rxtx.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Rejected hunk #3.
Applying patch drivers/net/nfp/nfp_rxtx.h with 1 reject...
Hunk #1 applied cleanly.
Rejected hunk #2.
diff a/drivers/net/nfp/nfp_rxtx.c b/drivers/net/nfp/nfp_rxtx.c	(rejected hunks)
@@ -774,30 +768,6 @@
 	return 0;
 }
 
-/* Leaving always free descriptors for avoiding wrapping confusion */
-static inline
-uint32_t nfp_net_nfd3_free_tx_desc(struct nfp_net_txq *txq)
-{
-	if (txq->wr_p >= txq->rd_p)
-		return txq->tx_count - (txq->wr_p - txq->rd_p) - 8;
-	else
-		return txq->rd_p - txq->wr_p - 8;
-}
-
-/*
- * nfp_net_txq_full - Check if the TX queue free descriptors
- * is below tx_free_threshold
- *
- * @txq: TX queue to check
- *
- * This function uses the host copy* of read/write pointers
- */
-static inline
-uint32_t nfp_net_nfd3_txq_full(struct nfp_net_txq *txq)
-{
-	return (nfp_net_nfd3_free_tx_desc(txq) < txq->tx_free_thresh);
-}
-
 /* nfp_net_tx_tso - Set TX descriptor for TSO */
 static inline void
 nfp_net_nfd3_tx_tso(struct nfp_net_txq *txq, struct nfp_net_nfd3_tx_desc *txd,
diff a/drivers/net/nfp/nfp_rxtx.h b/drivers/net/nfp/nfp_rxtx.h	(rejected hunks)
@@ -355,6 +385,7 @@ int nfp_net_nfdk_tx_queue_setup(struct rte_eth_dev *dev,
 uint16_t nfp_net_nfdk_xmit_pkts(void *tx_queue,
 		struct rte_mbuf **tx_pkts,
 		uint16_t nb_pkts);
+int nfp_net_tx_free_bufs(struct nfp_net_txq *txq);
 
 #endif /* _NFP_RXTX_H_ */
 /*
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_ctrl.c...
Checking patch drivers/net/nfp/flower/nfp_flower_ctrl.h...
Checking patch drivers/net/nfp/meson.build...
error: drivers/net/nfp/meson.build: does not match index
Applied patch drivers/net/nfp/flower/nfp_flower_ctrl.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_ctrl.h cleanly.
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower_cmsg.c...
Checking patch drivers/net/nfp/flower/nfp_flower_cmsg.h...
Checking patch drivers/net/nfp/flower/nfp_flower_representor.c...
Checking patch drivers/net/nfp/flower/nfp_flower_representor.h...
Checking patch drivers/net/nfp/meson.build...
error: drivers/net/nfp/meson.build: does not match index
Checking patch drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c...
Applied patch drivers/net/nfp/flower/nfp_flower_cmsg.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_cmsg.h cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_representor.c cleanly.
Applied patch drivers/net/nfp/flower/nfp_flower_representor.h cleanly.
Applied patch drivers/net/nfp/nfpcore/nfp_cpp_pcie_ops.c cleanly.
Checking patch drivers/net/nfp/nfp_common.c...
Checking patch drivers/net/nfp/nfp_ethdev.c...
error: drivers/net/nfp/nfp_ethdev.c: does not match index
Checking patch drivers/net/nfp/nfp_ethdev_vf.c...
error: while searching for:
#include "nfpcore/nfp_rtsym.h"

#include "nfp_common.h"
#include "nfp_rxtx.h"
#include "nfp_logs.h"
#include "nfp_ctrl.h"

static void
nfp_netvf_read_mac(struct nfp_net_hw *hw)

error: patch failed: drivers/net/nfp/nfp_ethdev_vf.c:19
Checking patch drivers/net/nfp/nfp_rxtx.c...
error: drivers/net/nfp/nfp_rxtx.c: does not match index
Checking patch drivers/net/nfp/nfp_rxtx.h...
error: drivers/net/nfp/nfp_rxtx.h: does not match index
Applied patch drivers/net/nfp/nfp_common.c cleanly.
Applying patch drivers/net/nfp/nfp_ethdev_vf.c with 1 reject...
Rejected hunk #1.
diff a/drivers/net/nfp/nfp_ethdev_vf.c b/drivers/net/nfp/nfp_ethdev_vf.c	(rejected hunks)
@@ -19,9 +19,9 @@
 #include "nfpcore/nfp_rtsym.h"
 
 #include "nfp_common.h"
+#include "nfp_ctrl.h"
 #include "nfp_rxtx.h"
 #include "nfp_logs.h"
-#include "nfp_ctrl.h"
 
 static void
 nfp_netvf_read_mac(struct nfp_net_hw *hw)
Checking patch drivers/net/nfp/flower/nfp_flower.c...
error: drivers/net/nfp/flower/nfp_flower.c: does not exist in index
Checking patch drivers/net/nfp/flower/nfp_flower.h...
error: drivers/net/nfp/flower/nfp_flower.h: does not exist in index

https://lab.dpdk.org/results/dashboard/patchsets/22710/

UNH-IOL DPDK Community Lab


More information about the test-report mailing list