linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Sagi Grimberg <sagi@grimberg.me>, Keith Busch <kbusch@kernel.org>,
	Hannes Reinecke <hare@suse.de>, Daniel Wagner <dwagner@suse.de>,
	Christoph Hellwig <hch@lst.de>, Sasha Levin <sashal@kernel.org>,
	linux-nvme@lists.infradead.org
Subject: [PATCH AUTOSEL 5.13 140/219] nvme: code command_id with a genctr for use-after-free validation
Date: Thu,  9 Sep 2021 07:45:16 -0400	[thread overview]
Message-ID: <20210909114635.143983-140-sashal@kernel.org> (raw)
In-Reply-To: <20210909114635.143983-1-sashal@kernel.org>

From: Sagi Grimberg <sagi@grimberg.me>

[ Upstream commit e7006de6c23803799be000a5dcce4d916a36541a ]

We cannot detect a (perhaps buggy) controller that is sending us
a completion for a request that was already completed (for example
sending a completion twice), this phenomenon was seen in the wild
a few times.

So to protect against this, we use the upper 4 msbits of the nvme sqe
command_id to use as a 4-bit generation counter and verify it matches
the existing request generation that is incrementing on every execution.

The 16-bit command_id structure now is constructed by:
| xxxx | xxxxxxxxxxxx |
  gen    request tag

This means that we are giving up some possible queue depth as 12 bits
allow for a maximum queue depth of 4095 instead of 65536, however we
never create such long queues anyways so no real harm done.

Suggested-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Acked-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Reviewed-by: Daniel Wagner <dwagner@suse.de>
Tested-by: Daniel Wagner <dwagner@suse.de>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/nvme/host/core.c   |  3 ++-
 drivers/nvme/host/nvme.h   | 47 +++++++++++++++++++++++++++++++++++++-
 drivers/nvme/host/pci.c    |  2 +-
 drivers/nvme/host/rdma.c   |  4 ++--
 drivers/nvme/host/tcp.c    | 26 ++++++++++-----------
 drivers/nvme/target/loop.c |  4 ++--
 6 files changed, 66 insertions(+), 20 deletions(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 148e756857a8..a13eec2fca5a 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1009,7 +1009,8 @@ blk_status_t nvme_setup_cmd(struct nvme_ns *ns, struct request *req)
 		return BLK_STS_IOERR;
 	}
 
-	cmd->common.command_id = req->tag;
+	nvme_req(req)->genctr++;
+	cmd->common.command_id = nvme_cid(req);
 	trace_nvme_setup_cmd(req, cmd);
 	return ret;
 }
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 0015860ec12b..632076b9c1c9 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -158,6 +158,7 @@ enum nvme_quirks {
 struct nvme_request {
 	struct nvme_command	*cmd;
 	union nvme_result	result;
+	u8			genctr;
 	u8			retries;
 	u8			flags;
 	u16			status;
@@ -497,6 +498,49 @@ struct nvme_ctrl_ops {
 	int (*get_address)(struct nvme_ctrl *ctrl, char *buf, int size);
 };
 
+/*
+ * nvme command_id is constructed as such:
+ * | xxxx | xxxxxxxxxxxx |
+ *   gen    request tag
+ */
+#define nvme_genctr_mask(gen)			(gen & 0xf)
+#define nvme_cid_install_genctr(gen)		(nvme_genctr_mask(gen) << 12)
+#define nvme_genctr_from_cid(cid)		((cid & 0xf000) >> 12)
+#define nvme_tag_from_cid(cid)			(cid & 0xfff)
+
+static inline u16 nvme_cid(struct request *rq)
+{
+	return nvme_cid_install_genctr(nvme_req(rq)->genctr) | rq->tag;
+}
+
+static inline struct request *nvme_find_rq(struct blk_mq_tags *tags,
+		u16 command_id)
+{
+	u8 genctr = nvme_genctr_from_cid(command_id);
+	u16 tag = nvme_tag_from_cid(command_id);
+	struct request *rq;
+
+	rq = blk_mq_tag_to_rq(tags, tag);
+	if (unlikely(!rq)) {
+		pr_err("could not locate request for tag %#x\n",
+			tag);
+		return NULL;
+	}
+	if (unlikely(nvme_genctr_mask(nvme_req(rq)->genctr) != genctr)) {
+		dev_err(nvme_req(rq)->ctrl->device,
+			"request %#x genctr mismatch (got %#x expected %#x)\n",
+			tag, genctr, nvme_genctr_mask(nvme_req(rq)->genctr));
+		return NULL;
+	}
+	return rq;
+}
+
+static inline struct request *nvme_cid_to_rq(struct blk_mq_tags *tags,
+                u16 command_id)
+{
+	return blk_mq_tag_to_rq(tags, nvme_tag_from_cid(command_id));
+}
+
 #ifdef CONFIG_FAULT_INJECTION_DEBUG_FS
 void nvme_fault_inject_init(struct nvme_fault_inject *fault_inj,
 			    const char *dev_name);
@@ -594,7 +638,8 @@ static inline void nvme_put_ctrl(struct nvme_ctrl *ctrl)
 
 static inline bool nvme_is_aen_req(u16 qid, __u16 command_id)
 {
-	return !qid && command_id >= NVME_AQ_BLK_MQ_DEPTH;
+	return !qid &&
+		nvme_tag_from_cid(command_id) >= NVME_AQ_BLK_MQ_DEPTH;
 }
 
 void nvme_complete_rq(struct request *req);
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index d963f25fc7ae..01feb1c2278d 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1017,7 +1017,7 @@ static inline void nvme_handle_cqe(struct nvme_queue *nvmeq, u16 idx)
 		return;
 	}
 
-	req = blk_mq_tag_to_rq(nvme_queue_tagset(nvmeq), command_id);
+	req = nvme_find_rq(nvme_queue_tagset(nvmeq), command_id);
 	if (unlikely(!req)) {
 		dev_warn(nvmeq->dev->ctrl.device,
 			"invalid id %d completed on queue %d\n",
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index 4697a94c0945..f61bf39c39a0 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -1731,10 +1731,10 @@ static void nvme_rdma_process_nvme_rsp(struct nvme_rdma_queue *queue,
 	struct request *rq;
 	struct nvme_rdma_request *req;
 
-	rq = blk_mq_tag_to_rq(nvme_rdma_tagset(queue), cqe->command_id);
+	rq = nvme_find_rq(nvme_rdma_tagset(queue), cqe->command_id);
 	if (!rq) {
 		dev_err(queue->ctrl->ctrl.device,
-			"tag 0x%x on QP %#x not found\n",
+			"got bad command_id %#x on QP %#x\n",
 			cqe->command_id, queue->qp->qp_num);
 		nvme_rdma_error_recovery(queue->ctrl);
 		return;
diff --git a/drivers/nvme/host/tcp.c b/drivers/nvme/host/tcp.c
index 7a949f6d5aea..d87ef76e36f9 100644
--- a/drivers/nvme/host/tcp.c
+++ b/drivers/nvme/host/tcp.c
@@ -487,11 +487,11 @@ static int nvme_tcp_process_nvme_cqe(struct nvme_tcp_queue *queue,
 {
 	struct request *rq;
 
-	rq = blk_mq_tag_to_rq(nvme_tcp_tagset(queue), cqe->command_id);
+	rq = nvme_find_rq(nvme_tcp_tagset(queue), cqe->command_id);
 	if (!rq) {
 		dev_err(queue->ctrl->ctrl.device,
-			"queue %d tag 0x%x not found\n",
-			nvme_tcp_queue_id(queue), cqe->command_id);
+			"got bad cqe.command_id %#x on queue %d\n",
+			cqe->command_id, nvme_tcp_queue_id(queue));
 		nvme_tcp_error_recovery(&queue->ctrl->ctrl);
 		return -EINVAL;
 	}
@@ -508,11 +508,11 @@ static int nvme_tcp_handle_c2h_data(struct nvme_tcp_queue *queue,
 {
 	struct request *rq;
 
-	rq = blk_mq_tag_to_rq(nvme_tcp_tagset(queue), pdu->command_id);
+	rq = nvme_find_rq(nvme_tcp_tagset(queue), pdu->command_id);
 	if (!rq) {
 		dev_err(queue->ctrl->ctrl.device,
-			"queue %d tag %#x not found\n",
-			nvme_tcp_queue_id(queue), pdu->command_id);
+			"got bad c2hdata.command_id %#x on queue %d\n",
+			pdu->command_id, nvme_tcp_queue_id(queue));
 		return -ENOENT;
 	}
 
@@ -606,7 +606,7 @@ static int nvme_tcp_setup_h2c_data_pdu(struct nvme_tcp_request *req,
 	data->hdr.plen =
 		cpu_to_le32(data->hdr.hlen + hdgst + req->pdu_len + ddgst);
 	data->ttag = pdu->ttag;
-	data->command_id = rq->tag;
+	data->command_id = nvme_cid(rq);
 	data->data_offset = cpu_to_le32(req->data_sent);
 	data->data_length = cpu_to_le32(req->pdu_len);
 	return 0;
@@ -619,11 +619,11 @@ static int nvme_tcp_handle_r2t(struct nvme_tcp_queue *queue,
 	struct request *rq;
 	int ret;
 
-	rq = blk_mq_tag_to_rq(nvme_tcp_tagset(queue), pdu->command_id);
+	rq = nvme_find_rq(nvme_tcp_tagset(queue), pdu->command_id);
 	if (!rq) {
 		dev_err(queue->ctrl->ctrl.device,
-			"queue %d tag %#x not found\n",
-			nvme_tcp_queue_id(queue), pdu->command_id);
+			"got bad r2t.command_id %#x on queue %d\n",
+			pdu->command_id, nvme_tcp_queue_id(queue));
 		return -ENOENT;
 	}
 	req = blk_mq_rq_to_pdu(rq);
@@ -703,7 +703,7 @@ static int nvme_tcp_recv_data(struct nvme_tcp_queue *queue, struct sk_buff *skb,
 {
 	struct nvme_tcp_data_pdu *pdu = (void *)queue->pdu;
 	struct request *rq =
-		blk_mq_tag_to_rq(nvme_tcp_tagset(queue), pdu->command_id);
+		nvme_cid_to_rq(nvme_tcp_tagset(queue), pdu->command_id);
 	struct nvme_tcp_request *req = blk_mq_rq_to_pdu(rq);
 
 	while (true) {
@@ -796,8 +796,8 @@ static int nvme_tcp_recv_ddgst(struct nvme_tcp_queue *queue,
 	}
 
 	if (pdu->hdr.flags & NVME_TCP_F_DATA_SUCCESS) {
-		struct request *rq = blk_mq_tag_to_rq(nvme_tcp_tagset(queue),
-						pdu->command_id);
+		struct request *rq = nvme_cid_to_rq(nvme_tcp_tagset(queue),
+					pdu->command_id);
 
 		nvme_tcp_end_request(rq, NVME_SC_SUCCESS);
 		queue->nr_cqe++;
diff --git a/drivers/nvme/target/loop.c b/drivers/nvme/target/loop.c
index a5c4a1865026..f6ee47de3038 100644
--- a/drivers/nvme/target/loop.c
+++ b/drivers/nvme/target/loop.c
@@ -107,10 +107,10 @@ static void nvme_loop_queue_response(struct nvmet_req *req)
 	} else {
 		struct request *rq;
 
-		rq = blk_mq_tag_to_rq(nvme_loop_tagset(queue), cqe->command_id);
+		rq = nvme_find_rq(nvme_loop_tagset(queue), cqe->command_id);
 		if (!rq) {
 			dev_err(queue->ctrl->ctrl.device,
-				"tag 0x%x on queue %d not found\n",
+				"got bad command_id %#x on queue %d\n",
 				cqe->command_id, nvme_loop_queue_idx(queue));
 			return;
 		}
-- 
2.30.2


  parent reply	other threads:[~2021-09-09 12:30 UTC|newest]

Thread overview: 226+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-09 11:42 [PATCH AUTOSEL 5.13 001/219] drm/vmwgfx: Fix subresource updates with new contexts Sasha Levin
2021-09-09 11:42 ` [PATCH AUTOSEL 5.13 002/219] drm/vmwgfx: Fix some static checker warnings Sasha Levin
2021-09-09 11:42 ` [PATCH AUTOSEL 5.13 003/219] drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 004/219] drm/omap: Follow implicit fencing in prepare_fb Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 005/219] drm/amdgpu: Fix amdgpu_ras_eeprom_init() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 006/219] ASoC: ti: davinci-mcasp: Fix DIT mode support Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 007/219] ASoC: atmel: ATMEL drivers don't need HAS_DMA Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 008/219] media: dib8000: rewrite the init prbs logic Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 009/219] media: ti-vpe: cal: fix error handling in cal_camerarx_create Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 010/219] media: ti-vpe: cal: fix queuing of the initial buffer Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 011/219] libbpf: Fix reuse of pinned map on older kernel Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 012/219] drm/vkms: Let shadow-plane helpers prepare the plane's FB Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 013/219] x86/hyperv: fix for unwanted manipulation of sched_clock when TSC marked unstable Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 014/219] crypto: mxs-dcp - Use sg_mapping_iter to copy data Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 015/219] PCI: Use pci_update_current_state() in pci_enable_device_flags() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 016/219] tipc: keep the skb in rcv queue until the whole data is read Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 017/219] net: phy: Fix data type in DP83822 dp8382x_disable_wol() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 018/219] iio: dac: ad5624r: Fix incorrect handling of an optional regulator Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 019/219] iavf: do not override the adapter state in the watchdog task Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 020/219] iavf: fix locking of critical sections Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 021/219] ARM: dts: qcom: apq8064: correct clock names Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 022/219] video: fbdev: kyro: fix a DoS bug by restricting user input Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 023/219] drm/ast: Disable fast reset after DRAM initial Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 024/219] netlink: Deal with ESRCH error in nlmsg_notify() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 025/219] net: ipa: fix IPA v4.11 interconnect data Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 026/219] Smack: Fix wrong semantics in smk_access_entry() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 027/219] drm: avoid blocking in drm_clients_info's rcu section Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 028/219] drm: serialize drm_file.master with a new spinlock Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 029/219] drm: protect drm_master pointers in drm_lease.c Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 030/219] rcu: Fix macro name CONFIG_TASKS_RCU_TRACE Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 031/219] igc: Check if num of q_vectors is smaller than max before array access Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 032/219] usb: host: fotg210: fix the endpoint's transactional opportunities calculation Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 033/219] usb: host: fotg210: fix the actual_length of an iso packet Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 034/219] usb: gadget: u_ether: fix a potential null pointer dereference Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 035/219] USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 036/219] usb: gadget: composite: Allow bMaxPower=0 if self-powered Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 037/219] staging: board: Fix uninitialized spinlock when attaching genpd Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 038/219] staging: hisilicon,hi6421-spmi-pmic.yaml: fix patternProperties Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 039/219] tty: serial: jsm: hold port lock when reporting modem line changes Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 040/219] bus: fsl-mc: fix arg in call to dprc_scan_objects() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 041/219] bus: fsl-mc: fix mmio base address for child DPRCs Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 042/219] misc/pvpanic-pci: Allow automatic loading Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 043/219] selftests: firmware: Fix ignored return val of asprintf() warn Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 044/219] drm/amd/display: Fix timer_per_pixel unit error Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 045/219] media: hantro: vp8: Move noisy WARN_ON to vpu_debug Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 046/219] media: platform: stm32: unprepare clocks at handling errors in probe Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 047/219] media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 048/219] media: atomisp: pci: fix error return code in atomisp_pci_probe() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 049/219] nfp: fix return statement in nfp_net_parse_meta() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 050/219] spi: imx: fix ERR009165 Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 051/219] spi: imx: remove ERR009165 workaround on i.mx6ul Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 052/219] ethtool: improve compat ioctl handling Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 053/219] drm/amdgpu: Fix a printing message Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 054/219] drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 055/219] bpf/tests: Fix copy-and-paste error in double word test Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 056/219] bpf/tests: Do not PASS tests without actually testing the result Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 057/219] drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 058/219] arm64: dts: allwinner: h6: tanix-tx6: Fix regulator node names Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 059/219] video: fbdev: asiliantfb: Error out if 'pixclock' equals zero Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 060/219] video: fbdev: kyro: " Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 061/219] video: fbdev: riva: " Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 062/219] net: ipa: fix ipa_cmd_table_valid() Sasha Levin
2021-09-09 11:43 ` [PATCH AUTOSEL 5.13 063/219] ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 064/219] flow_dissector: Fix out-of-bounds warnings Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 065/219] s390/jump_label: print real address in a case of a jump label bug Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 066/219] s390: make PCI mio support a machine flag Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 067/219] serial: 8250: Define RX trigger levels for OxSemi 950 devices Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 068/219] xtensa: ISS: don't panic in rs_init Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 069/219] hvsi: don't panic on tty_register_driver failure Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 070/219] serial: 8250_pci: make setup_port() parameters explicitly unsigned Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 071/219] staging: ks7010: Fix the initialization of the 'sleep_status' structure Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 072/219] samples: bpf: Fix tracex7 error raised on the missing argument Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 073/219] libbpf: Fix race when pinning maps in parallel Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 074/219] ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 075/219] i2c: i801: Fix handling SMBHSTCNT_PEC_EN Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 076/219] drm: rcar-du: Shutdown the display on system shutdown Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 077/219] Bluetooth: skip invalid hci_sync_conn_complete_evt Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 078/219] workqueue: Fix possible memory leaks in wq_numa_init() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 079/219] ARM: dts: stm32: Set {bitclock,frame}-master phandles on DHCOM SoM Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 080/219] ARM: dts: stm32: Set {bitclock,frame}-master phandles on ST DKx Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 081/219] ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 082/219] netfilter: nft_compat: use nfnetlink_unicast() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 083/219] bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 084/219] ARM: dts: at91: use the right property for shutdown controller Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 085/219] arm64: tegra: Fix Tegra194 PCIe EP compatible string Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 086/219] ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 087/219] bpf: Fix off-by-one in tail call count limiting Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 088/219] ASoC: Intel: update sof_pcm512x quirks Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 089/219] Bluetooth: Fix not generating RPA when required Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 090/219] dpaa2-switch: do not enable the DPSW at probe time Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 091/219] media: imx258: Rectify mismatch of VTS value Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 092/219] media: imx258: Limit the max analogue gain to 480 Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 093/219] media: imx: imx7-media-csi: Fix buffer return upon stream start failure Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 094/219] media: v4l2-dv-timings.c: fix wrong condition in two for-loops Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 095/219] media: TDA1997x: fix tda1997x_query_dv_timings() return value Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 096/219] media: tegra-cec: Handle errors of clk_prepare_enable() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 097/219] gfs2: Fix glock recursion in freeze_go_xmote_bh Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 098/219] arm64: dts: qcom: sdm630: Rewrite memory map Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 099/219] arm64: dts: qcom: sdm630: Fix TLMM node and pinctrl configuration Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 100/219] net: ipa: fix IPA v4.9 interconnects Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 101/219] serial: 8250_omap: Handle optional overrun-throttle-ms property Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 102/219] ARM: dts: imx53-ppd: Fix ACHC entry Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 103/219] arm64: dts: qcom: ipq8074: fix pci node reg property Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 104/219] arm64: dts: qcom: sdm660: use reg value for memory node Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 105/219] arm64: dts: qcom: ipq6018: drop '0x' from unit address Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 106/219] arm64: dts: qcom: sdm630: don't use underscore in node name Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 107/219] arm64: dts: qcom: msm8994: " Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 108/219] arm64: dts: qcom: msm8996: " Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 109/219] arm64: dts: qcom: sm8250: Fix epss_l3 unit address Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 110/219] nvmem: qfprom: Fix up qfprom_disable_fuse_blowing() ordering Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 111/219] net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe() Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 112/219] drm/msm: mdp4: drop vblank get/put from prepare/complete_commit Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 113/219] drm/msm/dsi: Fix DSI and DSI PHY regulator config from SDM660 Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 114/219] drm: xlnx: zynqmp_dpsub: Call pm_runtime_get_sync before setting pixel clock Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 115/219] drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 116/219] spi: tegra20-slink: Improve runtime PM usage Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 117/219] thunderbolt: Fix port linking by checking all adapters Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 118/219] drm/amd/display: fix missing writeback disablement if plane is removed Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 119/219] drm/amd/display: fix incorrect CM/TF programming sequence in dwb Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 120/219] selftests/bpf: Fix xdp_tx.c prog section name Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 121/219] drm/vmwgfx: fix potential UAF in vmwgfx_surface.c Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 122/219] staging: rtl8723bs: fix right side of condition Sasha Levin
2021-09-09 11:44 ` [PATCH AUTOSEL 5.13 123/219] Bluetooth: schedule SCO timeouts with delayed_work Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 124/219] Bluetooth: avoid circular locks in sco_sock_connect Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 125/219] drm/msm/dp: reduce link rate if failed at link training 1 Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 126/219] drm/msm/dp: return correct edid checksum after corrupted edid checksum read Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 127/219] drm/msm/dp: do not end dp link training until video is ready Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 128/219] net/mlx5: Fix variable type to match 64bit Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 129/219] gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port() Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 130/219] drm/display: fix possible null-pointer dereference in dcn10_set_clock() Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 131/219] mac80211: Fix monitor MTU limit so that A-MSDUs get through Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 132/219] ARM: tegra: acer-a500: Remove bogus USB VBUS regulators Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 133/219] ARM: tegra: tamonten: Fix UART pad setting Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 134/219] arm64: tegra: Fix compatible string for Tegra132 CPUs Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 135/219] arm64: dts: imx8mm-venice-gw700x: fix mp5416 pmic config Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 136/219] arm64: dts: imx8mm-venice-gw700x: fix invalid pmic pin config Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 137/219] arm64: dts: imx8mm-venice-gw71xx: fix USB OTG VBUS Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 138/219] arm64: dts: ls1046a: fix eeprom entries Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 139/219] nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data Sasha Levin
2021-09-09 11:45 ` Sasha Levin [this message]
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 141/219] ACPICA: iASL: Fix for WPBT table with no command-line arguments Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 142/219] Bluetooth: Fix handling of LE Enhanced Connection Complete Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 143/219] opp: Don't print an error if required-opps is missing Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 144/219] serial: sh-sci: fix break handling for sysrq Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 145/219] iomap: pass writeback errors to the mapping Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 146/219] tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 147/219] locking/rtmutex: Set proper wait context for lockdep Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 148/219] rpc: fix gss_svc_init cleanup on failure Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 149/219] iavf: use mutexes for locking of critical sections Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 150/219] selftests/bpf: Correctly display subtest skip status Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 151/219] selftests/bpf: Fix flaky send_signal test Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 152/219] hwmon: (pmbus/ibm-cffps) Fix write bits for LED control Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 153/219] staging: rts5208: Fix get_ms_information() heap buffer size Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 154/219] selftests: nci: Fix the code for next nlattr offset Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 155/219] selftests: nci: Fix the wrong condition Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 156/219] net: Fix offloading indirect devices dependency on qdisc order creation Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 157/219] kselftest/arm64: mte: Fix misleading output when skipping tests Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 158/219] kselftest/arm64: pac: Fix skipping of tests on systems without PAC Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 159/219] gfs2: Don't call dlm after protocol is unmounted Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 160/219] usb: chipidea: host: fix port index underflow and UBSAN complains Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 161/219] lockd: lockd server-side shouldn't set fl_ops Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 162/219] drm/exynos: Always initialize mapping in exynos_drm_register_dma() Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 163/219] rtl8xxxu: Fix the handling of TX A-MPDU aggregation Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 164/219] rtw88: use read_poll_timeout instead of fixed sleep Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 165/219] rtw88: wow: build wow function only if CONFIG_PM is on Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 166/219] rtw88: wow: fix size access error of probe request Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 167/219] octeontx2-pf: Fix NIX1_RX interface backpressure Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 168/219] m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 169/219] btrfs: remove racy and unnecessary inode transaction update when using no-holes Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 170/219] btrfs: reset this_bio_flag to avoid inheriting old flags Sasha Levin
2021-09-09 13:00   ` David Sterba
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 171/219] btrfs: subpage: check if there are compressed extents inside one page Sasha Levin
2021-09-09 11:58   ` David Sterba
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 172/219] btrfs: grab correct extent map for subpage compressed extent read Sasha Levin
2021-09-09 11:58   ` David Sterba
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 173/219] btrfs: subpage: fix race between prepare_pages() and btrfs_releasepage() Sasha Levin
2021-09-09 11:58   ` David Sterba
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 174/219] btrfs: subpage: fix false alert when relocating partial preallocated data extents Sasha Levin
2021-09-09 11:58   ` David Sterba
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 175/219] btrfs: tree-log: check btrfs_lookup_data_extent return value Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 176/219] ASoC: intel: atom: Revert PCM buffer address setup workaround again Sasha Levin
2021-09-09 11:54   ` Takashi Iwai
2021-09-11 14:38     ` Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 177/219] soundwire: intel: fix potential race condition during power down Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 178/219] ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 179/219] ASoC: Intel: Skylake: Fix passing loadable flag for module Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 180/219] of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 181/219] mmc: sdhci-of-arasan: Modified SD default speed to 19MHz for ZynqMP Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 182/219] mmc: sdhci-of-arasan: Check return value of non-void funtions Sasha Levin
2021-09-09 11:45 ` [PATCH AUTOSEL 5.13 183/219] mmc: rtsx_pci: Fix long reads when clock is prescaled Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 184/219] mptcp: fix ADD_ADDR and RM_ADDR maybe flush addr_signal each other Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 185/219] selftests/bpf: Enlarge select() timeout for test_maps Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 186/219] mmc: core: Return correct emmc response in case of ioctl error Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 187/219] samples: pktgen: fix to print when terminated normally Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 188/219] cifs: fix wrong release in sess_alloc_buffer() failed path Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 189/219] Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set" Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 190/219] usb: dwc3: imx8mp: request irq after initializing dwc3 Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 191/219] usb: musb: musb_dsps: request_irq() after initializing musb Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 192/219] usbip: give back URBs for unsent unlink requests during cleanup Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 193/219] usbip:vhci_hcd USB port can get stuck in the disabled state Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 194/219] usb: xhci-mtk: fix use-after-free of mtk->hcd Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 195/219] ASoC: rockchip: i2s: Fix regmap_ops hang Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 196/219] ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 197/219] ASoC: soc-pcm: protect BE dailink state changes in trigger Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 198/219] drm/amdkfd: Account for SH/SE count when setting up cu masks Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 199/219] nfs: don't atempt blocking locks on nfs reexports Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 200/219] nfsd: fix crash on LOCKT on reexported NFSv3 Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 201/219] iwlwifi: pcie: free RBs during configure Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 202/219] iwlwifi: mvm: Do not use full SSIDs in 6GHz scan Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 203/219] iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 204/219] iwlwifi: mvm: avoid static queue number aliasing Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 205/219] iwlwifi: mvm: Fix umac scan request probe parameters Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 206/219] iwlwifi: mvm: fix access to BSS elements Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 207/219] iwlwifi: fw: correctly limit to monitor dump Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 208/219] iwlwifi: mvm: Fix scan channel flags settings Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 209/219] net/mlx5: DR, fix a potential use-after-free bug Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 210/219] net/mlx5: DR, Enable QP retransmission Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 211/219] parport: remove non-zero check on count Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 212/219] selftests/bpf: Fix potential unreleased lock Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 213/219] wcn36xx: Fix missing frame timestamp for beacon/probe-resp Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 214/219] ath9k: fix OOB read ar9300_eeprom_restore_internal Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 215/219] ath9k: fix sleeping in atomic context Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 216/219] net: fix NULL pointer reference in cipso_v4_doi_free Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 217/219] fix array-index-out-of-bounds in taprio_change Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 218/219] net: w5100: check return value after calling platform_get_resource() Sasha Levin
2021-09-09 11:46 ` [PATCH AUTOSEL 5.13 219/219] net: hns3: clean up a type mismatch warning Sasha Levin

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=20210909114635.143983-140-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=dwagner@suse.de \
    --cc=hare@suse.de \
    --cc=hch@lst.de \
    --cc=kbusch@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=sagi@grimberg.me \
    --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).