All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Mike Christie <michael.christie@oracle.com>,
	Lee Duncan <lduncan@suse.com>,
	"Martin K . Petersen" <martin.petersen@oracle.com>,
	Sasha Levin <sashal@kernel.org>,
	linux-rdma@vger.kernel.org, linux-scsi@vger.kernel.org,
	open-iscsi@googlegroups.com
Subject: [PATCH AUTOSEL 5.13 043/114] scsi: iscsi: Stop queueing during ep_disconnect
Date: Fri,  9 Jul 2021 22:16:37 -0400	[thread overview]
Message-ID: <20210710021748.3167666-43-sashal@kernel.org> (raw)
In-Reply-To: <20210710021748.3167666-1-sashal@kernel.org>

From: Mike Christie <michael.christie@oracle.com>

[ Upstream commit 891e2639deae721dc43764a44fa255890dc34313 ]

During ep_disconnect we have been doing iscsi_suspend_tx/queue to block new
I/O but every driver except cxgbi and iscsi_tcp can still get I/O from
__iscsi_conn_send_pdu() if we haven't called iscsi_conn_failure() before
ep_disconnect. This could happen if we were terminating the session, and
the logout timed out before it was even sent to libiscsi.

Fix the issue by adding a helper which reverses the bind_conn call that
allows new I/O to be queued. Drivers implementing ep_disconnect can use this
to make sure new I/O is not queued to them when handling the disconnect.

Link: https://lore.kernel.org/r/20210525181821.7617-3-michael.christie@oracle.com
Reviewed-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 drivers/infiniband/ulp/iser/iscsi_iser.c |  1 +
 drivers/scsi/be2iscsi/be_main.c          |  1 +
 drivers/scsi/bnx2i/bnx2i_iscsi.c         |  1 +
 drivers/scsi/cxgbi/cxgb3i/cxgb3i.c       |  1 +
 drivers/scsi/cxgbi/cxgb4i/cxgb4i.c       |  1 +
 drivers/scsi/libiscsi.c                  | 70 +++++++++++++++++++++---
 drivers/scsi/qedi/qedi_iscsi.c           |  1 +
 drivers/scsi/qla4xxx/ql4_os.c            |  1 +
 drivers/scsi/scsi_transport_iscsi.c      | 10 +++-
 include/scsi/libiscsi.h                  |  1 +
 include/scsi/scsi_transport_iscsi.h      |  1 +
 11 files changed, 78 insertions(+), 11 deletions(-)

diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
index 8fcaa1136f2c..6baebcb6d14d 100644
--- a/drivers/infiniband/ulp/iser/iscsi_iser.c
+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
@@ -1002,6 +1002,7 @@ static struct iscsi_transport iscsi_iser_transport = {
 	/* connection management */
 	.create_conn            = iscsi_iser_conn_create,
 	.bind_conn              = iscsi_iser_conn_bind,
+	.unbind_conn		= iscsi_conn_unbind,
 	.destroy_conn           = iscsi_conn_teardown,
 	.attr_is_visible	= iser_attr_is_visible,
 	.set_param              = iscsi_iser_set_param,
diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
index 22cf7f4b8d8c..27c4f1598f76 100644
--- a/drivers/scsi/be2iscsi/be_main.c
+++ b/drivers/scsi/be2iscsi/be_main.c
@@ -5809,6 +5809,7 @@ struct iscsi_transport beiscsi_iscsi_transport = {
 	.destroy_session = beiscsi_session_destroy,
 	.create_conn = beiscsi_conn_create,
 	.bind_conn = beiscsi_conn_bind,
+	.unbind_conn = iscsi_conn_unbind,
 	.destroy_conn = iscsi_conn_teardown,
 	.attr_is_visible = beiscsi_attr_is_visible,
 	.set_iface_param = beiscsi_iface_set_param,
diff --git a/drivers/scsi/bnx2i/bnx2i_iscsi.c b/drivers/scsi/bnx2i/bnx2i_iscsi.c
index 1e6d8f62ea3c..b6c1da46d582 100644
--- a/drivers/scsi/bnx2i/bnx2i_iscsi.c
+++ b/drivers/scsi/bnx2i/bnx2i_iscsi.c
@@ -2276,6 +2276,7 @@ struct iscsi_transport bnx2i_iscsi_transport = {
 	.destroy_session	= bnx2i_session_destroy,
 	.create_conn		= bnx2i_conn_create,
 	.bind_conn		= bnx2i_conn_bind,
+	.unbind_conn		= iscsi_conn_unbind,
 	.destroy_conn		= bnx2i_conn_destroy,
 	.attr_is_visible	= bnx2i_attr_is_visible,
 	.set_param		= iscsi_set_param,
diff --git a/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c b/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
index 203f938fca7e..f949a4e00783 100644
--- a/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
+++ b/drivers/scsi/cxgbi/cxgb3i/cxgb3i.c
@@ -117,6 +117,7 @@ static struct iscsi_transport cxgb3i_iscsi_transport = {
 	/* connection management */
 	.create_conn	= cxgbi_create_conn,
 	.bind_conn	= cxgbi_bind_conn,
+	.unbind_conn	= iscsi_conn_unbind,
 	.destroy_conn	= iscsi_tcp_conn_teardown,
 	.start_conn	= iscsi_conn_start,
 	.stop_conn	= iscsi_conn_stop,
diff --git a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
index 2c3491528d42..efb3e2b3398e 100644
--- a/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
+++ b/drivers/scsi/cxgbi/cxgb4i/cxgb4i.c
@@ -134,6 +134,7 @@ static struct iscsi_transport cxgb4i_iscsi_transport = {
 	/* connection management */
 	.create_conn	= cxgbi_create_conn,
 	.bind_conn		= cxgbi_bind_conn,
+	.unbind_conn	= iscsi_conn_unbind,
 	.destroy_conn	= iscsi_tcp_conn_teardown,
 	.start_conn		= iscsi_conn_start,
 	.stop_conn		= iscsi_conn_stop,
diff --git a/drivers/scsi/libiscsi.c b/drivers/scsi/libiscsi.c
index 4834219497ee..2aaf83678654 100644
--- a/drivers/scsi/libiscsi.c
+++ b/drivers/scsi/libiscsi.c
@@ -1387,23 +1387,32 @@ void iscsi_session_failure(struct iscsi_session *session,
 }
 EXPORT_SYMBOL_GPL(iscsi_session_failure);
 
-void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
+static bool iscsi_set_conn_failed(struct iscsi_conn *conn)
 {
 	struct iscsi_session *session = conn->session;
 
-	spin_lock_bh(&session->frwd_lock);
-	if (session->state == ISCSI_STATE_FAILED) {
-		spin_unlock_bh(&session->frwd_lock);
-		return;
-	}
+	if (session->state == ISCSI_STATE_FAILED)
+		return false;
 
 	if (conn->stop_stage == 0)
 		session->state = ISCSI_STATE_FAILED;
-	spin_unlock_bh(&session->frwd_lock);
 
 	set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx);
 	set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_rx);
-	iscsi_conn_error_event(conn->cls_conn, err);
+	return true;
+}
+
+void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
+{
+	struct iscsi_session *session = conn->session;
+	bool needs_evt;
+
+	spin_lock_bh(&session->frwd_lock);
+	needs_evt = iscsi_set_conn_failed(conn);
+	spin_unlock_bh(&session->frwd_lock);
+
+	if (needs_evt)
+		iscsi_conn_error_event(conn->cls_conn, err);
 }
 EXPORT_SYMBOL_GPL(iscsi_conn_failure);
 
@@ -2180,6 +2189,51 @@ static void iscsi_check_transport_timeouts(struct timer_list *t)
 	spin_unlock(&session->frwd_lock);
 }
 
+/**
+ * iscsi_conn_unbind - prevent queueing to conn.
+ * @cls_conn: iscsi conn ep is bound to.
+ * @is_active: is the conn in use for boot or is this for EH/termination
+ *
+ * This must be called by drivers implementing the ep_disconnect callout.
+ * It disables queueing to the connection from libiscsi in preparation for
+ * an ep_disconnect call.
+ */
+void iscsi_conn_unbind(struct iscsi_cls_conn *cls_conn, bool is_active)
+{
+	struct iscsi_session *session;
+	struct iscsi_conn *conn;
+
+	if (!cls_conn)
+		return;
+
+	conn = cls_conn->dd_data;
+	session = conn->session;
+	/*
+	 * Wait for iscsi_eh calls to exit. We don't wait for the tmf to
+	 * complete or timeout. The caller just wants to know what's running
+	 * is everything that needs to be cleaned up, and no cmds will be
+	 * queued.
+	 */
+	mutex_lock(&session->eh_mutex);
+
+	iscsi_suspend_queue(conn);
+	iscsi_suspend_tx(conn);
+
+	spin_lock_bh(&session->frwd_lock);
+	if (!is_active) {
+		/*
+		 * if logout timed out before userspace could even send a PDU
+		 * the state might still be in ISCSI_STATE_LOGGED_IN and
+		 * allowing new cmds and TMFs.
+		 */
+		if (session->state == ISCSI_STATE_LOGGED_IN)
+			iscsi_set_conn_failed(conn);
+	}
+	spin_unlock_bh(&session->frwd_lock);
+	mutex_unlock(&session->eh_mutex);
+}
+EXPORT_SYMBOL_GPL(iscsi_conn_unbind);
+
 static void iscsi_prep_abort_task_pdu(struct iscsi_task *task,
 				      struct iscsi_tm *hdr)
 {
diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c
index 08c05403cd72..ef16537c523c 100644
--- a/drivers/scsi/qedi/qedi_iscsi.c
+++ b/drivers/scsi/qedi/qedi_iscsi.c
@@ -1401,6 +1401,7 @@ struct iscsi_transport qedi_iscsi_transport = {
 	.destroy_session = qedi_session_destroy,
 	.create_conn = qedi_conn_create,
 	.bind_conn = qedi_conn_bind,
+	.unbind_conn = iscsi_conn_unbind,
 	.start_conn = qedi_conn_start,
 	.stop_conn = iscsi_conn_stop,
 	.destroy_conn = qedi_conn_destroy,
diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
index ad3afe30f617..74d0d1bc208d 100644
--- a/drivers/scsi/qla4xxx/ql4_os.c
+++ b/drivers/scsi/qla4xxx/ql4_os.c
@@ -259,6 +259,7 @@ static struct iscsi_transport qla4xxx_iscsi_transport = {
 	.start_conn             = qla4xxx_conn_start,
 	.create_conn            = qla4xxx_conn_create,
 	.bind_conn              = qla4xxx_conn_bind,
+	.unbind_conn		= iscsi_conn_unbind,
 	.stop_conn              = iscsi_conn_stop,
 	.destroy_conn           = qla4xxx_conn_destroy,
 	.set_param              = iscsi_set_param,
diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
index 441f0152193f..82491343e94a 100644
--- a/drivers/scsi/scsi_transport_iscsi.c
+++ b/drivers/scsi/scsi_transport_iscsi.c
@@ -2964,7 +2964,7 @@ static int iscsi_if_ep_connect(struct iscsi_transport *transport,
 }
 
 static int iscsi_if_ep_disconnect(struct iscsi_transport *transport,
-				  u64 ep_handle)
+				  u64 ep_handle, bool is_active)
 {
 	struct iscsi_cls_conn *conn;
 	struct iscsi_endpoint *ep;
@@ -2981,6 +2981,8 @@ static int iscsi_if_ep_disconnect(struct iscsi_transport *transport,
 		conn->ep = NULL;
 		mutex_unlock(&conn->ep_mutex);
 		conn->state = ISCSI_CONN_FAILED;
+
+		transport->unbind_conn(conn, is_active);
 	}
 
 	transport->ep_disconnect(ep);
@@ -3012,7 +3014,8 @@ iscsi_if_transport_ep(struct iscsi_transport *transport,
 		break;
 	case ISCSI_UEVENT_TRANSPORT_EP_DISCONNECT:
 		rc = iscsi_if_ep_disconnect(transport,
-					    ev->u.ep_disconnect.ep_handle);
+					    ev->u.ep_disconnect.ep_handle,
+					    false);
 		break;
 	}
 	return rc;
@@ -3737,7 +3740,7 @@ iscsi_if_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh, uint32_t *group)
 		conn = iscsi_conn_lookup(ev->u.b_conn.sid, ev->u.b_conn.cid);
 
 		if (conn && conn->ep)
-			iscsi_if_ep_disconnect(transport, conn->ep->id);
+			iscsi_if_ep_disconnect(transport, conn->ep->id, true);
 
 		if (!session || !conn) {
 			err = -EINVAL;
@@ -4656,6 +4659,7 @@ iscsi_register_transport(struct iscsi_transport *tt)
 	int err;
 
 	BUG_ON(!tt);
+	WARN_ON(tt->ep_disconnect && !tt->unbind_conn);
 
 	priv = iscsi_if_transport_lookup(tt);
 	if (priv)
diff --git a/include/scsi/libiscsi.h b/include/scsi/libiscsi.h
index 02f966e9358f..091f284bd6e9 100644
--- a/include/scsi/libiscsi.h
+++ b/include/scsi/libiscsi.h
@@ -424,6 +424,7 @@ extern int iscsi_conn_start(struct iscsi_cls_conn *);
 extern void iscsi_conn_stop(struct iscsi_cls_conn *, int);
 extern int iscsi_conn_bind(struct iscsi_cls_session *, struct iscsi_cls_conn *,
 			   int);
+extern void iscsi_conn_unbind(struct iscsi_cls_conn *cls_conn, bool is_active);
 extern void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err);
 extern void iscsi_session_failure(struct iscsi_session *session,
 				  enum iscsi_err err);
diff --git a/include/scsi/scsi_transport_iscsi.h b/include/scsi/scsi_transport_iscsi.h
index fc5a39839b4b..8874016b3c9a 100644
--- a/include/scsi/scsi_transport_iscsi.h
+++ b/include/scsi/scsi_transport_iscsi.h
@@ -82,6 +82,7 @@ struct iscsi_transport {
 	void (*destroy_session) (struct iscsi_cls_session *session);
 	struct iscsi_cls_conn *(*create_conn) (struct iscsi_cls_session *sess,
 				uint32_t cid);
+	void (*unbind_conn) (struct iscsi_cls_conn *conn, bool is_active);
 	int (*bind_conn) (struct iscsi_cls_session *session,
 			  struct iscsi_cls_conn *cls_conn,
 			  uint64_t transport_eph, int is_leading);
-- 
2.30.2


  parent reply	other threads:[~2021-07-10  2:19 UTC|newest]

Thread overview: 110+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-10  2:15 [PATCH AUTOSEL 5.13 001/114] leds: tlc591xx: fix return value check in tlc591xx_probe() Sasha Levin
2021-07-10  2:15 ` [PATCH AUTOSEL 5.13 002/114] ASoC: Intel: sof_sdw: add mutual exclusion between PCH DMIC and RT715 Sasha Levin
2021-07-10  2:15   ` Sasha Levin
2021-07-10  2:15 ` [PATCH AUTOSEL 5.13 003/114] ASoC: Intel: sof_sdw: add SOF_RT715_DAI_ID_FIX for AlderLake Sasha Levin
2021-07-10  2:15   ` Sasha Levin
2021-07-10  2:15 ` [PATCH AUTOSEL 5.13 004/114] dmaengine: fsl-qdma: check dma_set_mask return value Sasha Levin
2021-07-10  2:15 ` [PATCH AUTOSEL 5.13 005/114] scsi: arcmsr: Fix the wrong CDB payload report to IOP Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 006/114] srcu: Fix broken node geometry after early ssp init Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 007/114] rcu: Reject RCU_LOCKDEP_WARN() false positives Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 008/114] soundwire: bus: only use CLOCK_STOP_MODE0 and fix confusions Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 009/114] soundwire: bus: handle -ENODATA errors in clock stop/start sequences Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 010/114] usb: dwc3: pci: Fix DEFINE for Intel Elkhart Lake Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 011/114] tty: serial: fsl_lpuart: fix the potential risk of division or modulo by zero Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 012/114] serial: fsl_lpuart: disable DMA for console and fix sysrq Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 013/114] serial: 8250: of: Check for CONFIG_SERIAL_8250_BCM7271 Sasha Levin
2021-07-10  2:33   ` Florian Fainelli
2021-07-18  0:39     ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 014/114] misc/libmasm/module: Fix two use after free in ibmasm_init_one Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 015/114] misc: alcor_pci: fix null-ptr-deref when there is no PCI bridge Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 016/114] ASoC: intel/boards: add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 017/114] partitions: msdos: fix one-byte get_unaligned() Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 018/114] iio: imu: st_lsm6dsx: correct ODR in header Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 019/114] iio: gyro: fxa21002c: Balance runtime pm + use pm_runtime_resume_and_get() Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 020/114] iio: magn: bmc150: " Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 021/114] ALSA: usx2y: Avoid camelCase Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 022/114] ALSA: usx2y: Don't call free_pages_exact() with NULL address Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 023/114] Revert "ALSA: bebob/oxfw: fix Kconfig entry for Mackie d.2 Pro" Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 024/114] usb: common: usb-conn-gpio: fix NULL pointer dereference of charger Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 025/114] ASoC: SOF: topology: fix assignment to use le32_to_cpu Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 026/114] w1: ds2438: fixing bug that would always get page0 Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 027/114] ASoC: Intel: sof_sdw: add quirk support for Brya and BT-offload Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 028/114] scsi: arcmsr: Fix doorbell status being updated late on ARC-1886 Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 029/114] scsi: hisi_sas: Propagate errors in interrupt_init_v1_hw() Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 030/114] scsi: lpfc: Fix "Unexpected timeout" error in direct attach topology Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 031/114] scsi: lpfc: Fix crash when lpfc_sli4_hba_setup() fails to initialize the SGLs Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 032/114] scsi: core: Cap scsi_host cmd_per_lun at can_queue Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 033/114] ALSA: ac97: fix PM reference leak in ac97_bus_remove() Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 034/114] ASoC: cs42l42: Fix 1536000 Bit Clock instability Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 035/114] tty: serial: 8250: serial_cs: Fix a memory leak in error handling path Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 036/114] scsi: mpt3sas: Fix deadlock while cancelling the running firmware event Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 037/114] scsi: core: Fixup calling convention for scsi_mode_sense() Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 038/114] scsi: scsi_dh_alua: Check for negative result value Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 039/114] fs/jfs: Fix missing error code in lmLogInit() Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 040/114] scsi: megaraid_sas: Fix resource leak in case of probe failure Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 041/114] scsi: megaraid_sas: Early detection of VD deletion through RaidMap update Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 042/114] scsi: megaraid_sas: Handle missing interrupts while re-enabling IRQs Sasha Levin
2021-07-10  2:16 ` Sasha Levin [this message]
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 044/114] scsi: iscsi: Add iscsi_cls_conn refcount helpers Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 045/114] scsi: iscsi: Fix conn use after free during resets Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 046/114] scsi: iscsi: Fix shost->max_id use Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 047/114] scsi: qedi: Fix null ref during abort handling Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 048/114] scsi: qedi: Fix race during abort timeouts Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 049/114] scsi: qedi: Fix TMF session block/unblock use Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 050/114] scsi: qedi: Fix cleanup " Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 051/114] mfd: da9052/stmpe: Add and modify MODULE_DEVICE_TABLE Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 052/114] mfd: cpcap: Fix cpcap dmamask not set warnings Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 053/114] char: xillybus: Fix condition for invoking the xillybus/ subdirectory Sasha Levin
2021-07-10  5:17   ` Eli Billauer
2021-07-18  0:43     ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 054/114] ASoC: img: Fix PM reference leak in img_i2s_in_probe() Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 055/114] iov_iter_advance(): use consistent semantics for move past the end Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 056/114] fsi: Add missing MODULE_DEVICE_TABLE Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 057/114] serial: tty: uartlite: fix console setup Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 058/114] s390/sclp_vt220: fix console name to match device Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 059/114] s390: disable SSP when needed Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 060/114] selftests: timers: rtcpie: skip test if default RTC device does not exist Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 061/114] iommu/arm-smmu-qcom: Skip the TTBR1 quirk for db820c Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 062/114] USB: core: Avoid WARNings for 0-length descriptor requests Sasha Levin
2021-07-10  6:23   ` Greg Kroah-Hartman
2021-07-18  0:44     ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 063/114] ALSA: sb: Fix potential double-free of CSP mixer elements Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 064/114] powerpc/ps3: Add dma_mask to ps3_dma_region Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16 ` [PATCH AUTOSEL 5.13 065/114] iommu/arm-smmu: Fix arm_smmu_device refcount leak when arm_smmu_rpm_get fails Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:16   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 066/114] iommu/arm-smmu: Fix arm_smmu_device refcount leak in address translation Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 067/114] ALSA: n64: check return value after calling platform_get_resource() Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 068/114] ALSA: control_led - fix initialization in the mode show callback Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 069/114] ASoC: soc-pcm: fix the return value in dpcm_apply_symmetry() Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 070/114] gpio: zynq: Check return value of pm_runtime_get_sync Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 071/114] gpio: zynq: Check return value of irq_get_irq_data Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 072/114] thunderbolt: Fix DROM handling for USB4 DROM Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 073/114] powerpc/inst: Fix sparse detection on get_user_instr() Sasha Levin
2021-07-10  2:17   ` Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 074/114] scsi: storvsc: Correctly handle multiple flags in srb_status Sasha Levin
2021-07-10  2:17 ` [PATCH AUTOSEL 5.13 075/114] ALSA: ppc: fix error return code in snd_pmac_probe() Sasha Levin
2021-07-10  2:17   ` 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=20210710021748.3167666-43-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=lduncan@suse.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rdma@vger.kernel.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    --cc=michael.christie@oracle.com \
    --cc=open-iscsi@googlegroups.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.