patches for DPDK stable branches
 help / color / mirror / Atom feed
From: luca.boccassi@gmail.com
To: Dengdui Huang <huangdengdui@huawei.com>
Cc: Jie Hai <haijie1@huawei.com>, dpdk stable <stable@dpdk.org>
Subject: patch 'net/hns3: refactor send mailbox function' has been queued to stable release 22.11.5
Date: Thu,  7 Mar 2024 01:31:20 +0000	[thread overview]
Message-ID: <20240307013159.1735343-63-luca.boccassi@gmail.com> (raw)
In-Reply-To: <20240307013159.1735343-1-luca.boccassi@gmail.com>

Hi,

FYI, your patch has been queued to stable release 22.11.5

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/09/24. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/5371898fa5ba35e87feb8fd5892f6bada19be220

Thanks.

Luca Boccassi

---
From 5371898fa5ba35e87feb8fd5892f6bada19be220 Mon Sep 17 00:00:00 2001
From: Dengdui Huang <huangdengdui@huawei.com>
Date: Fri, 8 Dec 2023 14:55:07 +0800
Subject: [PATCH] net/hns3: refactor send mailbox function

[ upstream commit c9bd98d84587dbc0dddb8964ad3d7d54818aca01 ]

The 'hns3_send_mbx_msg' function has following problem:
1. the name is vague, missing caller indication
2. too many input parameters because the filling messages
   are placed in commands the send command.

Therefore, a common interface is encapsulated to fill in
the mailbox message before sending it.

Fixes: 463e748964f5 ("net/hns3: support mailbox")

Signed-off-by: Dengdui Huang <huangdengdui@huawei.com>
Signed-off-by: Jie Hai <haijie1@huawei.com>
---
 drivers/net/hns3/hns3_ethdev_vf.c | 141 ++++++++++++++++++------------
 drivers/net/hns3/hns3_mbx.c       |  50 ++++-------
 drivers/net/hns3/hns3_mbx.h       |   8 +-
 drivers/net/hns3/hns3_rxtx.c      |  18 ++--
 4 files changed, 116 insertions(+), 101 deletions(-)

diff --git a/drivers/net/hns3/hns3_ethdev_vf.c b/drivers/net/hns3/hns3_ethdev_vf.c
index 2fdd684dcd..acf33db542 100644
--- a/drivers/net/hns3/hns3_ethdev_vf.c
+++ b/drivers/net/hns3/hns3_ethdev_vf.c
@@ -172,11 +172,13 @@ hns3vf_add_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
 {
 	/* mac address was checked by upper level interface */
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_UNICAST,
-				HNS3_MBX_MAC_VLAN_UC_ADD, mac_addr->addr_bytes,
-				RTE_ETHER_ADDR_LEN, false, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_UNICAST,
+			 HNS3_MBX_MAC_VLAN_UC_ADD);
+	memcpy(req.data, mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret) {
 		hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
 				      mac_addr);
@@ -191,12 +193,13 @@ hns3vf_remove_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
 {
 	/* mac address was checked by upper level interface */
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_UNICAST,
-				HNS3_MBX_MAC_VLAN_UC_REMOVE,
-				mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN,
-				false, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_UNICAST,
+			 HNS3_MBX_MAC_VLAN_UC_REMOVE);
+	memcpy(req.data, mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret) {
 		hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
 				       mac_addr);
@@ -215,6 +218,7 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
 	struct rte_ether_addr *old_addr;
 	uint8_t addr_bytes[HNS3_TWO_ETHER_ADDR_LEN]; /* for 2 MAC addresses */
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
 	/*
@@ -227,9 +231,10 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
 	memcpy(&addr_bytes[RTE_ETHER_ADDR_LEN], old_addr->addr_bytes,
 	       RTE_ETHER_ADDR_LEN);
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_UNICAST,
-				HNS3_MBX_MAC_VLAN_UC_MODIFY, addr_bytes,
-				HNS3_TWO_ETHER_ADDR_LEN, true, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_UNICAST,
+			 HNS3_MBX_MAC_VLAN_UC_MODIFY);
+	memcpy(req.data, addr_bytes, HNS3_TWO_ETHER_ADDR_LEN);
+	ret = hns3vf_mbx_send(hw, &req, true, NULL, 0);
 	if (ret) {
 		/*
 		 * The hns3 VF PMD depends on the hns3 PF kernel ethdev
@@ -266,12 +271,13 @@ hns3vf_add_mc_mac_addr(struct hns3_hw *hw,
 		       struct rte_ether_addr *mac_addr)
 {
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_MULTICAST,
-				HNS3_MBX_MAC_VLAN_MC_ADD,
-				mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN, false,
-				NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_MULTICAST,
+			 HNS3_MBX_MAC_VLAN_MC_ADD);
+	memcpy(req.data, mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret) {
 		hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
 				      mac_addr);
@@ -287,12 +293,13 @@ hns3vf_remove_mc_mac_addr(struct hns3_hw *hw,
 			  struct rte_ether_addr *mac_addr)
 {
 	char mac_str[RTE_ETHER_ADDR_FMT_SIZE];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_MULTICAST,
-				HNS3_MBX_MAC_VLAN_MC_REMOVE,
-				mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN, false,
-				NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_MULTICAST,
+			 HNS3_MBX_MAC_VLAN_MC_REMOVE);
+	memcpy(req.data, mac_addr->addr_bytes, RTE_ETHER_ADDR_LEN);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret) {
 		hns3_ether_format_addr(mac_str, RTE_ETHER_ADDR_FMT_SIZE,
 				       mac_addr);
@@ -429,7 +436,6 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
 			     bool mmap, enum hns3_ring_type queue_type,
 			     uint16_t queue_id)
 {
-#define HNS3_RING_VERCTOR_DATA_SIZE	14
 	struct hns3_vf_to_pf_msg req = {0};
 	const char *op_str;
 	int ret;
@@ -446,8 +452,7 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
 	req.ring_param[0].ring_type = queue_type;
 	req.ring_param[0].tqp_index = queue_id;
 	op_str = mmap ? "Map" : "Unmap";
-	ret = hns3_send_mbx_msg(hw, req.code, 0, (uint8_t *)&req.vector_id,
-				HNS3_RING_VERCTOR_DATA_SIZE, false, NULL, 0);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret)
 		hns3_err(hw, "%s TQP %u fail, vector_id is %u, ret = %d.",
 			 op_str, queue_id, req.vector_id, ret);
@@ -533,10 +538,12 @@ cfg_err:
 static int
 hns3vf_config_mtu(struct hns3_hw *hw, uint16_t mtu)
 {
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_MTU, 0, (const uint8_t *)&mtu,
-				sizeof(mtu), true, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_MTU, 0);
+	memcpy(req.data, &mtu, sizeof(mtu));
+	ret = hns3vf_mbx_send(hw, &req, true, NULL, 0);
 	if (ret)
 		hns3_err(hw, "Failed to set mtu (%u) for vf: %d", mtu, ret);
 
@@ -727,12 +734,13 @@ hns3vf_get_push_lsc_cap(struct hns3_hw *hw)
 	uint16_t val = HNS3_PF_PUSH_LSC_CAP_NOT_SUPPORTED;
 	uint16_t exp = HNS3_PF_PUSH_LSC_CAP_UNKNOWN;
 	struct hns3_vf *vf = HNS3_DEV_HW_TO_VF(hw);
+	struct hns3_vf_to_pf_msg req;
 
 	__atomic_store_n(&vf->pf_push_lsc_cap, HNS3_PF_PUSH_LSC_CAP_UNKNOWN,
 			 __ATOMIC_RELEASE);
 
-	(void)hns3_send_mbx_msg(hw, HNS3_MBX_GET_LINK_STATUS, 0, NULL, 0, false,
-				NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_GET_LINK_STATUS, 0);
+	(void)hns3vf_mbx_send(hw, &req, false, NULL, 0);
 
 	while (remain_ms > 0) {
 		rte_delay_ms(HNS3_POLL_RESPONE_MS);
@@ -827,12 +835,13 @@ hns3vf_check_tqp_info(struct hns3_hw *hw)
 static int
 hns3vf_get_port_base_vlan_filter_state(struct hns3_hw *hw)
 {
+	struct hns3_vf_to_pf_msg req;
 	uint8_t resp_msg;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_VLAN,
-				HNS3_MBX_GET_PORT_BASE_VLAN_STATE, NULL, 0,
-				true, &resp_msg, sizeof(resp_msg));
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_VLAN,
+			 HNS3_MBX_GET_PORT_BASE_VLAN_STATE);
+	ret = hns3vf_mbx_send(hw, &req, true, &resp_msg, sizeof(resp_msg));
 	if (ret) {
 		if (ret == -ETIME) {
 			/*
@@ -873,10 +882,12 @@ hns3vf_get_queue_info(struct hns3_hw *hw)
 {
 #define HNS3VF_TQPS_RSS_INFO_LEN	6
 	uint8_t resp_msg[HNS3VF_TQPS_RSS_INFO_LEN];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_GET_QINFO, 0, NULL, 0, true,
-				resp_msg, HNS3VF_TQPS_RSS_INFO_LEN);
+	hns3vf_mbx_setup(&req, HNS3_MBX_GET_QINFO, 0);
+	ret = hns3vf_mbx_send(hw, &req, true,
+			      resp_msg, HNS3VF_TQPS_RSS_INFO_LEN);
 	if (ret) {
 		PMD_INIT_LOG(ERR, "Failed to get tqp info from PF: %d", ret);
 		return ret;
@@ -914,10 +925,11 @@ hns3vf_get_basic_info(struct hns3_hw *hw)
 {
 	uint8_t resp_msg[HNS3_MBX_MAX_RESP_DATA_SIZE];
 	struct hns3_basic_info *basic_info;
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_GET_BASIC_INFO, 0, NULL, 0,
-				true, resp_msg, sizeof(resp_msg));
+	hns3vf_mbx_setup(&req, HNS3_MBX_GET_BASIC_INFO, 0);
+	ret = hns3vf_mbx_send(hw, &req, true, resp_msg, sizeof(resp_msg));
 	if (ret) {
 		hns3_err(hw, "failed to get basic info from PF, ret = %d.",
 				ret);
@@ -937,10 +949,11 @@ static int
 hns3vf_get_host_mac_addr(struct hns3_hw *hw)
 {
 	uint8_t host_mac[RTE_ETHER_ADDR_LEN];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_GET_MAC_ADDR, 0, NULL, 0,
-				true, host_mac, RTE_ETHER_ADDR_LEN);
+	hns3vf_mbx_setup(&req, HNS3_MBX_GET_MAC_ADDR, 0);
+	ret = hns3vf_mbx_send(hw, &req, true, host_mac, RTE_ETHER_ADDR_LEN);
 	if (ret) {
 		hns3_err(hw, "Failed to get mac addr from PF: %d", ret);
 		return ret;
@@ -989,6 +1002,7 @@ static void
 hns3vf_request_link_info(struct hns3_hw *hw)
 {
 	struct hns3_vf *vf = HNS3_DEV_HW_TO_VF(hw);
+	struct hns3_vf_to_pf_msg req;
 	bool send_req;
 	int ret;
 
@@ -1000,8 +1014,8 @@ hns3vf_request_link_info(struct hns3_hw *hw)
 	if (!send_req)
 		return;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_GET_LINK_STATUS, 0, NULL, 0, false,
-				NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_GET_LINK_STATUS, 0);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret) {
 		hns3_err(hw, "failed to fetch link status, ret = %d", ret);
 		return;
@@ -1045,16 +1059,18 @@ hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
 static int
 hns3vf_vlan_filter_configure(struct hns3_adapter *hns, uint16_t vlan_id, int on)
 {
-	struct hns3_mbx_vlan_filter vlan_filter = {0};
+	struct hns3_mbx_vlan_filter *vlan_filter;
+	struct hns3_vf_to_pf_msg req = {0};
 	struct hns3_hw *hw = &hns->hw;
 
-	vlan_filter.is_kill = on ? 0 : 1;
-	vlan_filter.proto = rte_cpu_to_le_16(RTE_ETHER_TYPE_VLAN);
-	vlan_filter.vlan_id =  rte_cpu_to_le_16(vlan_id);
+	req.code = HNS3_MBX_SET_VLAN;
+	req.subcode = HNS3_MBX_VLAN_FILTER;
+	vlan_filter = (struct hns3_mbx_vlan_filter *)req.data;
+	vlan_filter->is_kill = on ? 0 : 1;
+	vlan_filter->proto = rte_cpu_to_le_16(RTE_ETHER_TYPE_VLAN);
+	vlan_filter->vlan_id = rte_cpu_to_le_16(vlan_id);
 
-	return hns3_send_mbx_msg(hw, HNS3_MBX_SET_VLAN, HNS3_MBX_VLAN_FILTER,
-				(uint8_t *)&vlan_filter, sizeof(vlan_filter),
-				 true, NULL, 0);
+	return hns3vf_mbx_send(hw, &req, true, NULL, 0);
 }
 
 static int
@@ -1083,6 +1099,7 @@ hns3vf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
 static int
 hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
 {
+	struct hns3_vf_to_pf_msg req;
 	uint8_t msg_data;
 	int ret;
 
@@ -1090,9 +1107,10 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
 		return 0;
 
 	msg_data = enable ? 1 : 0;
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_VLAN,
-			HNS3_MBX_ENABLE_VLAN_FILTER, &msg_data,
-			sizeof(msg_data), true, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_VLAN,
+			 HNS3_MBX_ENABLE_VLAN_FILTER);
+	memcpy(req.data, &msg_data, sizeof(msg_data));
+	ret = hns3vf_mbx_send(hw, &req, true, NULL, 0);
 	if (ret)
 		hns3_err(hw, "%s vlan filter failed, ret = %d.",
 				enable ? "enable" : "disable", ret);
@@ -1103,12 +1121,15 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
 static int
 hns3vf_en_hw_strip_rxvtag(struct hns3_hw *hw, bool enable)
 {
+	struct hns3_vf_to_pf_msg req;
 	uint8_t msg_data;
 	int ret;
 
 	msg_data = enable ? 1 : 0;
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_SET_VLAN, HNS3_MBX_VLAN_RX_OFF_CFG,
-				&msg_data, sizeof(msg_data), false, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_VLAN,
+			 HNS3_MBX_VLAN_RX_OFF_CFG);
+	memcpy(req.data, &msg_data, sizeof(msg_data));
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret)
 		hns3_err(hw, "vf %s strip failed, ret = %d.",
 				enable ? "enable" : "disable", ret);
@@ -1252,11 +1273,13 @@ hns3vf_dev_configure_vlan(struct rte_eth_dev *dev)
 static int
 hns3vf_set_alive(struct hns3_hw *hw, bool alive)
 {
+	struct hns3_vf_to_pf_msg req;
 	uint8_t msg_data;
 
 	msg_data = alive ? 1 : 0;
-	return hns3_send_mbx_msg(hw, HNS3_MBX_SET_ALIVE, 0, &msg_data,
-				 sizeof(msg_data), false, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_SET_ALIVE, 0);
+	memcpy(req.data, &msg_data, sizeof(msg_data));
+	return hns3vf_mbx_send(hw, &req, false, NULL, 0);
 }
 
 static void
@@ -1264,11 +1287,12 @@ hns3vf_keep_alive_handler(void *param)
 {
 	struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param;
 	struct hns3_adapter *hns = eth_dev->data->dev_private;
+	struct hns3_vf_to_pf_msg req;
 	struct hns3_hw *hw = &hns->hw;
 	int ret;
 
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_KEEP_ALIVE, 0, NULL, 0,
-				false, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_KEEP_ALIVE, 0);
+	ret = hns3vf_mbx_send(hw, &req, false, NULL, 0);
 	if (ret)
 		hns3_err(hw, "VF sends keeping alive cmd failed(=%d)",
 			 ret);
@@ -1407,9 +1431,11 @@ err_init_hardware:
 static int
 hns3vf_clear_vport_list(struct hns3_hw *hw)
 {
-	return hns3_send_mbx_msg(hw, HNS3_MBX_HANDLE_VF_TBL,
-				 HNS3_MBX_VPORT_LIST_CLEAR, NULL, 0, false,
-				 NULL, 0);
+	struct hns3_vf_to_pf_msg req;
+
+	hns3vf_mbx_setup(&req, HNS3_MBX_HANDLE_VF_TBL,
+			 HNS3_MBX_VPORT_LIST_CLEAR);
+	return hns3vf_mbx_send(hw, &req, false, NULL, 0);
 }
 
 static int
@@ -1878,12 +1904,13 @@ hns3vf_wait_hardware_ready(struct hns3_adapter *hns)
 static int
 hns3vf_prepare_reset(struct hns3_adapter *hns)
 {
+	struct hns3_vf_to_pf_msg req;
 	struct hns3_hw *hw = &hns->hw;
 	int ret;
 
 	if (hw->reset.level == HNS3_VF_FUNC_RESET) {
-		ret = hns3_send_mbx_msg(hw, HNS3_MBX_RESET, 0, NULL,
-					0, true, NULL, 0);
+		hns3vf_mbx_setup(&req, HNS3_MBX_RESET, 0);
+		ret = hns3vf_mbx_send(hw, &req, true, NULL, 0);
 		if (ret)
 			return ret;
 	}
diff --git a/drivers/net/hns3/hns3_mbx.c b/drivers/net/hns3/hns3_mbx.c
index c90f5d59ba..43195ff184 100644
--- a/drivers/net/hns3/hns3_mbx.c
+++ b/drivers/net/hns3/hns3_mbx.c
@@ -24,6 +24,14 @@ static const struct errno_respcode_map err_code_map[] = {
 	{95, -EOPNOTSUPP},
 };
 
+void
+hns3vf_mbx_setup(struct hns3_vf_to_pf_msg *req, uint8_t code, uint8_t subcode)
+{
+	memset(req, 0, sizeof(struct hns3_vf_to_pf_msg));
+	req->code = code;
+	req->subcode = subcode;
+}
+
 static int
 hns3_resp_to_errno(uint16_t resp_code)
 {
@@ -118,45 +126,24 @@ hns3_mbx_prepare_resp(struct hns3_hw *hw, uint16_t code, uint16_t subcode)
 }
 
 int
-hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
-		  const uint8_t *msg_data, uint8_t msg_len, bool need_resp,
-		  uint8_t *resp_data, uint16_t resp_len)
+hns3vf_mbx_send(struct hns3_hw *hw,
+		struct hns3_vf_to_pf_msg *req, bool need_resp,
+		uint8_t *resp_data, uint16_t resp_len)
 {
-	struct hns3_mbx_vf_to_pf_cmd *req;
+	struct hns3_mbx_vf_to_pf_cmd *cmd;
 	struct hns3_cmd_desc desc;
-	bool is_ring_vector_msg;
 	int ret;
 
-	req = (struct hns3_mbx_vf_to_pf_cmd *)desc.data;
-
-	/* first two bytes are reserved for code & subcode */
-	if (msg_len > HNS3_MBX_MSG_MAX_DATA_SIZE) {
-		hns3_err(hw,
-			 "VF send mbx msg fail, msg len %u exceeds max payload len %d",
-			 msg_len, HNS3_MBX_MSG_MAX_DATA_SIZE);
-		return -EINVAL;
-	}
-
 	hns3_cmd_setup_basic_desc(&desc, HNS3_OPC_MBX_VF_TO_PF, false);
-	req->msg.code = code;
-	is_ring_vector_msg = (code == HNS3_MBX_MAP_RING_TO_VECTOR) ||
-			     (code == HNS3_MBX_UNMAP_RING_TO_VECTOR) ||
-			     (code == HNS3_MBX_GET_RING_VECTOR_MAP);
-	if (!is_ring_vector_msg)
-		req->msg.subcode = subcode;
-	if (msg_data) {
-		if (is_ring_vector_msg)
-			memcpy(&req->msg.vector_id, msg_data, msg_len);
-		else
-			memcpy(&req->msg.data, msg_data, msg_len);
-	}
+	cmd = (struct hns3_mbx_vf_to_pf_cmd *)desc.data;
+	cmd->msg = *req;
 
 	/* synchronous send */
 	if (need_resp) {
-		req->mbx_need_resp |= HNS3_MBX_NEED_RESP_BIT;
+		cmd->mbx_need_resp |= HNS3_MBX_NEED_RESP_BIT;
 		rte_spinlock_lock(&hw->mbx_resp.lock);
-		hns3_mbx_prepare_resp(hw, code, subcode);
-		req->match_id = hw->mbx_resp.match_id;
+		hns3_mbx_prepare_resp(hw, req->code, req->subcode);
+		cmd->match_id = hw->mbx_resp.match_id;
 		ret = hns3_cmd_send(hw, &desc, 1);
 		if (ret) {
 			rte_spinlock_unlock(&hw->mbx_resp.lock);
@@ -165,7 +152,8 @@ hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
 			return ret;
 		}
 
-		ret = hns3_get_mbx_resp(hw, code, subcode, resp_data, resp_len);
+		ret = hns3_get_mbx_resp(hw, req->code, req->subcode,
+					resp_data, resp_len);
 		rte_spinlock_unlock(&hw->mbx_resp.lock);
 	} else {
 		/* asynchronous send */
diff --git a/drivers/net/hns3/hns3_mbx.h b/drivers/net/hns3/hns3_mbx.h
index 09780fcebd..2952b96ab6 100644
--- a/drivers/net/hns3/hns3_mbx.h
+++ b/drivers/net/hns3/hns3_mbx.h
@@ -208,7 +208,9 @@ struct hns3_pf_rst_done_cmd {
 
 struct hns3_hw;
 void hns3_dev_handle_mbx_msg(struct hns3_hw *hw);
-int hns3_send_mbx_msg(struct hns3_hw *hw, uint16_t code, uint16_t subcode,
-		      const uint8_t *msg_data, uint8_t msg_len, bool need_resp,
-		      uint8_t *resp_data, uint16_t resp_len);
+void hns3vf_mbx_setup(struct hns3_vf_to_pf_msg *req,
+		      uint8_t code, uint8_t subcode);
+int hns3vf_mbx_send(struct hns3_hw *hw,
+		    struct hns3_vf_to_pf_msg *req_msg, bool need_resp,
+		    uint8_t *resp_data, uint16_t resp_len);
 #endif /* HNS3_MBX_H */
diff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c
index 9d473dbc22..bbb3b305d1 100644
--- a/drivers/net/hns3/hns3_rxtx.c
+++ b/drivers/net/hns3/hns3_rxtx.c
@@ -686,13 +686,12 @@ tqp_reset_fail:
 static int
 hns3vf_reset_tqp(struct hns3_hw *hw, uint16_t queue_id)
 {
-	uint8_t msg_data[2];
+	struct hns3_vf_to_pf_msg req;
 	int ret;
 
-	memcpy(msg_data, &queue_id, sizeof(uint16_t));
-
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_QUEUE_RESET, 0, msg_data,
-				 sizeof(msg_data), true, NULL, 0);
+	hns3vf_mbx_setup(&req, HNS3_MBX_QUEUE_RESET, 0);
+	memcpy(req.data, &queue_id, sizeof(uint16_t));
+	ret = hns3vf_mbx_send(hw, &req, true, NULL, 0);
 	if (ret)
 		hns3_err(hw, "fail to reset tqp, queue_id = %u, ret = %d.",
 			 queue_id, ret);
@@ -769,15 +768,14 @@ static int
 hns3vf_reset_all_tqps(struct hns3_hw *hw)
 {
 #define HNS3VF_RESET_ALL_TQP_DONE	1U
+	struct hns3_vf_to_pf_msg req;
 	uint8_t reset_status;
-	uint8_t msg_data[2];
 	int ret;
 	uint16_t i;
 
-	memset(msg_data, 0, sizeof(msg_data));
-	ret = hns3_send_mbx_msg(hw, HNS3_MBX_QUEUE_RESET, 0, msg_data,
-				sizeof(msg_data), true, &reset_status,
-				sizeof(reset_status));
+	hns3vf_mbx_setup(&req, HNS3_MBX_QUEUE_RESET, 0);
+	ret = hns3vf_mbx_send(hw, &req, true,
+			      &reset_status, sizeof(reset_status));
 	if (ret) {
 		hns3_err(hw, "fail to send rcb reset mbx, ret = %d.", ret);
 		return ret;
-- 
2.39.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-03-07 01:05:40.202968863 +0000
+++ 0063-net-hns3-refactor-send-mailbox-function.patch	2024-03-07 01:05:34.842940950 +0000
@@ -1 +1 @@
-From c9bd98d84587dbc0dddb8964ad3d7d54818aca01 Mon Sep 17 00:00:00 2001
+From 5371898fa5ba35e87feb8fd5892f6bada19be220 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c9bd98d84587dbc0dddb8964ad3d7d54818aca01 ]
+
@@ -15 +16,0 @@
-Cc: stable@dpdk.org
@@ -27 +28 @@
-index 19e734ca8d..b0d0c29df1 100644
+index 2fdd684dcd..acf33db542 100644
@@ -30 +31 @@
-@@ -91,11 +91,13 @@ hns3vf_add_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
+@@ -172,11 +172,13 @@ hns3vf_add_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
@@ -47 +48 @@
-@@ -110,12 +112,13 @@ hns3vf_remove_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
+@@ -191,12 +193,13 @@ hns3vf_remove_uc_mac_addr(struct hns3_hw *hw, struct rte_ether_addr *mac_addr)
@@ -65 +66 @@
-@@ -134,6 +137,7 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -215,6 +218,7 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
@@ -73 +74 @@
-@@ -146,9 +150,10 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
+@@ -227,9 +231,10 @@ hns3vf_set_default_mac_addr(struct rte_eth_dev *dev,
@@ -87 +88 @@
-@@ -185,12 +190,13 @@ hns3vf_add_mc_mac_addr(struct hns3_hw *hw,
+@@ -266,12 +271,13 @@ hns3vf_add_mc_mac_addr(struct hns3_hw *hw,
@@ -105 +106 @@
-@@ -206,12 +212,13 @@ hns3vf_remove_mc_mac_addr(struct hns3_hw *hw,
+@@ -287,12 +293,13 @@ hns3vf_remove_mc_mac_addr(struct hns3_hw *hw,
@@ -123 +124 @@
-@@ -348,7 +355,6 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
+@@ -429,7 +436,6 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
@@ -131 +132 @@
-@@ -365,8 +371,7 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
+@@ -446,8 +452,7 @@ hns3vf_bind_ring_with_vector(struct hns3_hw *hw, uint16_t vector_id,
@@ -141 +142 @@
-@@ -452,10 +457,12 @@ cfg_err:
+@@ -533,10 +538,12 @@ cfg_err:
@@ -156 +157 @@
-@@ -646,12 +653,13 @@ hns3vf_get_push_lsc_cap(struct hns3_hw *hw)
+@@ -727,12 +734,13 @@ hns3vf_get_push_lsc_cap(struct hns3_hw *hw)
@@ -172 +173 @@
-@@ -746,12 +754,13 @@ hns3vf_check_tqp_info(struct hns3_hw *hw)
+@@ -827,12 +835,13 @@ hns3vf_check_tqp_info(struct hns3_hw *hw)
@@ -189 +190 @@
-@@ -792,10 +801,12 @@ hns3vf_get_queue_info(struct hns3_hw *hw)
+@@ -873,10 +882,12 @@ hns3vf_get_queue_info(struct hns3_hw *hw)
@@ -204 +205 @@
-@@ -833,10 +844,11 @@ hns3vf_get_basic_info(struct hns3_hw *hw)
+@@ -914,10 +925,11 @@ hns3vf_get_basic_info(struct hns3_hw *hw)
@@ -218 +219 @@
-@@ -856,10 +868,11 @@ static int
+@@ -937,10 +949,11 @@ static int
@@ -232 +233 @@
-@@ -908,6 +921,7 @@ static void
+@@ -989,6 +1002,7 @@ static void
@@ -240 +241 @@
-@@ -919,8 +933,8 @@ hns3vf_request_link_info(struct hns3_hw *hw)
+@@ -1000,8 +1014,8 @@ hns3vf_request_link_info(struct hns3_hw *hw)
@@ -251 +252 @@
-@@ -964,16 +978,18 @@ hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
+@@ -1045,16 +1059,18 @@ hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
@@ -277 +278 @@
-@@ -1002,6 +1018,7 @@ hns3vf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
+@@ -1083,6 +1099,7 @@ hns3vf_vlan_filter_set(struct rte_eth_dev *dev, uint16_t vlan_id, int on)
@@ -285 +286 @@
-@@ -1009,9 +1026,10 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
+@@ -1090,9 +1107,10 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
@@ -299 +300 @@
-@@ -1022,12 +1040,15 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
+@@ -1103,12 +1121,15 @@ hns3vf_en_vlan_filter(struct hns3_hw *hw, bool enable)
@@ -317 +318 @@
-@@ -1171,11 +1192,13 @@ hns3vf_dev_configure_vlan(struct rte_eth_dev *dev)
+@@ -1252,11 +1273,13 @@ hns3vf_dev_configure_vlan(struct rte_eth_dev *dev)
@@ -333 +334 @@
-@@ -1183,11 +1206,12 @@ hns3vf_keep_alive_handler(void *param)
+@@ -1264,11 +1287,12 @@ hns3vf_keep_alive_handler(void *param)
@@ -348 +349 @@
-@@ -1326,9 +1350,11 @@ err_init_hardware:
+@@ -1407,9 +1431,11 @@ err_init_hardware:
@@ -363 +364 @@
-@@ -1797,12 +1823,13 @@ hns3vf_wait_hardware_ready(struct hns3_adapter *hns)
+@@ -1878,12 +1904,13 @@ hns3vf_wait_hardware_ready(struct hns3_adapter *hns)
@@ -481 +482 @@
-index 09b7e90c70..9087bcffed 100644
+index 9d473dbc22..bbb3b305d1 100644

  parent reply	other threads:[~2024-03-07  1:35 UTC|newest]

Thread overview: 202+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-07  1:30 patch 'hash: remove some dead code' " luca.boccassi
2024-03-07  1:30 ` patch 'regexdev: fix logtype register' " luca.boccassi
2024-03-07  1:30 ` patch 'lib: use dedicated logtypes and macros' " luca.boccassi
2024-03-07  1:30 ` patch 'lib: add newline in logs' " luca.boccassi
2024-03-07  1:30 ` patch 'lib: remove redundant newline from " luca.boccassi
2024-03-07  1:30 ` patch 'bus/ifpga: remove dead code' " luca.boccassi
2024-03-07  1:30 ` patch 'dma/dpaa2: fix logtype register' " luca.boccassi
2024-03-07  1:30 ` patch 'net/i40e: remove redundant judgment in flow parsing' " luca.boccassi
2024-03-07  1:30 ` patch 'net/iavf: fix memory leak on security context error' " luca.boccassi
2024-03-07  1:30 ` patch 'net/ixgbe: fix memoy leak after device init failure' " luca.boccassi
2024-03-07  1:30 ` patch 'net/ice: fix link update' " luca.boccassi
2024-03-07  1:30 ` patch 'net/ice: fix tunnel TSO capabilities' " luca.boccassi
2024-03-07  1:30 ` patch 'net/ice: fix memory leaks' " luca.boccassi
2024-03-07  1:30 ` patch 'kernel/freebsd: fix module build on FreeBSD 14' " luca.boccassi
2024-03-07  1:30 ` patch 'build: fix reasons conflict' " luca.boccassi
2024-03-07  1:30 ` patch 'telemetry: fix connected clients count' " luca.boccassi
2024-03-07  1:30 ` patch 'telemetry: fix empty JSON dictionaries' " luca.boccassi
2024-03-07  1:30 ` patch 'ci: update versions of actions in GHA' " luca.boccassi
2024-03-07  1:30 ` patch 'eal/x86: add AMD vendor check for TSC calibration' " luca.boccassi
2024-03-07  9:44   ` Tummala, Sivaprasad
2024-03-07  1:30 ` patch 'event/opdl: fix compile-time check' " luca.boccassi
2024-03-07  1:30 ` patch 'eal: verify strdup return' " luca.boccassi
2024-03-07  1:30 ` patch 'bus/dpaa: " luca.boccassi
2024-03-07  1:30 ` patch 'bus/fslmc: " luca.boccassi
2024-03-07  1:30 ` patch 'bus/vdev: " luca.boccassi
2024-03-07  1:30 ` patch 'dma/idxd: " luca.boccassi
2024-03-07  1:30 ` patch 'event/cnxk: " luca.boccassi
2024-03-07  1:30 ` patch 'net/failsafe: fix memory leak in args parsing' " luca.boccassi
2024-03-07  1:30 ` patch 'app/dumpcap: verify strdup return' " luca.boccassi
2024-03-07  1:30 ` patch 'app/pdump: " luca.boccassi
2024-03-07  1:30 ` patch 'app/crypto-perf: " luca.boccassi
2024-03-07  1:30 ` patch 'app/testpmd: " luca.boccassi
2024-03-07  1:30 ` patch 'test: " luca.boccassi
2024-03-07  1:30 ` patch 'examples/qos_sched: fix memory leak in args parsing' " luca.boccassi
2024-03-07  1:30 ` patch 'examples/vhost: verify strdup return' " luca.boccassi
2024-03-07  1:30 ` patch 'pipeline: fix calloc parameters' " luca.boccassi
2024-03-07  1:30 ` patch 'eventdev: " luca.boccassi
2024-03-07  1:30 ` patch 'dmadev: " luca.boccassi
2024-03-07  1:30 ` patch 'rawdev: " luca.boccassi
2024-03-07  1:30 ` patch 'common/mlx5: " luca.boccassi
2024-03-07  1:30 ` patch 'net/bnx2x: " luca.boccassi
2024-03-07  1:30 ` patch 'net/nfp: " luca.boccassi
2024-03-07  1:30 ` patch 'build: fix linker warnings about undefined symbols' " luca.boccassi
2024-03-07  1:31 ` patch 'build: link static libs with whole-archive in subproject' " luca.boccassi
2024-03-07  1:31 ` patch 'net: fix TCP/UDP checksum with padding data' " luca.boccassi
2024-03-07  1:31 ` patch 'net/virtio: remove duplicate queue xstats' " luca.boccassi
2024-03-07  1:31 ` patch 'vhost: fix deadlock during vDPA SW live migration' " luca.boccassi
2024-03-07  1:31 ` patch 'vdpa/mlx5: fix queue enable drain CQ' " luca.boccassi
2024-03-07  1:31 ` patch 'vhost: fix memory leak in Virtio Tx split path' " luca.boccassi
2024-03-07  1:31 ` patch 'cryptodev: remove unused extern variable' " luca.boccassi
2024-03-07  1:31 ` patch 'examples/ipsec-secgw: fix width of variables' " luca.boccassi
2024-03-07  1:31 ` patch 'common/cnxk: fix memory leak in CPT init' " luca.boccassi
2024-03-07  1:31 ` patch 'app/crypto-perf: fix next segment mbuf' " luca.boccassi
2024-03-07  1:31 ` patch 'app/crypto-perf: fix data comparison' " luca.boccassi
2024-03-07  1:31 ` patch 'app/crypto-perf: fix encrypt operation verification' " luca.boccassi
2024-03-07  1:31 ` patch 'event/cnxk: fix dequeue timeout configuration' " luca.boccassi
2024-03-07  1:31 ` patch 'test/event: skip test if no driver is present' " luca.boccassi
2024-03-07  1:31 ` patch 'doc: fix commands in eventdev test tool guide' " luca.boccassi
2024-03-07  1:31 ` patch 'ethdev: fix NVGRE encap flow action description' " luca.boccassi
2024-03-07  1:31 ` patch 'net/nfp: fix resource leak for PF initialization' " luca.boccassi
2024-03-07  1:31 ` patch 'net/af_xdp: fix memzone leak on config failure' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: refactor VF mailbox message struct' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: refactor PF " luca.boccassi
2024-03-07  1:31 ` luca.boccassi [this message]
2024-03-07  1:31 ` patch 'net/hns3: refactor handle mailbox function' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: fix VF multiple count on one reset' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: fix disable command with firmware' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: fix reset level comparison' " luca.boccassi
2024-03-07  1:31 ` patch 'net/hns3: remove QinQ insert support for VF' " luca.boccassi
2024-03-07  1:31 ` patch 'doc: add --latencystats option in testpmd guide' " luca.boccassi
2024-03-07  1:31 ` patch 'app/testpmd: hide --bitrate-stats in help if disabled' " luca.boccassi
2024-03-07  1:31 ` patch 'net/vmxnet3: fix initialization on FreeBSD' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mana: prevent values overflow returned from RDMA layer' " luca.boccassi
2024-03-07  1:31 ` patch 'drivers/net: fix buffer overflow for packet types list' " luca.boccassi
2024-03-07  1:31 ` patch 'app/testpmd: fix crash in multi-process forwarding' " luca.boccassi
2024-03-07  1:31 ` patch 'net/ionic: fix missing volatile type for cqe pointers' " luca.boccassi
2024-03-07  1:31 ` patch 'net/ionic: fix RSS query' " luca.boccassi
2024-03-07  1:31 ` patch 'net/ionic: fix device close' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bonding: fix flow count query' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mana: fix memory leak on MR allocation' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mana: handle MR cache expansion failure' " luca.boccassi
2024-03-07  1:31 ` patch 'common/sfc_efx/base: use C11 static assert' " luca.boccassi
2024-03-07  1:31 ` patch 'net/memif: fix extra mbuf refcnt update in zero copy Tx' " luca.boccassi
2024-03-07  1:31 ` patch 'net: add macros for VLAN metadata parsing' " luca.boccassi
2024-03-07  1:31 ` patch 'net/netvsc: fix " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: fix array overflow' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: fix 50G and 100G forced speed' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: fix speed change from 200G to 25G on Thor' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: fix backward firmware compatibility' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: modify locking for representor Tx' " luca.boccassi
2024-03-07  1:31 ` patch 'net/bnxt: fix deadlock in ULP timer callback' " luca.boccassi
2024-03-07  1:31 ` patch 'net/cnxk: fix flow RSS configuration' " luca.boccassi
2024-03-07  1:31 ` patch 'net/thunderx: fix DMAC control register update' " luca.boccassi
2024-03-07  1:31 ` patch 'common/cnxk: fix mbox region copy' " luca.boccassi
2024-03-07  1:31 ` patch 'common/cnxk: fix VLAN check for inner header' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5: fix jump action validation' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5: fix GENEVE TLV option management' " luca.boccassi
2024-03-07  1:31 ` patch 'common/mlx5: fix duplicate read of general capabilities' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5/hws: fix tunnel protocol checks' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5: remove GENEVE options length limitation' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5: fix GENEVE option item translation' " luca.boccassi
2024-03-07  1:31 ` patch 'net/mlx5: fix stats query crash in secondary process' " luca.boccassi
2024-03-07  1:31 ` patch 'app/testpmd: fix GRO packets flush on timeout' " luca.boccassi
2024-03-14  0:08   ` patch 'Revert "build: add libarchive to optional external' " luca.boccassi
2024-03-14  0:08     ` patch 'baseband/acc: fix logtypes register' " luca.boccassi
2024-03-14  0:08     ` patch 'baseband/acc: fix common logs' " luca.boccassi
2024-03-14  0:09     ` patch 'doc: fix configuration in baseband 5GNR driver guide' " luca.boccassi
2024-03-14  0:09     ` patch 'event/dlb2: remove superfluous memcpy' " luca.boccassi
2024-03-14  0:09     ` patch 'test/event: fix crash in Tx adapter freeing' " luca.boccassi
2024-03-14  0:09     ` patch 'eventdev: improve Doxygen comments on configure struct' " luca.boccassi
2024-03-14  0:09     ` patch 'eventdev: fix Doxygen processing of vector " luca.boccassi
2024-03-14  0:09     ` patch 'eventdev/crypto: fix enqueueing' " luca.boccassi
2024-03-14  0:09     ` patch 'app/crypto-perf: fix copy segment size' " luca.boccassi
2024-03-14  0:09     ` patch 'app/crypto-perf: fix out-of-place mbuf " luca.boccassi
2024-03-14  0:09     ` patch 'app/crypto-perf: add missing op resubmission' " luca.boccassi
2024-03-14  0:09     ` patch 'doc: fix typos in cryptodev overview' " luca.boccassi
2024-03-14  0:09     ` patch 'net/af_xdp: fix leak on XSK configuration failure' " luca.boccassi
2024-03-14  0:09     ` patch 'app/testpmd: return if no packets in GRO heavy weight mode' " luca.boccassi
2024-03-14  0:09     ` patch 'app/testpmd: fix async flow create failure handling' " luca.boccassi
2024-03-14  0:09     ` patch 'net/tap: do not overwrite flow API errors' " luca.boccassi
2024-03-14  0:09     ` patch 'net/tap: fix traffic control handle calculation' " luca.boccassi
2024-03-14  0:09     ` patch 'net/bnxt: fix null pointer dereference' " luca.boccassi
2024-03-14  0:09     ` patch 'net/ixgbevf: fix RSS init for x550 NICs' " luca.boccassi
2024-03-14  0:09     ` patch 'net/iavf: remove error logs for VLAN offloading' " luca.boccassi
2024-03-14  0:09     ` patch 'net/ixgbe: increase VF reset timeout' " luca.boccassi
2024-03-14  0:09     ` patch 'net/i40e: remove incorrect 16B descriptor read block' " luca.boccassi
2024-03-14  0:09     ` patch 'net/iavf: " luca.boccassi
2024-03-14  0:09     ` patch 'net/ice: " luca.boccassi
2024-03-14  0:09     ` patch 'net/bnx2x: fix warnings about memcpy lengths' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: remove CN9K inline IPsec FP opcodes' " luca.boccassi
2024-03-14  0:09     ` patch 'net/cnxk: fix buffer size configuration' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: fix Tx MTU " luca.boccassi
2024-03-14  0:09     ` patch 'net/cnxk: fix MTU limit' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: fix RSS RETA configuration' " luca.boccassi
2024-03-14  0:09     ` patch 'net/cnxk: add cookies check for multi-segment offload' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: fix mbox struct attributes' " luca.boccassi
2024-03-14  0:09     ` patch 'net/cnxk: fix mbuf fields in multi-segment Tx' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: fix link config for SDP' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: remove dead code' " luca.boccassi
2024-03-14  0:09     ` patch 'common/cnxk: fix possible out-of-bounds access' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5/hws: check not supported fields in VXLAN' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5/hws: fix VLAN item in non-relaxed mode' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix use after free when releasing Tx queues' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix error packets drop in regular Rx' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: prevent querying aged flows on uninit port' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5/hws: fix VLAN inner type' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix condition of LACP miss flow' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix conntrack action handle representation' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix connection tracking action validation' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5/hws: enable multiple integrity items' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix VLAN handling in meter split' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: fix counters map in bonding mode' " luca.boccassi
2024-03-14  0:09     ` patch 'net/mlx5: remove device status check in flow creation' " luca.boccassi
2024-03-14  0:09     ` patch 'test: fix probing in secondary process' " luca.boccassi
2024-03-14  0:09     ` patch 'bus/vdev: fix devargs " luca.boccassi
2024-03-14  0:09     ` patch 'config: fix CPU instruction set for cross-build' " luca.boccassi
2024-03-14  0:09     ` patch 'test/mbuf: fix external mbuf case with assert enabled' " luca.boccassi
2024-03-14  0:09     ` patch 'test/bpf: fix mbuf init in some filter test' " luca.boccassi
2024-03-14  0:09     ` patch 'net/tap: log Netlink extended ack unavailability' " luca.boccassi
2024-03-14  0:09     ` patch 'baseband/fpga_5gnr_fec: use a better random generator' " luca.boccassi
2024-03-14  0:09     ` patch 'net/ice: fix version for experimental symbols' " luca.boccassi
2024-03-14  0:09     ` patch 'test: do not count skipped tests as executed' " luca.boccassi
2024-03-14  0:09     ` patch 'examples/packet_ordering: fix Rx with reorder mode disabled' " luca.boccassi
2024-03-14  0:09     ` patch 'examples/l3fwd: fix Rx over not ready port' " luca.boccassi
2024-03-18 15:38       ` patch 'build: pass cflags in subproject' " luca.boccassi
2024-03-18 15:38         ` patch 'examples/ipsec-secgw: fix cryptodev to SA mapping' " luca.boccassi
2024-03-18 15:38         ` patch 'crypto/qat: fix crash with CCM null AAD pointer' " luca.boccassi
2024-03-18 15:38         ` patch 'net/hns3: enable PFC for all user priorities' " luca.boccassi
2024-03-18 15:38         ` patch 'doc: add traffic manager in features table' " luca.boccassi
2024-03-18 15:38         ` patch 'doc: add link speeds configuration " luca.boccassi
2024-03-18 15:38         ` patch 'net/ena: fix fast mbuf free' " luca.boccassi
2024-03-18 15:38         ` patch 'net/ena/base: limit exponential backoff' " luca.boccassi
2024-03-18 15:38         ` patch 'net/ena/base: restructure interrupt handling' " luca.boccassi
2024-03-18 15:39         ` patch 'net/nfp: fix switch domain free check' " luca.boccassi
2024-03-18 15:39         ` patch 'app/testpmd: fix --stats-period option " luca.boccassi
2024-03-18 15:39         ` patch 'app/testpmd: fix burst option parsing' " luca.boccassi
2024-03-18 15:39         ` patch 'app/testpmd: fix error message for invalid option' " luca.boccassi
2024-03-18 15:39         ` patch 'net/hns3: support new device' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix HWS meter actions availability' " luca.boccassi
2024-03-18 15:39         ` patch 'doc: update link to Windows DevX in mlx5 guide' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix VLAN ID in flow modify' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix meter policy priority' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: remove duplication of L3 flow item validation' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix IP-in-IP tunnels recognition' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix DR context release ordering' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix template clean up of FDB control flow rule' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: prevent ioctl failure log flooding' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix age position in hairpin split' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix drop action release timing' " luca.boccassi
2024-03-18 15:39         ` patch 'net/mlx5: fix warning about copy length' " luca.boccassi
2024-03-18 15:39         ` patch 'net/bnxt: fix number of Tx queues being created' " luca.boccassi
2024-03-18 16:08           ` Kishore Padmanabha
2024-03-18 15:39         ` patch 'examples/ipsec-secgw: fix Rx queue ID in Rx callback' " luca.boccassi
2024-03-25 12:08           ` patch 'doc: fix default IP fragments maximum in programmer guide' " luca.boccassi
2024-03-25 12:08             ` patch 'net/ena: fix mbuf double free in fast free mode' " luca.boccassi
2024-03-25 12:08             ` patch 'net/vmxnet3: ignore Rx queue interrupt setup on FreeBSD' " luca.boccassi
2024-03-25 12:08             ` patch 'net/mlx5/hws: fix port ID for root table' " luca.boccassi
2024-03-25 12:08             ` patch 'doc: fix typo in profiling guide' " luca.boccassi
2024-03-25 12:08             ` patch 'doc: fix typo in packet framework " luca.boccassi
2024-03-25 12:08             ` patch 'test/power: fix typo in error message' " luca.boccassi
2024-03-25 12:08             ` patch 'test/cfgfile: fix typo in error messages' " luca.boccassi
2024-03-25 12:08             ` patch 'examples/ipsec-secgw: fix typo in error message' " luca.boccassi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240307013159.1735343-63-luca.boccassi@gmail.com \
    --to=luca.boccassi@gmail.com \
    --cc=haijie1@huawei.com \
    --cc=huangdengdui@huawei.com \
    --cc=stable@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).