stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Hao Lan <lanhao@huawei.com>,
	Guangbin Huang <huangguangbin2@huawei.com>,
	Jakub Kicinski <kuba@kernel.org>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 120/168] net: hns3: refactor function hclge_mbx_handler()
Date: Tue, 14 May 2024 12:20:18 +0200	[thread overview]
Message-ID: <20240514101011.214469100@linuxfoundation.org> (raw)
In-Reply-To: <20240514101006.678521560@linuxfoundation.org>

5.15-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Hao Lan <lanhao@huawei.com>

[ Upstream commit 09431ed8de874881e2d5d430042d718ae074d371 ]

Currently, the function hclge_mbx_handler() has too many switch-case
statements, it makes this function too long. To improve code readability,
refactor this function and use lookup table instead.

Signed-off-by: Hao Lan <lanhao@huawei.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: 669554c512d2 ("net: hns3: direct return when receive a unknown mailbox message")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 .../net/ethernet/hisilicon/hns3/hclge_mbx.h   |  11 +
 .../hisilicon/hns3/hns3pf/hclge_mbx.c         | 415 ++++++++++++------
 2 files changed, 284 insertions(+), 142 deletions(-)

diff --git a/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h b/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h
index 09a2a7c9fca43..debbaa1822aa0 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h
+++ b/drivers/net/ethernet/hisilicon/hns3/hclge_mbx.h
@@ -212,6 +212,17 @@ struct hclgevf_mbx_arq_ring {
 	__le16 msg_q[HCLGE_MBX_MAX_ARQ_MSG_NUM][HCLGE_MBX_MAX_ARQ_MSG_SIZE];
 };
 
+struct hclge_dev;
+
+#define HCLGE_MBX_OPCODE_MAX 256
+struct hclge_mbx_ops_param {
+	struct hclge_vport *vport;
+	struct hclge_mbx_vf_to_pf_cmd *req;
+	struct hclge_respond_to_vf_msg *resp_msg;
+};
+
+typedef int (*hclge_mbx_ops_fn)(struct hclge_mbx_ops_param *param);
+
 #define hclge_mbx_ring_ptr_move_crq(crq) \
 	(crq->next_to_use = (crq->next_to_use + 1) % crq->desc_num)
 #define hclge_mbx_tail_ptr_move_arq(arq) \
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
index 839555bf4bc49..39848bcd77c75 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c
@@ -774,17 +774,284 @@ static void hclge_handle_vf_tbl(struct hclge_vport *vport,
 	}
 }
 
+static int
+hclge_mbx_map_ring_to_vector_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_map_unmap_ring_to_vf_vector(param->vport, true,
+						 param->req);
+}
+
+static int
+hclge_mbx_unmap_ring_to_vector_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_map_unmap_ring_to_vf_vector(param->vport, false,
+						 param->req);
+}
+
+static int
+hclge_mbx_get_ring_vector_map_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_get_vf_ring_vector_map(param->vport, param->req,
+					   param->resp_msg);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"PF fail(%d) to get VF ring vector map\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_set_promisc_mode_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_set_vf_promisc_mode(param->vport, param->req);
+	return 0;
+}
+
+static int hclge_mbx_set_unicast_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_set_vf_uc_mac_addr(param->vport, param->req);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"PF fail(%d) to set VF UC MAC Addr\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_set_multicast_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_set_vf_mc_mac_addr(param->vport, param->req);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"PF fail(%d) to set VF MC MAC Addr\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_set_vlan_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_set_vf_vlan_cfg(param->vport, param->req, param->resp_msg);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"PF failed(%d) to config VF's VLAN\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_set_alive_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_set_vf_alive(param->vport, param->req);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"PF failed(%d) to set VF's ALIVE\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_get_qinfo_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_vf_queue_info(param->vport, param->resp_msg);
+	return 0;
+}
+
+static int hclge_mbx_get_qdepth_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_vf_queue_depth(param->vport, param->resp_msg);
+	return 0;
+}
+
+static int hclge_mbx_get_basic_info_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_basic_info(param->vport, param->resp_msg);
+	return 0;
+}
+
+static int hclge_mbx_get_link_status_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_push_vf_link_status(param->vport);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"failed to inform link stat to VF, ret = %d\n",
+			ret);
+	return ret;
+}
+
+static int hclge_mbx_queue_reset_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_mbx_reset_vf_queue(param->vport, param->req,
+					param->resp_msg);
+}
+
+static int hclge_mbx_reset_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_reset_vf(param->vport);
+}
+
+static int hclge_mbx_keep_alive_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_vf_keep_alive(param->vport);
+	return 0;
+}
+
+static int hclge_mbx_set_mtu_handler(struct hclge_mbx_ops_param *param)
+{
+	int ret;
+
+	ret = hclge_set_vf_mtu(param->vport, param->req);
+	if (ret)
+		dev_err(&param->vport->back->pdev->dev,
+			"VF fail(%d) to set mtu\n", ret);
+	return ret;
+}
+
+static int hclge_mbx_get_qid_in_pf_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_get_queue_id_in_pf(param->vport, param->req,
+					param->resp_msg);
+}
+
+static int hclge_mbx_get_rss_key_handler(struct hclge_mbx_ops_param *param)
+{
+	return hclge_get_rss_key(param->vport, param->req, param->resp_msg);
+}
+
+static int hclge_mbx_get_link_mode_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_link_mode(param->vport, param->req);
+	return 0;
+}
+
+static int
+hclge_mbx_get_vf_flr_status_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_rm_vport_all_mac_table(param->vport, false,
+				     HCLGE_MAC_ADDR_UC);
+	hclge_rm_vport_all_mac_table(param->vport, false,
+				     HCLGE_MAC_ADDR_MC);
+	hclge_rm_vport_all_vlan_table(param->vport, false);
+	return 0;
+}
+
+static int hclge_mbx_vf_uninit_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_rm_vport_all_mac_table(param->vport, true,
+				     HCLGE_MAC_ADDR_UC);
+	hclge_rm_vport_all_mac_table(param->vport, true,
+				     HCLGE_MAC_ADDR_MC);
+	hclge_rm_vport_all_vlan_table(param->vport, true);
+	return 0;
+}
+
+static int hclge_mbx_get_media_type_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_vf_media_type(param->vport, param->resp_msg);
+	return 0;
+}
+
+static int hclge_mbx_push_link_status_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_handle_link_change_event(param->vport->back, param->req);
+	return 0;
+}
+
+static int hclge_mbx_get_mac_addr_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_get_vf_mac_addr(param->vport, param->resp_msg);
+	return 0;
+}
+
+static int hclge_mbx_ncsi_error_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_handle_ncsi_error(param->vport->back);
+	return 0;
+}
+
+static int hclge_mbx_handle_vf_tbl_handler(struct hclge_mbx_ops_param *param)
+{
+	hclge_handle_vf_tbl(param->vport, param->req);
+	return 0;
+}
+
+static const hclge_mbx_ops_fn hclge_mbx_ops_list[HCLGE_MBX_OPCODE_MAX] = {
+	[HCLGE_MBX_RESET]   = hclge_mbx_reset_handler,
+	[HCLGE_MBX_SET_UNICAST] = hclge_mbx_set_unicast_handler,
+	[HCLGE_MBX_SET_MULTICAST] = hclge_mbx_set_multicast_handler,
+	[HCLGE_MBX_SET_VLAN] = hclge_mbx_set_vlan_handler,
+	[HCLGE_MBX_MAP_RING_TO_VECTOR] = hclge_mbx_map_ring_to_vector_handler,
+	[HCLGE_MBX_UNMAP_RING_TO_VECTOR] = hclge_mbx_unmap_ring_to_vector_handler,
+	[HCLGE_MBX_SET_PROMISC_MODE] = hclge_mbx_set_promisc_mode_handler,
+	[HCLGE_MBX_GET_QINFO] = hclge_mbx_get_qinfo_handler,
+	[HCLGE_MBX_GET_QDEPTH] = hclge_mbx_get_qdepth_handler,
+	[HCLGE_MBX_GET_BASIC_INFO] = hclge_mbx_get_basic_info_handler,
+	[HCLGE_MBX_GET_RSS_KEY] = hclge_mbx_get_rss_key_handler,
+	[HCLGE_MBX_GET_MAC_ADDR] = hclge_mbx_get_mac_addr_handler,
+	[HCLGE_MBX_GET_LINK_STATUS] = hclge_mbx_get_link_status_handler,
+	[HCLGE_MBX_QUEUE_RESET] = hclge_mbx_queue_reset_handler,
+	[HCLGE_MBX_KEEP_ALIVE] = hclge_mbx_keep_alive_handler,
+	[HCLGE_MBX_SET_ALIVE] = hclge_mbx_set_alive_handler,
+	[HCLGE_MBX_SET_MTU] = hclge_mbx_set_mtu_handler,
+	[HCLGE_MBX_GET_QID_IN_PF] = hclge_mbx_get_qid_in_pf_handler,
+	[HCLGE_MBX_GET_LINK_MODE] = hclge_mbx_get_link_mode_handler,
+	[HCLGE_MBX_GET_MEDIA_TYPE] = hclge_mbx_get_media_type_handler,
+	[HCLGE_MBX_VF_UNINIT] = hclge_mbx_vf_uninit_handler,
+	[HCLGE_MBX_HANDLE_VF_TBL] = hclge_mbx_handle_vf_tbl_handler,
+	[HCLGE_MBX_GET_RING_VECTOR_MAP] = hclge_mbx_get_ring_vector_map_handler,
+	[HCLGE_MBX_GET_VF_FLR_STATUS] = hclge_mbx_get_vf_flr_status_handler,
+	[HCLGE_MBX_PUSH_LINK_STATUS] = hclge_mbx_push_link_status_handler,
+	[HCLGE_MBX_NCSI_ERROR] = hclge_mbx_ncsi_error_handler,
+};
+
+static void hclge_mbx_request_handling(struct hclge_mbx_ops_param *param)
+{
+	hclge_mbx_ops_fn cmd_func = NULL;
+	struct hclge_dev *hdev;
+	int ret = 0;
+
+	hdev = param->vport->back;
+	cmd_func = hclge_mbx_ops_list[param->req->msg.code];
+	if (cmd_func)
+		ret = cmd_func(param);
+	else
+		dev_err(&hdev->pdev->dev,
+			"un-supported mailbox message, code = %u\n",
+			param->req->msg.code);
+
+	/* PF driver should not reply IMP */
+	if (hnae3_get_bit(param->req->mbx_need_resp, HCLGE_MBX_NEED_RESP_B) &&
+	    param->req->msg.code < HCLGE_MBX_GET_VF_FLR_STATUS) {
+		param->resp_msg->status = ret;
+		if (time_is_before_jiffies(hdev->last_mbx_scheduled +
+					   HCLGE_MBX_SCHED_TIMEOUT))
+			dev_warn(&hdev->pdev->dev,
+				 "resp vport%u mbx(%u,%u) late\n",
+				 param->req->mbx_src_vfid,
+				 param->req->msg.code,
+				 param->req->msg.subcode);
+
+		hclge_gen_resp_to_vf(param->vport, param->req, param->resp_msg);
+	}
+}
+
 void hclge_mbx_handler(struct hclge_dev *hdev)
 {
 	struct hclge_cmq_ring *crq = &hdev->hw.cmq.crq;
 	struct hclge_respond_to_vf_msg resp_msg;
 	struct hclge_mbx_vf_to_pf_cmd *req;
-	struct hclge_vport *vport;
+	struct hclge_mbx_ops_param param;
 	struct hclge_desc *desc;
-	bool is_del = false;
 	unsigned int flag;
-	int ret = 0;
 
+	param.resp_msg = &resp_msg;
 	/* handle all the mailbox requests in the queue */
 	while (!hclge_cmd_crq_empty(&hdev->hw)) {
 		if (test_bit(HCLGE_STATE_CMD_DISABLE, &hdev->state)) {
@@ -808,152 +1075,16 @@ void hclge_mbx_handler(struct hclge_dev *hdev)
 			continue;
 		}
 
-		vport = &hdev->vport[req->mbx_src_vfid];
-
 		trace_hclge_pf_mbx_get(hdev, req);
 
 		/* clear the resp_msg before processing every mailbox message */
 		memset(&resp_msg, 0, sizeof(resp_msg));
-
-		switch (req->msg.code) {
-		case HCLGE_MBX_MAP_RING_TO_VECTOR:
-			ret = hclge_map_unmap_ring_to_vf_vector(vport, true,
-								req);
-			break;
-		case HCLGE_MBX_UNMAP_RING_TO_VECTOR:
-			ret = hclge_map_unmap_ring_to_vf_vector(vport, false,
-								req);
-			break;
-		case HCLGE_MBX_GET_RING_VECTOR_MAP:
-			ret = hclge_get_vf_ring_vector_map(vport, req,
-							   &resp_msg);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"PF fail(%d) to get VF ring vector map\n",
-					ret);
-			break;
-		case HCLGE_MBX_SET_PROMISC_MODE:
-			hclge_set_vf_promisc_mode(vport, req);
-			break;
-		case HCLGE_MBX_SET_UNICAST:
-			ret = hclge_set_vf_uc_mac_addr(vport, req);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"PF fail(%d) to set VF UC MAC Addr\n",
-					ret);
-			break;
-		case HCLGE_MBX_SET_MULTICAST:
-			ret = hclge_set_vf_mc_mac_addr(vport, req);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"PF fail(%d) to set VF MC MAC Addr\n",
-					ret);
-			break;
-		case HCLGE_MBX_SET_VLAN:
-			ret = hclge_set_vf_vlan_cfg(vport, req, &resp_msg);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"PF failed(%d) to config VF's VLAN\n",
-					ret);
-			break;
-		case HCLGE_MBX_SET_ALIVE:
-			ret = hclge_set_vf_alive(vport, req);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"PF failed(%d) to set VF's ALIVE\n",
-					ret);
-			break;
-		case HCLGE_MBX_GET_QINFO:
-			hclge_get_vf_queue_info(vport, &resp_msg);
-			break;
-		case HCLGE_MBX_GET_QDEPTH:
-			hclge_get_vf_queue_depth(vport, &resp_msg);
-			break;
-		case HCLGE_MBX_GET_BASIC_INFO:
-			hclge_get_basic_info(vport, &resp_msg);
-			break;
-		case HCLGE_MBX_GET_LINK_STATUS:
-			ret = hclge_push_vf_link_status(vport);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"failed to inform link stat to VF, ret = %d\n",
-					ret);
-			break;
-		case HCLGE_MBX_QUEUE_RESET:
-			ret = hclge_mbx_reset_vf_queue(vport, req, &resp_msg);
-			break;
-		case HCLGE_MBX_RESET:
-			ret = hclge_reset_vf(vport);
-			break;
-		case HCLGE_MBX_KEEP_ALIVE:
-			hclge_vf_keep_alive(vport);
-			break;
-		case HCLGE_MBX_SET_MTU:
-			ret = hclge_set_vf_mtu(vport, req);
-			if (ret)
-				dev_err(&hdev->pdev->dev,
-					"VF fail(%d) to set mtu\n", ret);
-			break;
-		case HCLGE_MBX_GET_QID_IN_PF:
-			ret = hclge_get_queue_id_in_pf(vport, req, &resp_msg);
-			break;
-		case HCLGE_MBX_GET_RSS_KEY:
-			ret = hclge_get_rss_key(vport, req, &resp_msg);
-			break;
-		case HCLGE_MBX_GET_LINK_MODE:
-			hclge_get_link_mode(vport, req);
-			break;
-		case HCLGE_MBX_GET_VF_FLR_STATUS:
-		case HCLGE_MBX_VF_UNINIT:
-			is_del = req->msg.code == HCLGE_MBX_VF_UNINIT;
-			hclge_rm_vport_all_mac_table(vport, is_del,
-						     HCLGE_MAC_ADDR_UC);
-			hclge_rm_vport_all_mac_table(vport, is_del,
-						     HCLGE_MAC_ADDR_MC);
-			hclge_rm_vport_all_vlan_table(vport, is_del);
-			break;
-		case HCLGE_MBX_GET_MEDIA_TYPE:
-			hclge_get_vf_media_type(vport, &resp_msg);
-			break;
-		case HCLGE_MBX_PUSH_LINK_STATUS:
-			hclge_handle_link_change_event(hdev, req);
-			break;
-		case HCLGE_MBX_GET_MAC_ADDR:
-			hclge_get_vf_mac_addr(vport, &resp_msg);
-			break;
-		case HCLGE_MBX_NCSI_ERROR:
-			hclge_handle_ncsi_error(hdev);
-			break;
-		case HCLGE_MBX_HANDLE_VF_TBL:
-			hclge_handle_vf_tbl(vport, req);
-			break;
-		default:
-			dev_err(&hdev->pdev->dev,
-				"un-supported mailbox message, code = %u\n",
-				req->msg.code);
-			break;
-		}
-
-		/* PF driver should not reply IMP */
-		if (hnae3_get_bit(req->mbx_need_resp, HCLGE_MBX_NEED_RESP_B) &&
-		    req->msg.code < HCLGE_MBX_GET_VF_FLR_STATUS) {
-			resp_msg.status = ret;
-			if (time_is_before_jiffies(hdev->last_mbx_scheduled +
-						   HCLGE_MBX_SCHED_TIMEOUT))
-				dev_warn(&hdev->pdev->dev,
-					 "resp vport%u mbx(%u,%u) late\n",
-					 req->mbx_src_vfid,
-					 req->msg.code,
-					 req->msg.subcode);
-
-			hclge_gen_resp_to_vf(vport, req, &resp_msg);
-		}
+		param.vport = &hdev->vport[req->mbx_src_vfid];
+		param.req = req;
+		hclge_mbx_request_handling(&param);
 
 		crq->desc[crq->next_to_use].flag = 0;
 		hclge_mbx_ring_ptr_move_crq(crq);
-
-		/* reinitialize ret after complete the mbx message processing */
-		ret = 0;
 	}
 
 	/* Write back CMDQ_RQ header pointer, M7 need this pointer */
-- 
2.43.0




  parent reply	other threads:[~2024-05-14 11:57 UTC|newest]

Thread overview: 177+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-05-14 10:18 [PATCH 5.15 000/168] 5.15.159-rc1 review Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 001/168] dmaengine: pl330: issue_pending waits until WFP state Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 002/168] dmaengine: Revert "dmaengine: pl330: issue_pending waits until WFP state" Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 003/168] wifi: nl80211: dont free NULL coalescing rule Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 004/168] ksmbd: fix slab-out-of-bounds in smb2_allocate_rsp_buf Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 005/168] ksmbd: validate request buffer size in smb2_allocate_rsp_buf() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 006/168] ksmbd: clear RENAME_NOREPLACE before calling vfs_rename Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 007/168] eeprom: at24: Use dev_err_probe for nvmem register failure Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 008/168] eeprom: at24: Probe for DDR3 thermal sensor in the SPD case Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 009/168] eeprom: at24: fix memory corruption race condition Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 010/168] pinctrl: pinctrl-aspeed-g6: Fix register offset for pinconf of GPIOR-T Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 011/168] pinctrl/meson: fix typo in PDMs pin name Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 012/168] pinctrl: core: delete incorrect free in pinctrl_enable() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 013/168] pinctrl: mediatek: paris: Rework mtk_pinconf_{get,set} switch/case logic Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 014/168] pinctrl: mediatek: paris: Fix PIN_CONFIG_INPUT_SCHMITT_ENABLE readback Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 015/168] pinctrl: mediatek: paris: Rework support for PIN_CONFIG_{INPUT,OUTPUT}_ENABLE Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 016/168] sunrpc: add a struct rpc_stats arg to rpc_create_args Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 017/168] nfs: expose /proc/net/sunrpc/nfs in net namespaces Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 018/168] nfs: make the rpc_stat per net namespace Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 019/168] nfs: Handle error of rpc_proc_register() in nfs_net_init() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 020/168] power: rt9455: hide unused rt9455_boost_voltage_values Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 021/168] power: supply: mt6360_charger: Fix of_match for usb-otg-vbus regulator Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 022/168] pinctrl: devicetree: fix refcount leak in pinctrl_dt_to_map() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 023/168] regulator: mt6360: De-capitalize devicetree regulator subnodes Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 024/168] bpf, kconfig: Fix DEBUG_INFO_BTF_MODULES Kconfig definition Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 025/168] bpf, skmsg: Fix NULL pointer dereference in sk_psock_skb_ingress_enqueue Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 026/168] bpf: Fix a verifier verbose message Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 027/168] spi: hisi-kunpeng: Delete the dump interface of data registers in debugfs Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 028/168] s390/mm: Fix storage key clearing for guest huge pages Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 029/168] s390/mm: Fix clearing storage keys for " Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 030/168] xdp: Move conversion to xdp_frame out of map functions Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 031/168] xdp: Add xdp_do_redirect_frame() for pre-computed xdp_frames Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 032/168] xdp: use flags field to disambiguate broadcast redirect Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 033/168] bna: ensure the copied buf is NUL terminated Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 034/168] octeontx2-af: avoid off-by-one read from userspace Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 035/168] nsh: Restore skb->{protocol,data,mac_header} for outer header in nsh_gso_segment() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 036/168] net l2tp: drop flow hash on forward Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 037/168] s390/vdso: Add CFI for RA register to asm macro vdso_func Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 038/168] net: qede: sanitize rc in qede_add_tc_flower_fltr() Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 039/168] net: qede: use return from qede_parse_flow_attr() for flower Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 040/168] net: qede: use return from qede_parse_flow_attr() for flow_spec Greg Kroah-Hartman
2024-05-14 10:18 ` [PATCH 5.15 041/168] net: qede: use return from qede_parse_actions() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 042/168] ASoC: meson: axg-fifo: use FIELD helpers Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 043/168] ASoC: meson: axg-fifo: use threaded irq to check periods Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 044/168] ASoC: meson: axg-card: make links nonatomic Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 045/168] ASoC: meson: axg-tdm-interface: manage formatters in trigger Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 046/168] ASoC: meson: cards: select SND_DYNAMIC_MINORS Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 047/168] ALSA: hda: intel-sdw-acpi: fix usage of device_get_named_child_node() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 048/168] s390/cio: Ensure the copied buf is NUL terminated Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 049/168] cxgb4: Properly lock TX queue for the selftest Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 050/168] net: dsa: mv88e6xxx: Fix number of databases for 88E6141 / 88E6341 Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 051/168] net: bridge: fix multicast-to-unicast with fraglist GSO Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 052/168] net: core: reject skb_copy(_expand) for fraglist GSO skbs Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 053/168] tipc: fix a possible memleak in tipc_buf_append Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 054/168] s390/qeth: dont keep track of Input Queue count Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 055/168] s390/qeth: Fix kernel panic after setting hsuid Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 056/168] drm/panel: ili9341: Respect deferred probe Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 057/168] drm/panel: ili9341: Use predefined error codes Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 058/168] net: gro: add flush check in udp_gro_receive_segment Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 059/168] clk: sunxi-ng: h6: Reparent CPUX during PLL CPUX rate change Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 060/168] KVM: arm64: vgic-v2: Use cpuid from userspace as vcpu_id Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 061/168] KVM: arm64: vgic-v2: Check for non-NULL vCPU in vgic_v2_parse_attr() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 062/168] scsi: lpfc: Move NPIVs transport unregistration to after resource clean up Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 063/168] scsi: lpfc: Update lpfc_ramp_down_queue_handler() logic Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 064/168] scsi: lpfc: Replace hbalock with ndlp lock in lpfc_nvme_unregister_port() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 065/168] gfs2: Fix invalid metadata access in punch_hole Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 066/168] wifi: mac80211: fix ieee80211_bss_*_flags kernel-doc Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 067/168] wifi: cfg80211: fix rdev_dump_mpp() arguments order Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 068/168] net: mark racy access on sk->sk_rcvbuf Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 069/168] scsi: bnx2fc: Remove spin_lock_bh while releasing resources after upload Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 070/168] btrfs: return accurate error code on open failure in open_fs_devices() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 071/168] kbuild: Disable KCSAN for autogenerated *.mod.c intermediaries Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 072/168] ALSA: line6: Zero-initialize message buffers Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 073/168] net: bcmgenet: Reset RBUF on first open Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 074/168] ata: sata_gemini: Check clk_enable() result Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 075/168] firewire: ohci: mask bus reset interrupts between ISR and bottom half Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 076/168] tools/power turbostat: Fix added raw MSR output Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 077/168] tools/power turbostat: Fix Bzy_MHz documentation typo Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 078/168] btrfs: make btrfs_clear_delalloc_extent() free delalloc reserve Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 079/168] btrfs: always clear PERTRANS metadata during commit Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 080/168] scsi: target: Fix SELinux error when systemd-modules loads the target module Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 081/168] blk-iocost: avoid out of bounds shift Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 082/168] gpu: host1x: Do not setup DMA for virtual devices Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 083/168] MIPS: scall: Save thread_info.syscall unconditionally on entry Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 084/168] selftests: timers: Fix valid-adjtimex signed left-shift undefined behavior Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 085/168] iommu: mtk: fix module autoloading Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 086/168] fs/9p: only translate RWX permissions for plain 9P2000 Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 087/168] fs/9p: translate O_TRUNC into OTRUNC Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 088/168] 9p: explicitly deny setlease attempts Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 089/168] gpio: wcove: Use -ENOTSUPP consistently Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 090/168] gpio: crystalcove: " Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 091/168] clk: Dont hold prepare_lock when calling kref_put() Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 092/168] fs/9p: drop inodes immediately on non-.L too Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 093/168] drm/nouveau/dp: Dont probe eDP ports twice harder Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 094/168] net:usb:qmi_wwan: support Rolling modules Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 095/168] bpf, sockmap: TCP data stall on recv before accept Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 096/168] bpf, sockmap: Handle fin correctly Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 097/168] bpf, sockmap: Convert schedule_work into delayed_work Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 098/168] bpf, sockmap: Reschedule is now done through backlog Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 099/168] bpf, sockmap: Improved check for empty queue Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 100/168] ASoC: meson: axg-card: Fix nonatomic links Greg Kroah-Hartman
2024-05-14 12:26   ` Jerome Brunet
2024-05-14 12:59     ` Jerome Brunet
2024-05-15  7:51     ` Greg Kroah-Hartman
2024-05-14 10:19 ` [PATCH 5.15 101/168] ASoC: meson: axg-tdm-interface: Fix formatters in trigger" Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 102/168] qibfs: fix dentry leak Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 103/168] xfrm: Preserve vlan tags for transport mode software GRO Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 104/168] ARM: 9381/1: kasan: clear stale stack poison Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 105/168] tcp: defer shutdown(SEND_SHUTDOWN) for TCP_SYN_RECV sockets Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 106/168] tcp: Use refcount_inc_not_zero() in tcp_twsk_unique() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 107/168] Bluetooth: Fix use-after-free bugs caused by sco_sock_timeout Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 108/168] Bluetooth: l2cap: fix null-ptr-deref in l2cap_chan_timeout Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 109/168] rtnetlink: Correct nested IFLA_VF_VLAN_LIST attribute validation Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 110/168] hwmon: (corsair-cpro) Use a separate buffer for sending commands Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 111/168] hwmon: (corsair-cpro) Use complete_all() instead of complete() in ccp_raw_event() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 112/168] hwmon: (corsair-cpro) Protect ccp->wait_input_report with a spinlock Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 113/168] phonet: fix rtm_phonet_notify() skb allocation Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 114/168] net: bridge: fix corrupted ethernet header on multicast-to-unicast Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 115/168] ipv6: fib6_rules: avoid possible NULL dereference in fib6_rule_action() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 116/168] net: hns3: PF support get unicast MAC address space assigned by firmware Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 117/168] net: hns3: using user configure after hardware reset Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 118/168] net: hns3: add log for workqueue scheduled late Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 119/168] net: hns3: add query vf ring and vector map relation Greg Kroah-Hartman
2024-05-14 10:20 ` Greg Kroah-Hartman [this message]
2024-05-14 10:20 ` [PATCH 5.15 121/168] net: hns3: direct return when receive a unknown mailbox message Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 122/168] net: hns3: refactor hns3 makefile to support hns3_common module Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 123/168] net: hns3: create new cmdq hardware description structure hclge_comm_hw Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 124/168] net: hns3: create new set of unified hclge_comm_cmd_send APIs Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 125/168] net: hns3: refactor hclge_cmd_send with new hclge_comm_cmd_send API Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 126/168] net: hns3: change type of numa_node_mask as nodemask_t Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 127/168] net: hns3: use appropriate barrier function after setting a bit value Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 128/168] net: hns3: split function hclge_init_vlan_config() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 129/168] net: hns3: fix port vlan filter not disabled issue Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 130/168] drm/meson: dw-hdmi: power up phy on device init Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 131/168] drm/meson: dw-hdmi: add bandgap setting for g12 Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 132/168] drm/connector: Add \n to message about demoting connector force-probes Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 133/168] drm/amd/display: Atom Integrated System Info v2_2 for DCN35 Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 134/168] Revert "Revert "ACPI: CPPC: Use access_width over bit_width for system memory accesses"" Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 135/168] ACPI: CPPC: Fix bit_offset shift in MASK_VAL() macro Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 136/168] ACPI: CPPC: Fix access width used for PCC registers Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 137/168] btrfs: fix kvcalloc() arguments order in btrfs_ioctl_send() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 138/168] firewire: nosy: ensure user_length is taken into account when fetching packet contents Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 139/168] Reapply "drm/qxl: simplify qxl_fence_wait" Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 140/168] arm64: dts: qcom: Fix interrupt-map parent address cells Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 141/168] usb: typec: ucsi: Check for notifications after init Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 142/168] usb: typec: ucsi: Fix connector check on init Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 143/168] usb: Fix regression caused by invalid ep0 maxpacket in virtual SuperSpeed device Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 144/168] usb: ohci: Prevent missed ohci interrupts Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 145/168] usb: gadget: composite: fix OS descriptors w_value logic Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 146/168] usb: gadget: f_fs: Fix a race condition when processing setup packets Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 147/168] usb: xhci-plat: Dont include xhci.h Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 148/168] usb: dwc3: core: Prevent phy suspend during init Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 149/168] ALSA: hda/realtek: Fix mute led of HP Laptop 15-da3001TU Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 150/168] btrfs: add missing mutex_unlock in btrfs_relocate_sys_chunks() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 151/168] mptcp: ensure snd_nxt is properly initialized on connect Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 152/168] dt-bindings: iio: health: maxim,max30102: fix compatible check Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 153/168] iio:imu: adis16475: Fix sync mode setting Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 154/168] iio: accel: mxc4005: Interrupt handling fixes Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 155/168] tipc: fix UAF in error path Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 156/168] net: bcmgenet: synchronize use of bcmgenet_set_rx_mode() Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 157/168] ASoC: tegra: Fix DSPK 16-bit playback Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 158/168] ASoC: ti: davinci-mcasp: Fix race condition during probe Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 159/168] dyndbg: fix old BUG_ON in >control parser Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 160/168] slimbus: qcom-ngd-ctrl: Add timeout for wait operation Greg Kroah-Hartman
2024-05-14 10:20 ` [PATCH 5.15 161/168] mei: me: add lunar lake point M DID Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 162/168] drm/vmwgfx: Fix invalid reads in fence signaled events Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 163/168] net: fix out-of-bounds access in ops_init Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 164/168] hwmon: (pmbus/ucd9000) Increase delay from 250 to 500us Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 165/168] regulator: core: fix debugfs creation regression Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 166/168] Bluetooth: qca: add missing firmware sanity checks Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 167/168] Bluetooth: qca: fix NVM configuration parsing Greg Kroah-Hartman
2024-05-14 10:21 ` [PATCH 5.15 168/168] Bluetooth: qca: fix firmware check error path Greg Kroah-Hartman
2024-05-14 16:27 ` [PATCH 5.15 000/168] 5.15.159-rc1 review Harshit Mogalapalli
2024-05-15  0:36   ` Martin Faltesek
2024-05-15  7:55     ` Greg Kroah-Hartman
2024-05-15  3:35 ` Florian Fainelli
2024-05-15 15:08 ` Shuah Khan

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=20240514101011.214469100@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=huangguangbin2@huawei.com \
    --cc=kuba@kernel.org \
    --cc=lanhao@huawei.com \
    --cc=patches@lists.linux.dev \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.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).