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, Sagi Grimberg <sagig@mellanox.com>,
	Nicholas Bellinger <nab@linux-iscsi.org>
Subject: [PATCH 4.1 110/123] iscsi-target: Fix iscsit_start_kthreads failure OOPs
Date: Sat,  8 Aug 2015 15:09:48 -0700	[thread overview]
Message-ID: <20150808220721.476145831@linuxfoundation.org> (raw)
In-Reply-To: <20150808220717.771230091@linuxfoundation.org>

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

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

From: Nicholas Bellinger <nab@linux-iscsi.org>

commit e54198657b65625085834847ab6271087323ffea upstream.

This patch fixes a regression introduced with the following commit
in v4.0-rc1 code, where a iscsit_start_kthreads() failure triggers
a NULL pointer dereference OOPs:

    commit 88dcd2dab5c23b1c9cfc396246d8f476c872f0ca
    Author: Nicholas Bellinger <nab@linux-iscsi.org>
    Date:   Thu Feb 26 22:19:15 2015 -0800

        iscsi-target: Convert iscsi_thread_set usage to kthread.h

To address this bug, move iscsit_start_kthreads() immediately
preceeding the transmit of last login response, before signaling
a successful transition into full-feature-phase within existing
iscsi_target_do_tx_login_io() logic.

This ensures that no target-side resource allocation failures can
occur after the final login response has been successfully sent.

Also, it adds a iscsi_conn->rx_login_comp to allow the RX thread
to sleep to prevent other socket related failures until the final
iscsi_post_login_handler() call is able to complete.

Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 drivers/target/iscsi/iscsi_target.c       |   18 ++++++++++--
 drivers/target/iscsi/iscsi_target_login.c |   45 +++++++++++-------------------
 drivers/target/iscsi/iscsi_target_login.h |    3 +-
 drivers/target/iscsi/iscsi_target_nego.c  |   34 ++++++++++++++++++++++
 include/target/iscsi/iscsi_target_core.h  |    1 
 5 files changed, 68 insertions(+), 33 deletions(-)

--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -4001,7 +4001,13 @@ get_immediate:
 	}
 
 transport_err:
-	iscsit_take_action_for_connection_exit(conn);
+	/*
+	 * Avoid the normal connection failure code-path if this connection
+	 * is still within LOGIN mode, and iscsi_np process context is
+	 * responsible for cleaning up the early connection failure.
+	 */
+	if (conn->conn_state != TARG_CONN_STATE_IN_LOGIN)
+		iscsit_take_action_for_connection_exit(conn);
 out:
 	return 0;
 }
@@ -4093,7 +4099,7 @@ reject:
 
 int iscsi_target_rx_thread(void *arg)
 {
-	int ret;
+	int ret, rc;
 	u8 buffer[ISCSI_HDR_LEN], opcode;
 	u32 checksum = 0, digest = 0;
 	struct iscsi_conn *conn = arg;
@@ -4103,10 +4109,16 @@ int iscsi_target_rx_thread(void *arg)
 	 * connection recovery / failure event can be triggered externally.
 	 */
 	allow_signal(SIGINT);
+	/*
+	 * Wait for iscsi_post_login_handler() to complete before allowing
+	 * incoming iscsi/tcp socket I/O, and/or failing the connection.
+	 */
+	rc = wait_for_completion_interruptible(&conn->rx_login_comp);
+	if (rc < 0)
+		return 0;
 
 	if (conn->conn_transport->transport_type == ISCSI_INFINIBAND) {
 		struct completion comp;
-		int rc;
 
 		init_completion(&comp);
 		rc = wait_for_completion_interruptible(&comp);
--- a/drivers/target/iscsi/iscsi_target_login.c
+++ b/drivers/target/iscsi/iscsi_target_login.c
@@ -82,6 +82,7 @@ static struct iscsi_login *iscsi_login_i
 	init_completion(&conn->conn_logout_comp);
 	init_completion(&conn->rx_half_close_comp);
 	init_completion(&conn->tx_half_close_comp);
+	init_completion(&conn->rx_login_comp);
 	spin_lock_init(&conn->cmd_lock);
 	spin_lock_init(&conn->conn_usage_lock);
 	spin_lock_init(&conn->immed_queue_lock);
@@ -699,7 +700,7 @@ static void iscsi_post_login_start_timer
 		iscsit_start_nopin_timer(conn);
 }
 
-static int iscsit_start_kthreads(struct iscsi_conn *conn)
+int iscsit_start_kthreads(struct iscsi_conn *conn)
 {
 	int ret = 0;
 
@@ -734,6 +735,7 @@ static int iscsit_start_kthreads(struct
 
 	return 0;
 out_tx:
+	send_sig(SIGINT, conn->tx_thread, 1);
 	kthread_stop(conn->tx_thread);
 	conn->tx_thread_active = false;
 out_bitmap:
@@ -744,7 +746,7 @@ out_bitmap:
 	return ret;
 }
 
-int iscsi_post_login_handler(
+void iscsi_post_login_handler(
 	struct iscsi_np *np,
 	struct iscsi_conn *conn,
 	u8 zero_tsih)
@@ -754,7 +756,6 @@ int iscsi_post_login_handler(
 	struct se_session *se_sess = sess->se_sess;
 	struct iscsi_portal_group *tpg = sess->tpg;
 	struct se_portal_group *se_tpg = &tpg->tpg_se_tpg;
-	int rc;
 
 	iscsit_inc_conn_usage_count(conn);
 
@@ -795,10 +796,6 @@ int iscsi_post_login_handler(
 			sess->sess_ops->InitiatorName);
 		spin_unlock_bh(&sess->conn_lock);
 
-		rc = iscsit_start_kthreads(conn);
-		if (rc)
-			return rc;
-
 		iscsi_post_login_start_timers(conn);
 		/*
 		 * Determine CPU mask to ensure connection's RX and TX kthreads
@@ -807,15 +804,20 @@ int iscsi_post_login_handler(
 		iscsit_thread_get_cpumask(conn);
 		conn->conn_rx_reset_cpumask = 1;
 		conn->conn_tx_reset_cpumask = 1;
-
+		/*
+		 * Wakeup the sleeping iscsi_target_rx_thread() now that
+		 * iscsi_conn is in TARG_CONN_STATE_LOGGED_IN state.
+		 */
+		complete(&conn->rx_login_comp);
 		iscsit_dec_conn_usage_count(conn);
+
 		if (stop_timer) {
 			spin_lock_bh(&se_tpg->session_lock);
 			iscsit_stop_time2retain_timer(sess);
 			spin_unlock_bh(&se_tpg->session_lock);
 		}
 		iscsit_dec_session_usage_count(sess);
-		return 0;
+		return;
 	}
 
 	iscsi_set_session_parameters(sess->sess_ops, conn->param_list, 1);
@@ -856,10 +858,6 @@ int iscsi_post_login_handler(
 		" iSCSI Target Portal Group: %hu\n", tpg->nsessions, tpg->tpgt);
 	spin_unlock_bh(&se_tpg->session_lock);
 
-	rc = iscsit_start_kthreads(conn);
-	if (rc)
-		return rc;
-
 	iscsi_post_login_start_timers(conn);
 	/*
 	 * Determine CPU mask to ensure connection's RX and TX kthreads
@@ -868,10 +866,12 @@ int iscsi_post_login_handler(
 	iscsit_thread_get_cpumask(conn);
 	conn->conn_rx_reset_cpumask = 1;
 	conn->conn_tx_reset_cpumask = 1;
-
+	/*
+	 * Wakeup the sleeping iscsi_target_rx_thread() now that
+	 * iscsi_conn is in TARG_CONN_STATE_LOGGED_IN state.
+	 */
+	complete(&conn->rx_login_comp);
 	iscsit_dec_conn_usage_count(conn);
-
-	return 0;
 }
 
 static void iscsi_handle_login_thread_timeout(unsigned long data)
@@ -1436,23 +1436,12 @@ static int __iscsi_target_login_thread(s
 	if (ret < 0)
 		goto new_sess_out;
 
-	if (!conn->sess) {
-		pr_err("struct iscsi_conn session pointer is NULL!\n");
-		goto new_sess_out;
-	}
-
 	iscsi_stop_login_thread_timer(np);
 
-	if (signal_pending(current))
-		goto new_sess_out;
-
 	if (ret == 1) {
 		tpg_np = conn->tpg_np;
 
-		ret = iscsi_post_login_handler(np, conn, zero_tsih);
-		if (ret < 0)
-			goto new_sess_out;
-
+		iscsi_post_login_handler(np, conn, zero_tsih);
 		iscsit_deaccess_np(np, tpg, tpg_np);
 	}
 
--- a/drivers/target/iscsi/iscsi_target_login.h
+++ b/drivers/target/iscsi/iscsi_target_login.h
@@ -12,7 +12,8 @@ extern int iscsit_accept_np(struct iscsi
 extern int iscsit_get_login_rx(struct iscsi_conn *, struct iscsi_login *);
 extern int iscsit_put_login_tx(struct iscsi_conn *, struct iscsi_login *, u32);
 extern void iscsit_free_conn(struct iscsi_np *, struct iscsi_conn *);
-extern int iscsi_post_login_handler(struct iscsi_np *, struct iscsi_conn *, u8);
+extern int iscsit_start_kthreads(struct iscsi_conn *);
+extern void iscsi_post_login_handler(struct iscsi_np *, struct iscsi_conn *, u8);
 extern void iscsi_target_login_sess_out(struct iscsi_conn *, struct iscsi_np *,
 				bool, bool);
 extern int iscsi_target_login_thread(void *);
--- a/drivers/target/iscsi/iscsi_target_nego.c
+++ b/drivers/target/iscsi/iscsi_target_nego.c
@@ -17,6 +17,7 @@
  ******************************************************************************/
 
 #include <linux/ctype.h>
+#include <linux/kthread.h>
 #include <scsi/iscsi_proto.h>
 #include <target/target_core_base.h>
 #include <target/target_core_fabric.h>
@@ -361,10 +362,24 @@ static int iscsi_target_do_tx_login_io(s
 		ntohl(login_rsp->statsn), login->rsp_length);
 
 	padding = ((-login->rsp_length) & 3);
+	/*
+	 * Before sending the last login response containing the transition
+	 * bit for full-feature-phase, go ahead and start up TX/RX threads
+	 * now to avoid potential resource allocation failures after the
+	 * final login response has been sent.
+	 */
+	if (login->login_complete) {
+		int rc = iscsit_start_kthreads(conn);
+		if (rc) {
+			iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
+					    ISCSI_LOGIN_STATUS_NO_RESOURCES);
+			return -1;
+		}
+	}
 
 	if (conn->conn_transport->iscsit_put_login_tx(conn, login,
 					login->rsp_length + padding) < 0)
-		return -1;
+		goto err;
 
 	login->rsp_length		= 0;
 	mutex_lock(&sess->cmdsn_mutex);
@@ -373,6 +388,23 @@ static int iscsi_target_do_tx_login_io(s
 	mutex_unlock(&sess->cmdsn_mutex);
 
 	return 0;
+
+err:
+	if (login->login_complete) {
+		if (conn->rx_thread && conn->rx_thread_active) {
+			send_sig(SIGINT, conn->rx_thread, 1);
+			kthread_stop(conn->rx_thread);
+		}
+		if (conn->tx_thread && conn->tx_thread_active) {
+			send_sig(SIGINT, conn->tx_thread, 1);
+			kthread_stop(conn->tx_thread);
+		}
+		spin_lock(&iscsit_global->ts_bitmap_lock);
+		bitmap_release_region(iscsit_global->ts_bitmap, conn->bitmap_id,
+				      get_order(1));
+		spin_unlock(&iscsit_global->ts_bitmap_lock);
+	}
+	return -1;
 }
 
 static void iscsi_target_sk_data_ready(struct sock *sk)
--- a/include/target/iscsi/iscsi_target_core.h
+++ b/include/target/iscsi/iscsi_target_core.h
@@ -606,6 +606,7 @@ struct iscsi_conn {
 	int			bitmap_id;
 	int			rx_thread_active;
 	struct task_struct	*rx_thread;
+	struct completion	rx_login_comp;
 	int			tx_thread_active;
 	struct task_struct	*tx_thread;
 	/* list_head for session connection list */



  parent reply	other threads:[~2015-08-08 22:23 UTC|newest]

Thread overview: 139+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-08-08 22:07 [PATCH 4.1 000/123] 4.1.5-stable review Greg Kroah-Hartman
2015-08-08 22:07 ` [PATCH 4.1 001/123] cxl: Fix off by one error allowing subsequent mmap page to be accessed Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 002/123] cxl: Check if afu is not null in cxl_slbia Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 003/123] powerpc/powernv: Fix race in updating core_idle_state Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 004/123] Revert "Input: synaptics - allocate 3 slots to keep stability in image sensors" Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 005/123] parisc: Fix some PTE/TLB race conditions and optimize __flush_tlb_range based on timing results Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 006/123] parisc: mm: Fix a memory leak related to pmd not attached to the pgd Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 007/123] ARM: pxa: fix dm9000 platform data regression Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 008/123] ARM: dts: dra7x-evm: Prevent glitch on DCAN1 pinmux Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 009/123] ARM: dts: am57xx-beagle-x15: Provide supply for usb2_phy2 Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 010/123] ARM: 8404/1: dma-mapping: fix off-by-one error in bitmap size check Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 011/123] ARM: imx6: gpc: always enable PU domain if CONFIG_PM is not set Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 012/123] MIPS: Fix erroneous JR emulation for MIPS R6 Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 013/123] MIPS: c-r4k: Fix cache flushing for MT cores Greg Kroah-Hartman
2015-08-10 18:36   ` [4.1,013/123] " Leonid Yegoshin
2015-08-10 18:49     ` gregkh
2015-08-10 19:12       ` Leonid Yegoshin
2015-08-10 19:17         ` Markos Chandras
2015-08-10 19:19         ` gregkh
2015-08-10 19:22           ` Leonid Yegoshin
2015-08-08 22:08 ` [PATCH 4.1 014/123] MIPS: Require O32 FP64 support for MIPS64 with O32 compat Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 015/123] MIPS: fpu.h: Allow 64-bit FPU on a 64-bit MIPS R6 CPU Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 016/123] can: replace timestamp as unique skb attribute Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 017/123] can: rcar_can: fix IRQ check Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 018/123] can: c_can: Fix default pinmux glitch at init Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 019/123] can: rcar_can: print signed IRQ # Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 020/123] can: mcp251x: fix resume when device is down Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 021/123] freeing unlinked file indefinitely delayed Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 022/123] x86/init: Clear init_level4_pgt earlier Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 023/123] x86/kasan: Fix KASAN shadow region page tables Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 024/123] x86/kasan: Flush TLBs after switching CR3 Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 025/123] x86/kasan: Fix boot crash on AMD processors Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 026/123] crypto: omap-des - Fix unmapping of dma channels Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 027/123] s390/process: fix sfpc inline assembly Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 028/123] s390/sclp: clear upper register halves in _sclp_print_early Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 029/123] s390/nmi: fix vector register corruption Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 030/123] s390/bpf: clear correct BPF accumulator register Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 031/123] s390/cachinfo: add missing facility check to init_cache_level() Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 032/123] ARC: Override toplevel default -O2 with -O3 Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 033/123] ARC: make sure instruction_pointer() returns unsigned value Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 034/123] kbuild: Allow arch Makefiles to override {cpp,ld,c}flags Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 035/123] bio integrity: do not assume bio_integrity_pool exists if bioset exists Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 036/123] dma-debug: skip debug_dma_assert_idle() when disabled Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 039/123] ALSA: line6: Fix -EBUSY error during active monitoring Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 040/123] ALSA: pcm: Fix lockdep warning with nonatomic PCM ops Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 041/123] ALSA: hda - Add headset mic support for Acer Aspire V5-573G Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 042/123] ALSA: hda: add new AMD PCI IDs with proper driver caps Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 043/123] ALSA: hda - Add new GPU codec ID 0x10de007d to snd-hda Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 044/123] ALSA: hda - Add headset mic pin quirk for a Dell device Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 045/123] ALSA: hda - Apply fixup for another Toshiba Satellite S50D Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 046/123] ALSA: hda - Apply a fixup to Dell Vostro 5480 Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 047/123] ALSA: usb-audio: add dB range mapping for some devices Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 048/123] ALSA: hda - Fix MacBook Pro 5,2 quirk Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 049/123] x86, perf: Fix static_key bug in load_mm_cr4() Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 050/123] Revert "dm: only run the queue on completion if congested or no requests pending" Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 051/123] irqchip/gicv3-its: Fix mapping of LPIs to collections Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 052/123] scsi: fix host max depth checking for the queue_depth sysfs interface Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 053/123] scsi: fix memory leak with scsi-mq Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 055/123] drivers: clk: st: Fix flexgen lock init Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 056/123] drivers: clk: st: Fix mux bit-setting for Cortex A9 clocks Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 057/123] drivers: clk: st: Incorrect register offset used for lock_status Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 058/123] mac80211: clear subdir_stations when removing debugfs Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 060/123] mnt: Clarify and correct the disconnect logic in umount_tree Greg Kroah-Hartman
2015-08-08 22:08 ` [PATCH 4.1 061/123] mnt: In detach_mounts detach the appropriate unmounted mount Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 062/123] ftrace: Fix breakage of set_ftrace_pid Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 063/123] iommu/vt-d: Fix VM domain ID leak Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 064/123] mmc: omap_hsmmc: Fix DTO and DCRC handling Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 065/123] mmc: sdhci check parameters before call dma_free_coherent Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 066/123] mmc: sdhci-esdhc: Make 8BIT bus work Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 067/123] mmc: sdhci-pxav3: fix platform_data is not initialized Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 068/123] HID: cp2112: fix to force single data-report reply Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 069/123] iwlwifi: mvm: fix antenna selection when BT is active Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 070/123] iwlwifi: nvm: remove mac address byte swapping in 8000 family Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 071/123] iwlwifi: pcie: prepare the device before accessing it Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 072/123] md/raid1: fix test for was read error from last working device Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 073/123] spi: img-spfi: fix support for speeds up to 1/4th input clock Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 074/123] spi: imx: Fix small DMA transfers Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 075/123] tile: use free_bootmem_late() for initrd Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 076/123] Input: zforce - dont overwrite the stack Greg Kroah-Hartman
2015-08-08 22:37   ` Dmitry Torokhov
2015-08-10 19:12     ` Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 077/123] Input: usbtouchscreen - avoid unresponsive TSC-30 touch screen Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 078/123] blkcg: fix gendisk reference leak in blkg_conf_prep() Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 079/123] regulator: s2mps11: Fix GPIO suspend enable shift wrapping bug Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 080/123] ata: pmp: add quirk for Marvell 4140 SATA PMP Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 081/123] usb-storage: ignore ZTE MF 823 card reader in mode 0x1225 Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 082/123] Revert "serial: imx: initialized DMA w/o HW flow enabled" Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 083/123] serial: core: Fix crashes while echoing when closing Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 084/123] xhci: Calculate old endpoints correctly on device reset Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 085/123] xhci: report U3 when link is in resume state Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 086/123] xhci: prevent bus_suspend if SS port resuming in phase 1 Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 087/123] xhci: do not report PLC when link is in internal resume state Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 088/123] mei: prevent unloading mei hw modules while the device is opened Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 089/123] x86/mm: Add parenthesis for TLB tracepoint size calculation Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 090/123] efi: Handle memory error structures produced based on old versions of standard Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 091/123] arm64/efi: map the entire UEFI vendor string before reading it Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 092/123] efi: Check for NULL efi kernel parameters Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 093/123] x86/efi: Use all 64 bit of efi_memmap in setup_e820() Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 094/123] ARC: Reduce bitops lines of code using macros Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 095/123] ARC: Make ARC bitops "safer" (add anti-optimization) Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 096/123] rds: rds_ib_device.refcount overflow Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 097/123] n_tty: signal and flush atomically Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 098/123] blk-mq: set default timeout as 30 seconds Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 099/123] perf hists browser: Take the --comm, --dsos, etc filters into account Greg Kroah-Hartman
2015-08-09 18:12   ` Andre Tomt (LKML)
2015-08-10 19:11     ` Greg Kroah-Hartman
2015-08-11  8:52     ` Luis Henriques
2015-08-11 16:35       ` Kamal Mostafa
2015-08-08 22:09 ` [PATCH 4.1 100/123] perf/x86/intel/cqm: Return cached counter value from IRQ context Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 102/123] hwmon: (nct7802) Fix integer overflow seen when writing voltage limits Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 103/123] hwmon: (nct7904) Rename pwm attributes to match hwmon ABI Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 104/123] NFS: Dont revalidate the mapping if both size and change attr are up to date Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 105/123] avr32: handle NULL as a valid clock object Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 106/123] NFSv4: We must set NFS_OPEN_STATE flag in nfs_resync_open_stateid_locked Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 107/123] NFS: Fix a memory leak in nfs_do_recoalesce Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 108/123] IB/ipoib: Fix CONFIG_INFINIBAND_IPOIB_CM Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 109/123] iscsi-target: Fix use-after-free during TPG session shutdown Greg Kroah-Hartman
2015-08-08 22:09 ` Greg Kroah-Hartman [this message]
2015-08-08 22:09 ` [PATCH 4.1 111/123] iscsi-target: Fix iser explicit logout TX kthread leak Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 112/123] intel_pstate: Add get_scaling cpu_defaults param to Knights Landing Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 113/123] qla2xxx: Fix hardware lock/unlock issue causing kernel panic Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 114/123] qla2xxx: release request queue reservation Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 115/123] qla2xxx: Remove msleep in qlt_send_term_exchange Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 116/123] qla2xxx: fix command initialization in target mode Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 117/123] qla2xxx: kill sessions/log out initiator on RSCN and port down events Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 118/123] drm/nouveau/fbcon/nv11-: correctly account for ring space usage Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 119/123] drm/nouveau/kms/nv50-: guard against enabling cursor on disabled heads Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 120/123] drm/nouveau: hold mutex when calling nouveau_abi16_fini() Greg Kroah-Hartman
2015-08-08 22:09 ` [PATCH 4.1 121/123] drm/nouveau/drm/nv04-nv40/instmem: protect access to priv->heap by mutex Greg Kroah-Hartman
2015-08-08 22:10 ` [PATCH 4.1 122/123] xfs: remote attribute headers contain an invalid LSN Greg Kroah-Hartman
2015-08-08 22:10 ` [PATCH 4.1 123/123] xfs: remote attributes need to be considered data Greg Kroah-Hartman
2015-08-09  3:21 ` [PATCH 4.1 000/123] 4.1.5-stable review Guenter Roeck
2015-08-10 19:09   ` Greg Kroah-Hartman
2015-08-10  5:42 ` Sudip Mukherjee
2015-08-10 19:09   ` Greg Kroah-Hartman
2015-08-10 18:14 ` Shuah Khan
2015-08-10 19:09   ` Greg Kroah-Hartman
     [not found] ` <55c913d2.6ad3b40a.22fe2.0751@mx.google.com>
2015-08-10 21:19   ` Kevin Hilman
2015-08-10 21:34     ` 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=20150808220721.476145831@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nab@linux-iscsi.org \
    --cc=sagig@mellanox.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).