stable.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Stephen Rust <srust@blockbridge.com>,
	Doug Dumitru <doug@dumitru.com>, Sagi Grimberg <sagi@grimberg.me>,
	Jason Gunthorpe <jgg@nvidia.com>, Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.4 031/132] IB/isert: Fix unaligned immediate-data handling
Date: Tue, 15 Sep 2020 16:12:13 +0200	[thread overview]
Message-ID: <20200915140645.688938399@linuxfoundation.org> (raw)
In-Reply-To: <20200915140644.037604909@linuxfoundation.org>

From: Sagi Grimberg <sagi@grimberg.me>

[ Upstream commit 0b089c1ef7047652b13b4cdfdb1e0e7dbdb8c9ab ]

Currently we allocate rx buffers in a single contiguous buffers for
headers (iser and iscsi) and data trailer. This means that most likely the
data starting offset is aligned to 76 bytes (size of both headers).

This worked fine for years, but at some point this broke, resulting in
data corruptions in isert when a command comes with immediate data and the
underlying backend device assumes 512 bytes buffer alignment.

We assume a hard-requirement for all direct I/O buffers to be 512 bytes
aligned. To fix this, we should avoid passing unaligned buffers for I/O.

Instead, we allocate our recv buffers with some extra space such that we
can have the data portion align to 512 byte boundary. This also means that
we cannot reference headers or data using structure but rather
accessors (as they may move based on alignment). Also, get rid of the
wrong __packed annotation from iser_rx_desc as this has only harmful
effects (not aligned to anything).

This affects the rx descriptors for iscsi login and data plane.

Fixes: 3d75ca0adef4 ("block: introduce multi-page bvec helpers")
Link: https://lore.kernel.org/r/20200904195039.31687-1-sagi@grimberg.me
Reported-by: Stephen Rust <srust@blockbridge.com>
Tested-by: Doug Dumitru <doug@dumitru.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/infiniband/ulp/isert/ib_isert.c | 93 +++++++++++++------------
 drivers/infiniband/ulp/isert/ib_isert.h | 41 ++++++++---
 2 files changed, 78 insertions(+), 56 deletions(-)

diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
index a1a035270cabf..71268d61d2b8a 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.c
+++ b/drivers/infiniband/ulp/isert/ib_isert.c
@@ -182,15 +182,15 @@ isert_alloc_rx_descriptors(struct isert_conn *isert_conn)
 	rx_desc = isert_conn->rx_descs;
 
 	for (i = 0; i < ISERT_QP_MAX_RECV_DTOS; i++, rx_desc++)  {
-		dma_addr = ib_dma_map_single(ib_dev, (void *)rx_desc,
-					ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+		dma_addr = ib_dma_map_single(ib_dev, rx_desc->buf,
+					ISER_RX_SIZE, DMA_FROM_DEVICE);
 		if (ib_dma_mapping_error(ib_dev, dma_addr))
 			goto dma_map_fail;
 
 		rx_desc->dma_addr = dma_addr;
 
 		rx_sg = &rx_desc->rx_sg;
-		rx_sg->addr = rx_desc->dma_addr;
+		rx_sg->addr = rx_desc->dma_addr + isert_get_hdr_offset(rx_desc);
 		rx_sg->length = ISER_RX_PAYLOAD_SIZE;
 		rx_sg->lkey = device->pd->local_dma_lkey;
 		rx_desc->rx_cqe.done = isert_recv_done;
@@ -202,7 +202,7 @@ dma_map_fail:
 	rx_desc = isert_conn->rx_descs;
 	for (j = 0; j < i; j++, rx_desc++) {
 		ib_dma_unmap_single(ib_dev, rx_desc->dma_addr,
-				    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+				    ISER_RX_SIZE, DMA_FROM_DEVICE);
 	}
 	kfree(isert_conn->rx_descs);
 	isert_conn->rx_descs = NULL;
@@ -223,7 +223,7 @@ isert_free_rx_descriptors(struct isert_conn *isert_conn)
 	rx_desc = isert_conn->rx_descs;
 	for (i = 0; i < ISERT_QP_MAX_RECV_DTOS; i++, rx_desc++)  {
 		ib_dma_unmap_single(ib_dev, rx_desc->dma_addr,
-				    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+				    ISER_RX_SIZE, DMA_FROM_DEVICE);
 	}
 
 	kfree(isert_conn->rx_descs);
@@ -408,10 +408,9 @@ isert_free_login_buf(struct isert_conn *isert_conn)
 			    ISER_RX_PAYLOAD_SIZE, DMA_TO_DEVICE);
 	kfree(isert_conn->login_rsp_buf);
 
-	ib_dma_unmap_single(ib_dev, isert_conn->login_req_dma,
-			    ISER_RX_PAYLOAD_SIZE,
-			    DMA_FROM_DEVICE);
-	kfree(isert_conn->login_req_buf);
+	ib_dma_unmap_single(ib_dev, isert_conn->login_desc->dma_addr,
+			    ISER_RX_SIZE, DMA_FROM_DEVICE);
+	kfree(isert_conn->login_desc);
 }
 
 static int
@@ -420,25 +419,25 @@ isert_alloc_login_buf(struct isert_conn *isert_conn,
 {
 	int ret;
 
-	isert_conn->login_req_buf = kzalloc(sizeof(*isert_conn->login_req_buf),
+	isert_conn->login_desc = kzalloc(sizeof(*isert_conn->login_desc),
 			GFP_KERNEL);
-	if (!isert_conn->login_req_buf)
+	if (!isert_conn->login_desc)
 		return -ENOMEM;
 
-	isert_conn->login_req_dma = ib_dma_map_single(ib_dev,
-				isert_conn->login_req_buf,
-				ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
-	ret = ib_dma_mapping_error(ib_dev, isert_conn->login_req_dma);
+	isert_conn->login_desc->dma_addr = ib_dma_map_single(ib_dev,
+				isert_conn->login_desc->buf,
+				ISER_RX_SIZE, DMA_FROM_DEVICE);
+	ret = ib_dma_mapping_error(ib_dev, isert_conn->login_desc->dma_addr);
 	if (ret) {
-		isert_err("login_req_dma mapping error: %d\n", ret);
-		isert_conn->login_req_dma = 0;
-		goto out_free_login_req_buf;
+		isert_err("login_desc dma mapping error: %d\n", ret);
+		isert_conn->login_desc->dma_addr = 0;
+		goto out_free_login_desc;
 	}
 
 	isert_conn->login_rsp_buf = kzalloc(ISER_RX_PAYLOAD_SIZE, GFP_KERNEL);
 	if (!isert_conn->login_rsp_buf) {
 		ret = -ENOMEM;
-		goto out_unmap_login_req_buf;
+		goto out_unmap_login_desc;
 	}
 
 	isert_conn->login_rsp_dma = ib_dma_map_single(ib_dev,
@@ -455,11 +454,11 @@ isert_alloc_login_buf(struct isert_conn *isert_conn,
 
 out_free_login_rsp_buf:
 	kfree(isert_conn->login_rsp_buf);
-out_unmap_login_req_buf:
-	ib_dma_unmap_single(ib_dev, isert_conn->login_req_dma,
-			    ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
-out_free_login_req_buf:
-	kfree(isert_conn->login_req_buf);
+out_unmap_login_desc:
+	ib_dma_unmap_single(ib_dev, isert_conn->login_desc->dma_addr,
+			    ISER_RX_SIZE, DMA_FROM_DEVICE);
+out_free_login_desc:
+	kfree(isert_conn->login_desc);
 	return ret;
 }
 
@@ -578,7 +577,7 @@ isert_connect_release(struct isert_conn *isert_conn)
 		ib_destroy_qp(isert_conn->qp);
 	}
 
-	if (isert_conn->login_req_buf)
+	if (isert_conn->login_desc)
 		isert_free_login_buf(isert_conn);
 
 	isert_device_put(device);
@@ -964,17 +963,18 @@ isert_login_post_recv(struct isert_conn *isert_conn)
 	int ret;
 
 	memset(&sge, 0, sizeof(struct ib_sge));
-	sge.addr = isert_conn->login_req_dma;
+	sge.addr = isert_conn->login_desc->dma_addr +
+		isert_get_hdr_offset(isert_conn->login_desc);
 	sge.length = ISER_RX_PAYLOAD_SIZE;
 	sge.lkey = isert_conn->device->pd->local_dma_lkey;
 
 	isert_dbg("Setup sge: addr: %llx length: %d 0x%08x\n",
 		sge.addr, sge.length, sge.lkey);
 
-	isert_conn->login_req_buf->rx_cqe.done = isert_login_recv_done;
+	isert_conn->login_desc->rx_cqe.done = isert_login_recv_done;
 
 	memset(&rx_wr, 0, sizeof(struct ib_recv_wr));
-	rx_wr.wr_cqe = &isert_conn->login_req_buf->rx_cqe;
+	rx_wr.wr_cqe = &isert_conn->login_desc->rx_cqe;
 	rx_wr.sg_list = &sge;
 	rx_wr.num_sge = 1;
 
@@ -1051,7 +1051,7 @@ post_send:
 static void
 isert_rx_login_req(struct isert_conn *isert_conn)
 {
-	struct iser_rx_desc *rx_desc = isert_conn->login_req_buf;
+	struct iser_rx_desc *rx_desc = isert_conn->login_desc;
 	int rx_buflen = isert_conn->login_req_len;
 	struct iscsi_conn *conn = isert_conn->conn;
 	struct iscsi_login *login = conn->conn_login;
@@ -1063,7 +1063,7 @@ isert_rx_login_req(struct isert_conn *isert_conn)
 
 	if (login->first_request) {
 		struct iscsi_login_req *login_req =
-			(struct iscsi_login_req *)&rx_desc->iscsi_header;
+			(struct iscsi_login_req *)isert_get_iscsi_hdr(rx_desc);
 		/*
 		 * Setup the initial iscsi_login values from the leading
 		 * login request PDU.
@@ -1082,13 +1082,13 @@ isert_rx_login_req(struct isert_conn *isert_conn)
 		login->tsih		= be16_to_cpu(login_req->tsih);
 	}
 
-	memcpy(&login->req[0], (void *)&rx_desc->iscsi_header, ISCSI_HDR_LEN);
+	memcpy(&login->req[0], isert_get_iscsi_hdr(rx_desc), ISCSI_HDR_LEN);
 
 	size = min(rx_buflen, MAX_KEY_VALUE_PAIRS);
 	isert_dbg("Using login payload size: %d, rx_buflen: %d "
 		  "MAX_KEY_VALUE_PAIRS: %d\n", size, rx_buflen,
 		  MAX_KEY_VALUE_PAIRS);
-	memcpy(login->req_buf, &rx_desc->data[0], size);
+	memcpy(login->req_buf, isert_get_data(rx_desc), size);
 
 	if (login->first_request) {
 		complete(&isert_conn->login_comp);
@@ -1153,14 +1153,15 @@ isert_handle_scsi_cmd(struct isert_conn *isert_conn,
 	if (imm_data_len != data_len) {
 		sg_nents = max(1UL, DIV_ROUND_UP(imm_data_len, PAGE_SIZE));
 		sg_copy_from_buffer(cmd->se_cmd.t_data_sg, sg_nents,
-				    &rx_desc->data[0], imm_data_len);
+				    isert_get_data(rx_desc), imm_data_len);
 		isert_dbg("Copy Immediate sg_nents: %u imm_data_len: %d\n",
 			  sg_nents, imm_data_len);
 	} else {
 		sg_init_table(&isert_cmd->sg, 1);
 		cmd->se_cmd.t_data_sg = &isert_cmd->sg;
 		cmd->se_cmd.t_data_nents = 1;
-		sg_set_buf(&isert_cmd->sg, &rx_desc->data[0], imm_data_len);
+		sg_set_buf(&isert_cmd->sg, isert_get_data(rx_desc),
+				imm_data_len);
 		isert_dbg("Transfer Immediate imm_data_len: %d\n",
 			  imm_data_len);
 	}
@@ -1229,9 +1230,9 @@ isert_handle_iscsi_dataout(struct isert_conn *isert_conn,
 	}
 	isert_dbg("Copying DataOut: sg_start: %p, sg_off: %u "
 		  "sg_nents: %u from %p %u\n", sg_start, sg_off,
-		  sg_nents, &rx_desc->data[0], unsol_data_len);
+		  sg_nents, isert_get_data(rx_desc), unsol_data_len);
 
-	sg_copy_from_buffer(sg_start, sg_nents, &rx_desc->data[0],
+	sg_copy_from_buffer(sg_start, sg_nents, isert_get_data(rx_desc),
 			    unsol_data_len);
 
 	rc = iscsit_check_dataout_payload(cmd, hdr, false);
@@ -1290,7 +1291,7 @@ isert_handle_text_cmd(struct isert_conn *isert_conn, struct isert_cmd *isert_cmd
 	}
 	cmd->text_in_ptr = text_in;
 
-	memcpy(cmd->text_in_ptr, &rx_desc->data[0], payload_length);
+	memcpy(cmd->text_in_ptr, isert_get_data(rx_desc), payload_length);
 
 	return iscsit_process_text_cmd(conn, cmd, hdr);
 }
@@ -1300,7 +1301,7 @@ isert_rx_opcode(struct isert_conn *isert_conn, struct iser_rx_desc *rx_desc,
 		uint32_t read_stag, uint64_t read_va,
 		uint32_t write_stag, uint64_t write_va)
 {
-	struct iscsi_hdr *hdr = &rx_desc->iscsi_header;
+	struct iscsi_hdr *hdr = isert_get_iscsi_hdr(rx_desc);
 	struct iscsi_conn *conn = isert_conn->conn;
 	struct iscsi_cmd *cmd;
 	struct isert_cmd *isert_cmd;
@@ -1398,8 +1399,8 @@ isert_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 	struct isert_conn *isert_conn = wc->qp->qp_context;
 	struct ib_device *ib_dev = isert_conn->cm_id->device;
 	struct iser_rx_desc *rx_desc = cqe_to_rx_desc(wc->wr_cqe);
-	struct iscsi_hdr *hdr = &rx_desc->iscsi_header;
-	struct iser_ctrl *iser_ctrl = &rx_desc->iser_header;
+	struct iscsi_hdr *hdr = isert_get_iscsi_hdr(rx_desc);
+	struct iser_ctrl *iser_ctrl = isert_get_iser_hdr(rx_desc);
 	uint64_t read_va = 0, write_va = 0;
 	uint32_t read_stag = 0, write_stag = 0;
 
@@ -1413,7 +1414,7 @@ isert_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 	rx_desc->in_use = true;
 
 	ib_dma_sync_single_for_cpu(ib_dev, rx_desc->dma_addr,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 
 	isert_dbg("DMA: 0x%llx, iSCSI opcode: 0x%02x, ITT: 0x%08x, flags: 0x%02x dlen: %d\n",
 		 rx_desc->dma_addr, hdr->opcode, hdr->itt, hdr->flags,
@@ -1448,7 +1449,7 @@ isert_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 			read_stag, read_va, write_stag, write_va);
 
 	ib_dma_sync_single_for_device(ib_dev, rx_desc->dma_addr,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 }
 
 static void
@@ -1462,8 +1463,8 @@ isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 		return;
 	}
 
-	ib_dma_sync_single_for_cpu(ib_dev, isert_conn->login_req_dma,
-			ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+	ib_dma_sync_single_for_cpu(ib_dev, isert_conn->login_desc->dma_addr,
+			ISER_RX_SIZE, DMA_FROM_DEVICE);
 
 	isert_conn->login_req_len = wc->byte_len - ISER_HEADERS_LEN;
 
@@ -1478,8 +1479,8 @@ isert_login_recv_done(struct ib_cq *cq, struct ib_wc *wc)
 	complete(&isert_conn->login_req_comp);
 	mutex_unlock(&isert_conn->mutex);
 
-	ib_dma_sync_single_for_device(ib_dev, isert_conn->login_req_dma,
-				ISER_RX_PAYLOAD_SIZE, DMA_FROM_DEVICE);
+	ib_dma_sync_single_for_device(ib_dev, isert_conn->login_desc->dma_addr,
+				ISER_RX_SIZE, DMA_FROM_DEVICE);
 }
 
 static void
diff --git a/drivers/infiniband/ulp/isert/ib_isert.h b/drivers/infiniband/ulp/isert/ib_isert.h
index 3b296bac4f603..d267a6d60d87d 100644
--- a/drivers/infiniband/ulp/isert/ib_isert.h
+++ b/drivers/infiniband/ulp/isert/ib_isert.h
@@ -59,9 +59,11 @@
 				ISERT_MAX_TX_MISC_PDUS	+ \
 				ISERT_MAX_RX_MISC_PDUS)
 
-#define ISER_RX_PAD_SIZE	(ISCSI_DEF_MAX_RECV_SEG_LEN + 4096 - \
-		(ISER_RX_PAYLOAD_SIZE + sizeof(u64) + sizeof(struct ib_sge) + \
-		 sizeof(struct ib_cqe) + sizeof(bool)))
+/*
+ * RX size is default of 8k plus headers, but data needs to align to
+ * 512 boundary, so use 1024 to have the extra space for alignment.
+ */
+#define ISER_RX_SIZE		(ISCSI_DEF_MAX_RECV_SEG_LEN + 1024)
 
 #define ISCSI_ISER_SG_TABLESIZE		256
 
@@ -80,21 +82,41 @@ enum iser_conn_state {
 };
 
 struct iser_rx_desc {
-	struct iser_ctrl iser_header;
-	struct iscsi_hdr iscsi_header;
-	char		data[ISCSI_DEF_MAX_RECV_SEG_LEN];
+	char		buf[ISER_RX_SIZE];
 	u64		dma_addr;
 	struct ib_sge	rx_sg;
 	struct ib_cqe	rx_cqe;
 	bool		in_use;
-	char		pad[ISER_RX_PAD_SIZE];
-} __packed;
+};
 
 static inline struct iser_rx_desc *cqe_to_rx_desc(struct ib_cqe *cqe)
 {
 	return container_of(cqe, struct iser_rx_desc, rx_cqe);
 }
 
+static void *isert_get_iser_hdr(struct iser_rx_desc *desc)
+{
+	return PTR_ALIGN(desc->buf + ISER_HEADERS_LEN, 512) - ISER_HEADERS_LEN;
+}
+
+static size_t isert_get_hdr_offset(struct iser_rx_desc *desc)
+{
+	return isert_get_iser_hdr(desc) - (void *)desc->buf;
+}
+
+static void *isert_get_iscsi_hdr(struct iser_rx_desc *desc)
+{
+	return isert_get_iser_hdr(desc) + sizeof(struct iser_ctrl);
+}
+
+static void *isert_get_data(struct iser_rx_desc *desc)
+{
+	void *data = isert_get_iser_hdr(desc) + ISER_HEADERS_LEN;
+
+	WARN_ON((uintptr_t)data & 511);
+	return data;
+}
+
 struct iser_tx_desc {
 	struct iser_ctrl iser_header;
 	struct iscsi_hdr iscsi_header;
@@ -141,9 +163,8 @@ struct isert_conn {
 	u32			responder_resources;
 	u32			initiator_depth;
 	bool			pi_support;
-	struct iser_rx_desc	*login_req_buf;
+	struct iser_rx_desc	*login_desc;
 	char			*login_rsp_buf;
-	u64			login_req_dma;
 	int			login_req_len;
 	u64			login_rsp_dma;
 	struct iser_rx_desc	*rx_descs;
-- 
2.25.1




  parent reply	other threads:[~2020-09-16  0:07 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-15 14:11 [PATCH 5.4 000/132] 5.4.66-rc1 review Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 001/132] ARM: dts: logicpd-torpedo-baseboard: Fix broken audio Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 002/132] ARM: dts: logicpd-som-lv-baseboard: " Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 003/132] ARM: dts: logicpd-som-lv-baseboard: Fix missing video Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 004/132] regulator: push allocation in regulator_ena_gpio_request() out of lock Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 005/132] regulator: remove superfluous lock in regulator_resolve_coupling() Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 006/132] ARM: dts: socfpga: fix register entry for timer3 on Arria10 Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 007/132] selftests/timers: Turn off timeout setting Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 008/132] ARM: dts: ls1021a: fix QuadSPI-memory reg range Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 009/132] ARM: dts: imx7ulp: Correct gpio ranges Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 010/132] RDMA/rxe: Fix memleak in rxe_mem_init_user Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 011/132] RDMA/rxe: Drop pointless checks in rxe_init_ports Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 012/132] RDMA/rxe: Fix panic when calling kmem_cache_create() Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 013/132] RDMA/bnxt_re: Do not report transparent vlan from QP1 Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 014/132] drm/sun4i: add missing put_device() call in sun8i_r40_tcon_tv_set_mux() Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 015/132] arm64: dts: imx8mq: Fix TMU interrupt property Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 016/132] drm/sun4i: Fix dsi dcs long write function Greg Kroah-Hartman
2020-09-15 14:11 ` [PATCH 5.4 017/132] iio: adc: mcp3422: fix locking on error path Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 018/132] scsi: libsas: Set data_dir as DMA_NONE if libata marks qc as NODATA Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 019/132] RDMA/core: Fix reported speed and width Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 020/132] scsi: megaraid_sas: Dont call disable_irq from process IRQ poll Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 021/132] scsi: mpt3sas: Dont call disable_irq from IRQ poll handler Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 022/132] soundwire: fix double free of dangling pointer Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 023/132] drm/sun4i: backend: Support alpha property on lowest plane Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 024/132] drm/sun4i: backend: Disable alpha on the lowest plane on the A20 Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 025/132] mmc: sdhci-acpi: Clear amd_sdhci_host on reset Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 026/132] mmc: sdhci-msm: Add retries when all tuning phases are found valid Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 027/132] spi: stm32: Rate-limit the Communication suspended message Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 028/132] nvme-fabrics: allow to queue requests for live queues Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 029/132] spi: stm32: fix pm_runtime_get_sync() error checking Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 030/132] block: Set same_page to false in __bio_try_merge_page if ret is false Greg Kroah-Hartman
2020-09-15 14:12 ` Greg Kroah-Hartman [this message]
2020-09-15 14:12 ` [PATCH 5.4 032/132] ARM: dts: bcm: HR2: Fixed QSPI compatible string Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 033/132] ARM: dts: NSP: " Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 034/132] ARM: dts: BCM5301X: " Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 035/132] arm64: dts: ns2: " Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 036/132] ARC: HSDK: wireup perf irq Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 037/132] dmaengine: acpi: Put the CSRT table after using it Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 038/132] netfilter: conntrack: allow sctp hearbeat after connection re-use Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 039/132] drivers/net/wan/lapbether: Added needed_tailroom Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 040/132] NFC: st95hf: Fix memleak in st95hf_in_send_cmd Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 041/132] firestream: Fix memleak in fs_open Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 042/132] ALSA: hda: Fix 2 channel swapping for Tegra Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 043/132] ALSA: hda/tegra: Program WAKEEN register " Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 044/132] drivers/dma/dma-jz4780: Fix race condition between probe and irq handler Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 045/132] net: hns3: Fix for geneve tx checksum bug Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 046/132] xfs: fix off-by-one in inode alloc block reservation calculation Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 047/132] drivers/net/wan/lapbether: Set network_header before transmitting Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 048/132] cfg80211: Adjust 6 GHz frequency to channel conversion Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 049/132] xfs: initialize the shortform attr header padding entry Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 050/132] irqchip/eznps: Fix build error for !ARC700 builds Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 051/132] nvmet-tcp: Fix NULL dereference when a connect data comes in h2cdata pdu Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 052/132] nvme-fabrics: dont check state NVME_CTRL_NEW for request acceptance Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 053/132] nvme: have nvme_wait_freeze_timeout return if it timed out Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 054/132] nvme-tcp: serialize controller teardown sequences Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 055/132] nvme-tcp: fix timeout handler Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 056/132] nvme-tcp: fix reset hang if controller died in the middle of a reset Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 057/132] nvme-rdma: serialize controller teardown sequences Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 058/132] nvme-rdma: fix timeout handler Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 059/132] nvme-rdma: fix reset hang if controller died in the middle of a reset Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 060/132] nvme-pci: cancel nvme device request before disabling Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 061/132] HID: quirks: Set INCREMENT_USAGE_ON_DUPLICATE for all Saitek X52 devices Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 062/132] HID: microsoft: Add rumble support for the 8bitdo SN30 Pro+ controller Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 063/132] drivers/net/wan/hdlc_cisco: Add hard_header_len Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 064/132] HID: elan: Fix memleak in elan_input_configured Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 065/132] ARC: [plat-hsdk]: Switch ethernet phy-mode to rgmii-id Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 066/132] cpufreq: intel_pstate: Refuse to turn off with HWP enabled Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 067/132] cpufreq: intel_pstate: Fix intel_pstate_get_hwp_max() for turbo disabled Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 068/132] arm64/module: set trampoline section flags regardless of CONFIG_DYNAMIC_FTRACE Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 069/132] ALSA: hda: hdmi - add Rocketlake support Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 070/132] ALSA: hda: fix a runtime pm issue in SOF when integrated GPU is disabled Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 071/132] drm/amdgpu: Fix bug in reporting voltage for CIK Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 072/132] iommu/amd: Do not use IOMMUv2 functionality when SME is active Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 073/132] gcov: Disable gcov build with GCC 10 Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 074/132] iio: adc: mcp3422: fix locking scope Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 075/132] iio: adc: ti-ads1015: fix conversion when CONFIG_PM is not set Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 076/132] iio: cros_ec: Set Gyroscope default frequency to 25Hz Greg Kroah-Hartman
2020-09-15 14:12 ` [PATCH 5.4 077/132] iio:light:ltr501 Fix timestamp alignment issue Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 078/132] iio:proximity:mb1232: Fix timestamp alignment and prevent data leak Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 079/132] iio:accel:bmc150-accel: " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 080/132] iio:adc:ti-adc084s021 Fix alignment and data leak issues Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 081/132] iio:adc:ina2xx Fix timestamp alignment issue Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 082/132] iio:adc:max1118 Fix alignment of timestamp and data leak issues Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 083/132] iio:adc:ti-adc081c Fix alignment " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 084/132] iio:magnetometer:ak8975 " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 085/132] iio:light:max44000 Fix timestamp alignment and prevent data leak Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 086/132] iio:chemical:ccs811: " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 087/132] iio: accel: kxsd9: Fix alignment of local buffer Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 088/132] iio:accel:mma7455: Fix timestamp alignment and prevent data leak Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 089/132] iio:accel:mma8452: " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 090/132] staging: wlan-ng: fix out of bounds read in prism2sta_probe_usb() Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 091/132] btrfs: require only sector size alignment for parent eb bytenr Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 092/132] btrfs: fix lockdep splat in add_missing_dev Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 093/132] btrfs: fix wrong address when faulting in pages in the search ioctl Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 094/132] firmware_loader: fix memory leak for paged buffer Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 095/132] kobject: Restore old behaviour of kobject_del(NULL) Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 096/132] regulator: push allocation in regulator_init_coupling() outside of lock Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 097/132] regulator: push allocations in create_regulator() " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 098/132] regulator: push allocation in set_consumer_device_supply() out " Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 099/132] regulator: plug of_node leak in regulator_register()s error path Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 100/132] regulator: core: Fix slab-out-of-bounds in regulator_unlock_recursive() Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 101/132] scsi: target: iscsi: Fix data digest calculation Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 102/132] scsi: target: iscsi: Fix hang in iscsit_access_np() when getting tpg->np_login_sem Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 103/132] drm/i915/gvt: do not check len & max_len for lri Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 104/132] drm/tve200: Stabilize enable/disable Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 105/132] drm/msm: Split the a5xx preemption record Greg Kroah-Hartman
2020-09-15 15:54   ` Jordan Crouse
2020-09-15 16:39     ` Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 106/132] drm/msm: Disable preemption on all 5xx targets Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 107/132] mmc: sdio: Use mmc_pre_req() / mmc_post_req() Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 108/132] mmc: sdhci-of-esdhc: Dont walk device-tree on every interrupt Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 109/132] rbd: require global CAP_SYS_ADMIN for mapping and unmapping Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 110/132] RDMA/rxe: Fix the parent sysfs read when the interface has 15 chars Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 111/132] RDMA/mlx4: Read pkey table length instead of hardcoded value Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 112/132] fbcon: remove soft scrollback code Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 113/132] fbcon: remove now unusued softback_lines cursor() argument Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 114/132] vgacon: remove software scrollback support Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 115/132] KVM: VMX: Dont freeze guest when event delivery causes an APIC-access exit Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 116/132] KVM: arm64: Do not try to map PUDs when they are folded into PMD Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 117/132] KVM: fix memory leak in kvm_io_bus_unregister_dev() Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 118/132] debugfs: Fix module state check condition Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 119/132] ARM: dts: vfxxx: Add syscon compatible with OCOTP Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 120/132] video: fbdev: fix OOB read in vga_8planes_imageblit() Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 121/132] staging: greybus: audio: fix uninitialized value issue Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 122/132] phy: qcom-qmp: Use correct values for ipq8074 PCIe Gen2 PHY init Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 123/132] usb: core: fix slab-out-of-bounds Read in read_descriptors Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 124/132] USB: serial: ftdi_sio: add IDs for Xsens Mti USB converter Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 125/132] USB: serial: option: support dynamic Quectel USB compositions Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 126/132] USB: serial: option: add support for SIM7070/SIM7080/SIM7090 modules Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 127/132] usb: Fix out of sync data toggle if a configured device is reconfigured Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 128/132] usb: typec: ucsi: acpi: Check the _DEP dependencies Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 129/132] drm/msm/gpu: make ringbuffer readonly Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 130/132] drm/msm/a6xx: update a6xx_hw_init for A640 and A650 Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 131/132] drm/msm: Enable expanded apriv support for a650 Greg Kroah-Hartman
2020-09-15 16:03   ` Jordan Crouse
2020-09-15 16:41     ` Greg Kroah-Hartman
2020-09-15 14:13 ` [PATCH 5.4 132/132] drm/msm: Disable the RPTR shadow Greg Kroah-Hartman
2020-09-15 14:44 ` [PATCH 5.4 000/132] 5.4.66-rc1 review Naresh Kamboju
2020-09-15 16:40   ` Greg Kroah-Hartman

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=20200915140645.688938399@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=doug@dumitru.com \
    --cc=jgg@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sagi@grimberg.me \
    --cc=sashal@kernel.org \
    --cc=srust@blockbridge.com \
    --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).