LKML Archive on lore.kernel.org
 help / color / 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, Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Andy Lutomirski <luto@kernel.org>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Jiri Kosina <jkosina@suse.cz>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Josh Poimboeuf <jpoimboe@redhat.com>,
	Andrea Arcangeli <aarcange@redhat.com>,
	David Woodhouse <dwmw@amazon.co.uk>,
	Tim Chen <tim.c.chen@linux.intel.com>,
	Andi Kleen <ak@linux.intel.com>,
	Dave Hansen <dave.hansen@intel.com>,
	Casey Schaufler <casey.schaufler@intel.com>,
	Asit Mallick <asit.k.mallick@intel.com>,
	Arjan van de Ven <arjan@linux.intel.com>,
	Jon Masters <jcm@redhat.com>, Waiman Long <longman9394@gmail.com>,
	Dave Stewart <david.c.stewart@intel.com>,
	Kees Cook <keescook@chromium.org>
Subject: [PATCH 4.19 053/139] x86/speculation: Prepare for conditional IBPB in switch_mm()
Date: Tue,  4 Dec 2018 11:48:54 +0100
Message-ID: <20181204103652.160156732@linuxfoundation.org> (raw)
In-Reply-To: <20181204103649.950154335@linuxfoundation.org>

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

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

From: Thomas Gleixner tglx@linutronix.de

commit 4c71a2b6fd7e42814aa68a6dec88abf3b42ea573 upstream

The IBPB speculation barrier is issued from switch_mm() when the kernel
switches to a user space task with a different mm than the user space task
which ran last on the same CPU.

An additional optimization is to avoid IBPB when the incoming task can be
ptraced by the outgoing task. This optimization only works when switching
directly between two user space tasks. When switching from a kernel task to
a user space task the optimization fails because the previous task cannot
be accessed anymore. So for quite some scenarios the optimization is just
adding overhead.

The upcoming conditional IBPB support will issue IBPB only for user space
tasks which have the TIF_SPEC_IB bit set. This requires to handle the
following cases:

  1) Switch from a user space task (potential attacker) which has
     TIF_SPEC_IB set to a user space task (potential victim) which has
     TIF_SPEC_IB not set.

  2) Switch from a user space task (potential attacker) which has
     TIF_SPEC_IB not set to a user space task (potential victim) which has
     TIF_SPEC_IB set.

This needs to be optimized for the case where the IBPB can be avoided when
only kernel threads ran in between user space tasks which belong to the
same process.

The current check whether two tasks belong to the same context is using the
tasks context id. While correct, it's simpler to use the mm pointer because
it allows to mangle the TIF_SPEC_IB bit into it. The context id based
mechanism requires extra storage, which creates worse code.

When a task is scheduled out its TIF_SPEC_IB bit is mangled as bit 0 into
the per CPU storage which is used to track the last user space mm which was
running on a CPU. This bit can be used together with the TIF_SPEC_IB bit of
the incoming task to make the decision whether IBPB needs to be issued or
not to cover the two cases above.

As conditional IBPB is going to be the default, remove the dubious ptrace
check for the IBPB always case and simply issue IBPB always when the
process changes.

Move the storage to a different place in the struct as the original one
created a hole.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Ingo Molnar <mingo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: David Woodhouse <dwmw@amazon.co.uk>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Casey Schaufler <casey.schaufler@intel.com>
Cc: Asit Mallick <asit.k.mallick@intel.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Jon Masters <jcm@redhat.com>
Cc: Waiman Long <longman9394@gmail.com>
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Dave Stewart <david.c.stewart@intel.com>
Cc: Kees Cook <keescook@chromium.org>
Cc: stable@vger.kernel.org
Link: https://lkml.kernel.org/r/20181125185005.466447057@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/x86/include/asm/nospec-branch.h |    2 
 arch/x86/include/asm/tlbflush.h      |    8 +-
 arch/x86/kernel/cpu/bugs.c           |   29 +++++++-
 arch/x86/mm/tlb.c                    |  114 ++++++++++++++++++++++++++---------
 4 files changed, 118 insertions(+), 35 deletions(-)

--- a/arch/x86/include/asm/nospec-branch.h
+++ b/arch/x86/include/asm/nospec-branch.h
@@ -312,6 +312,8 @@ do {									\
 } while (0)
 
 DECLARE_STATIC_KEY_FALSE(switch_to_cond_stibp);
+DECLARE_STATIC_KEY_FALSE(switch_mm_cond_ibpb);
+DECLARE_STATIC_KEY_FALSE(switch_mm_always_ibpb);
 
 #endif /* __ASSEMBLY__ */
 
--- a/arch/x86/include/asm/tlbflush.h
+++ b/arch/x86/include/asm/tlbflush.h
@@ -185,10 +185,14 @@ struct tlb_state {
 
 #define LOADED_MM_SWITCHING ((struct mm_struct *)1)
 
+	/* Last user mm for optimizing IBPB */
+	union {
+		struct mm_struct	*last_user_mm;
+		unsigned long		last_user_mm_ibpb;
+	};
+
 	u16 loaded_mm_asid;
 	u16 next_asid;
-	/* last user mm's ctx id */
-	u64 last_ctx_id;
 
 	/*
 	 * We can be in one of several states:
--- a/arch/x86/kernel/cpu/bugs.c
+++ b/arch/x86/kernel/cpu/bugs.c
@@ -56,6 +56,10 @@ u64 __ro_after_init x86_amd_ls_cfg_ssbd_
 
 /* Control conditional STIPB in switch_to() */
 DEFINE_STATIC_KEY_FALSE(switch_to_cond_stibp);
+/* Control conditional IBPB in switch_mm() */
+DEFINE_STATIC_KEY_FALSE(switch_mm_cond_ibpb);
+/* Control unconditional IBPB in switch_mm() */
+DEFINE_STATIC_KEY_FALSE(switch_mm_always_ibpb);
 
 void __init check_bugs(void)
 {
@@ -331,7 +335,17 @@ spectre_v2_user_select_mitigation(enum s
 	/* Initialize Indirect Branch Prediction Barrier */
 	if (boot_cpu_has(X86_FEATURE_IBPB)) {
 		setup_force_cpu_cap(X86_FEATURE_USE_IBPB);
-		pr_info("Spectre v2 mitigation: Enabling Indirect Branch Prediction Barrier\n");
+
+		switch (mode) {
+		case SPECTRE_V2_USER_STRICT:
+			static_branch_enable(&switch_mm_always_ibpb);
+			break;
+		default:
+			break;
+		}
+
+		pr_info("mitigation: Enabling %s Indirect Branch Prediction Barrier\n",
+			mode == SPECTRE_V2_USER_STRICT ? "always-on" : "conditional");
 	}
 
 	/* If enhanced IBRS is enabled no STIPB required */
@@ -953,10 +967,15 @@ static char *stibp_state(void)
 
 static char *ibpb_state(void)
 {
-	if (boot_cpu_has(X86_FEATURE_USE_IBPB))
-		return ", IBPB";
-	else
-		return "";
+	if (boot_cpu_has(X86_FEATURE_IBPB)) {
+		switch (spectre_v2_user) {
+		case SPECTRE_V2_USER_NONE:
+			return ", IBPB: disabled";
+		case SPECTRE_V2_USER_STRICT:
+			return ", IBPB: always-on";
+		}
+	}
+	return "";
 }
 
 static ssize_t cpu_show_common(struct device *dev, struct device_attribute *attr,
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -7,7 +7,6 @@
 #include <linux/export.h>
 #include <linux/cpu.h>
 #include <linux/debugfs.h>
-#include <linux/ptrace.h>
 
 #include <asm/tlbflush.h>
 #include <asm/mmu_context.h>
@@ -31,6 +30,12 @@
  */
 
 /*
+ * Use bit 0 to mangle the TIF_SPEC_IB state into the mm pointer which is
+ * stored in cpu_tlb_state.last_user_mm_ibpb.
+ */
+#define LAST_USER_MM_IBPB	0x1UL
+
+/*
  * We get here when we do something requiring a TLB invalidation
  * but could not go invalidate all of the contexts.  We do the
  * necessary invalidation by clearing out the 'ctx_id' which
@@ -181,17 +186,87 @@ static void sync_current_stack_to_mm(str
 	}
 }
 
-static bool ibpb_needed(struct task_struct *tsk, u64 last_ctx_id)
+static inline unsigned long mm_mangle_tif_spec_ib(struct task_struct *next)
+{
+	unsigned long next_tif = task_thread_info(next)->flags;
+	unsigned long ibpb = (next_tif >> TIF_SPEC_IB) & LAST_USER_MM_IBPB;
+
+	return (unsigned long)next->mm | ibpb;
+}
+
+static void cond_ibpb(struct task_struct *next)
 {
+	if (!next || !next->mm)
+		return;
+
 	/*
-	 * Check if the current (previous) task has access to the memory
-	 * of the @tsk (next) task. If access is denied, make sure to
-	 * issue a IBPB to stop user->user Spectre-v2 attacks.
-	 *
-	 * Note: __ptrace_may_access() returns 0 or -ERRNO.
+	 * Both, the conditional and the always IBPB mode use the mm
+	 * pointer to avoid the IBPB when switching between tasks of the
+	 * same process. Using the mm pointer instead of mm->context.ctx_id
+	 * opens a hypothetical hole vs. mm_struct reuse, which is more or
+	 * less impossible to control by an attacker. Aside of that it
+	 * would only affect the first schedule so the theoretically
+	 * exposed data is not really interesting.
 	 */
-	return (tsk && tsk->mm && tsk->mm->context.ctx_id != last_ctx_id &&
-		ptrace_may_access_sched(tsk, PTRACE_MODE_SPEC_IBPB));
+	if (static_branch_likely(&switch_mm_cond_ibpb)) {
+		unsigned long prev_mm, next_mm;
+
+		/*
+		 * This is a bit more complex than the always mode because
+		 * it has to handle two cases:
+		 *
+		 * 1) Switch from a user space task (potential attacker)
+		 *    which has TIF_SPEC_IB set to a user space task
+		 *    (potential victim) which has TIF_SPEC_IB not set.
+		 *
+		 * 2) Switch from a user space task (potential attacker)
+		 *    which has TIF_SPEC_IB not set to a user space task
+		 *    (potential victim) which has TIF_SPEC_IB set.
+		 *
+		 * This could be done by unconditionally issuing IBPB when
+		 * a task which has TIF_SPEC_IB set is either scheduled in
+		 * or out. Though that results in two flushes when:
+		 *
+		 * - the same user space task is scheduled out and later
+		 *   scheduled in again and only a kernel thread ran in
+		 *   between.
+		 *
+		 * - a user space task belonging to the same process is
+		 *   scheduled in after a kernel thread ran in between
+		 *
+		 * - a user space task belonging to the same process is
+		 *   scheduled in immediately.
+		 *
+		 * Optimize this with reasonably small overhead for the
+		 * above cases. Mangle the TIF_SPEC_IB bit into the mm
+		 * pointer of the incoming task which is stored in
+		 * cpu_tlbstate.last_user_mm_ibpb for comparison.
+		 */
+		next_mm = mm_mangle_tif_spec_ib(next);
+		prev_mm = this_cpu_read(cpu_tlbstate.last_user_mm_ibpb);
+
+		/*
+		 * Issue IBPB only if the mm's are different and one or
+		 * both have the IBPB bit set.
+		 */
+		if (next_mm != prev_mm &&
+		    (next_mm | prev_mm) & LAST_USER_MM_IBPB)
+			indirect_branch_prediction_barrier();
+
+		this_cpu_write(cpu_tlbstate.last_user_mm_ibpb, next_mm);
+	}
+
+	if (static_branch_unlikely(&switch_mm_always_ibpb)) {
+		/*
+		 * Only flush when switching to a user space task with a
+		 * different context than the user space task which ran
+		 * last on this CPU.
+		 */
+		if (this_cpu_read(cpu_tlbstate.last_user_mm) != next->mm) {
+			indirect_branch_prediction_barrier();
+			this_cpu_write(cpu_tlbstate.last_user_mm, next->mm);
+		}
+	}
 }
 
 void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next,
@@ -268,22 +343,13 @@ void switch_mm_irqs_off(struct mm_struct
 	} else {
 		u16 new_asid;
 		bool need_flush;
-		u64 last_ctx_id = this_cpu_read(cpu_tlbstate.last_ctx_id);
 
 		/*
 		 * Avoid user/user BTB poisoning by flushing the branch
 		 * predictor when switching between processes. This stops
 		 * one process from doing Spectre-v2 attacks on another.
-		 *
-		 * As an optimization, flush indirect branches only when
-		 * switching into a processes that can't be ptrace by the
-		 * current one (as in such case, attacker has much more
-		 * convenient way how to tamper with the next process than
-		 * branch buffer poisoning).
 		 */
-		if (static_cpu_has(X86_FEATURE_USE_IBPB) &&
-				ibpb_needed(tsk, last_ctx_id))
-			indirect_branch_prediction_barrier();
+		cond_ibpb(tsk);
 
 		if (IS_ENABLED(CONFIG_VMAP_STACK)) {
 			/*
@@ -340,14 +406,6 @@ void switch_mm_irqs_off(struct mm_struct
 			trace_tlb_flush_rcuidle(TLB_FLUSH_ON_TASK_SWITCH, 0);
 		}
 
-		/*
-		 * Record last user mm's context id, so we can avoid
-		 * flushing branch buffer with IBPB if we switch back
-		 * to the same user.
-		 */
-		if (next != &init_mm)
-			this_cpu_write(cpu_tlbstate.last_ctx_id, next->context.ctx_id);
-
 		/* Make sure we write CR3 before loaded_mm. */
 		barrier();
 
@@ -428,7 +486,7 @@ void initialize_tlbstate_and_flush(void)
 	write_cr3(build_cr3(mm->pgd, 0));
 
 	/* Reinitialize tlbstate. */
-	this_cpu_write(cpu_tlbstate.last_ctx_id, mm->context.ctx_id);
+	this_cpu_write(cpu_tlbstate.last_user_mm_ibpb, LAST_USER_MM_IBPB);
 	this_cpu_write(cpu_tlbstate.loaded_mm_asid, 0);
 	this_cpu_write(cpu_tlbstate.next_asid, 1);
 	this_cpu_write(cpu_tlbstate.ctxs[0].ctx_id, mm->context.ctx_id);



  parent reply index

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04 10:48 [PATCH 4.19 000/139] 4.19.7-stable review Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 001/139] mm/huge_memory: rename freeze_page() to unmap_page() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 002/139] mm/huge_memory: splitting set mapping+index before unfreeze Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 003/139] mm/huge_memory: fix lockdep complaint on 32-bit i_size_read() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 004/139] mm/khugepaged: collapse_shmem() stop if punched or truncated Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 005/139] mm/khugepaged: fix crashes due to misaccounted holes Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 006/139] mm/khugepaged: collapse_shmem() remember to clear holes Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 007/139] mm/khugepaged: minor reorderings in collapse_shmem() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 008/139] mm/khugepaged: collapse_shmem() without freezing new_page Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 009/139] mm/khugepaged: collapse_shmem() do not crash on Compound Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 010/139] lan743x: Enable driver to work with LAN7431 Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 011/139] lan743x: fix return value for lan743x_tx_napi_poll Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 012/139] net: dont keep lonely packets forever in the gro hash Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 013/139] net: gemini: Fix copy/paste error Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 014/139] net: thunderx: set tso_hdrs pointer to NULL in nicvf_free_snd_queue Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 015/139] packet: copy user buffers before orphan or clone Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 016/139] rapidio/rionet: do not free skb before reading its length Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 017/139] s390/qeth: fix length check in SNMP processing Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 018/139] usbnet: ipheth: fix potential recvmsg bug and recvmsg bug 2 Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 019/139] net: thunderx: set xdp_prog to NULL if bpf_prog_add fails Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 020/139] net: skb_scrub_packet(): Scrub offload_fwd_mark Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 021/139] virtio-net: disable guest csum during XDP set Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 022/139] virtio-net: fail XDP set if guest csum is negotiated Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 023/139] net/dim: Update DIM start sample after each DIM iteration Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 024/139] tcp: defer SACK compression after DupThresh Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 025/139] net: phy: add workaround for issue where PHY driver doesnt bind to the device Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 026/139] tipc: fix lockdep warning during node delete Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 027/139] x86/speculation: Enable cross-hyperthread spectre v2 STIBP mitigation Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 028/139] x86/speculation: Apply IBPB more strictly to avoid cross-process data leak Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 029/139] x86/speculation: Propagate information about RSB filling mitigation to sysfs Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 030/139] x86/speculation: Add RETPOLINE_AMD support to the inline asm CALL_NOSPEC variant Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 031/139] x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 032/139] x86/retpoline: Remove minimal retpoline support Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 033/139] x86/speculation: Update the TIF_SSBD comment Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 034/139] x86/speculation: Clean up spectre_v2_parse_cmdline() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 035/139] x86/speculation: Remove unnecessary ret variable in cpu_show_common() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 036/139] x86/speculation: Move STIPB/IBPB string conditionals out of cpu_show_common() Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 037/139] x86/speculation: Disable STIBP when enhanced IBRS is in use Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 038/139] x86/speculation: Rename SSBD update functions Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 039/139] x86/speculation: Reorganize speculation control MSRs update Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 040/139] sched/smt: Make sched_smt_present track topology Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 041/139] x86/Kconfig: Select SCHED_SMT if SMP enabled Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 042/139] sched/smt: Expose sched_smt_present static key Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 043/139] x86/speculation: Rework SMT state change Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 044/139] x86/l1tf: Show actual SMT state Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 045/139] x86/speculation: Reorder the spec_v2 code Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 046/139] x86/speculation: Mark string arrays const correctly Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 047/139] x86/speculataion: Mark command line parser data __initdata Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 048/139] x86/speculation: Unify conditional spectre v2 print functions Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 049/139] x86/speculation: Add command line control for indirect branch speculation Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 050/139] x86/speculation: Prepare for per task indirect branch speculation control Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 051/139] x86/process: Consolidate and simplify switch_to_xtra() code Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 052/139] x86/speculation: Avoid __switch_to_xtra() calls Greg Kroah-Hartman
2018-12-04 10:48 ` Greg Kroah-Hartman [this message]
2018-12-04 10:48 ` [PATCH 4.19 054/139] ptrace: Remove unused ptrace_may_access_sched() and MODE_IBRS Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 055/139] x86/speculation: Split out TIF update Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 056/139] x86/speculation: Prevent stale SPEC_CTRL msr content Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 057/139] x86/speculation: Prepare arch_smt_update() for PRCTL mode Greg Kroah-Hartman
2018-12-04 10:48 ` [PATCH 4.19 058/139] x86/speculation: Add prctl() control for indirect branch speculation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 059/139] x86/speculation: Enable prctl mode for spectre_v2_user Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 060/139] x86/speculation: Add seccomp Spectre v2 user space protection mode Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 061/139] x86/speculation: Provide IBPB always command line options Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 062/139] userfaultfd: shmem/hugetlbfs: only allow to register VM_MAYWRITE vmas Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 063/139] kvm: mmu: Fix race in emulated page table writes Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 064/139] kvm: svm: Ensure an IBPB on all affected CPUs when freeing a vmcb Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 065/139] KVM: nVMX/nSVM: Fix bug which sets vcpu->arch.tsc_offset to L1 tsc_offset Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 066/139] KVM: x86: Fix kernel info-leak in KVM_HC_CLOCK_PAIRING hypercall Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 067/139] KVM: LAPIC: Fix pv ipis use-before-initialization Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 068/139] KVM: X86: Fix scan ioapic use-before-initialization Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 069/139] KVM: VMX: re-add ple_gap module parameter Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 070/139] xtensa: enable coprocessors that are being flushed Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 071/139] xtensa: fix coprocessor context offset definitions Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 072/139] xtensa: fix coprocessor part of ptrace_{get,set}xregs Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 073/139] udf: Allow mounting volumes with incorrect identification strings Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 074/139] btrfs: Always try all copies when reading extent buffers Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 075/139] Btrfs: ensure path name is null terminated at btrfs_control_ioctl Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 076/139] Btrfs: fix rare chances for data loss when doing a fast fsync Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 077/139] Btrfs: fix race between enabling quotas and subvolume creation Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 078/139] btrfs: relocation: set trans to be NULL after ending transaction Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 079/139] PCI: layerscape: Fix wrong invocation of outbound window disable accessor Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 080/139] PCI: dwc: Fix MSI-X EP framework address calculation bug Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 081/139] PCI: Fix incorrect value returned from pcie_get_speed_cap() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 082/139] arm64: dts: rockchip: Fix PCIe reset polarity for rk3399-puma-haikou Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 083/139] x86/MCE/AMD: Fix the thresholding machinery initialization order Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 084/139] x86/fpu: Disable bottom halves while loading FPU registers Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 085/139] perf/x86/intel: Move branch tracing setup to the Intel-specific source file Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 086/139] perf/x86/intel: Add generic branch tracing check to intel_pmu_has_bts() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 087/139] perf/x86/intel: Disallow precise_ip on BTS events Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 088/139] fs: fix lost error code in dio_complete Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 089/139] ALSA: wss: Fix invalid snd_free_pages() at error path Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 090/139] ALSA: ac97: Fix incorrect bit shift at AC97-SPSA control write Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 091/139] ALSA: control: Fix race between adding and removing a user element Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 092/139] ALSA: sparc: Fix invalid snd_free_pages() at error path Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 093/139] ALSA: hda: Add ASRock N68C-S UCC the power_save blacklist Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 094/139] ALSA: hda/realtek - Support ALC300 Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 095/139] ALSA: hda/realtek - fix headset mic detection for MSI MS-B171 Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 096/139] ALSA: hda/realtek - fix the pop noise on headphone for lenovo laptops Greg Kroah-Hartman
2018-12-12 23:45   ` Thomas Zeitlhofer
2018-12-13  0:23     ` Hui Wang
2018-12-13  2:21       ` Thomas Zeitlhofer
2018-12-04 10:49 ` [PATCH 4.19 097/139] ALSA: hda/realtek - Add auto-mute quirk for HP Spectre x360 laptop Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 098/139] function_graph: Create function_graph_enter() to consolidate architecture code Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 099/139] ARM: function_graph: Simplify with function_graph_enter() Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 100/139] microblaze: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 101/139] x86/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 102/139] nds32: function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 103/139] powerpc/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 104/139] sh/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 105/139] sparc/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 106/139] parisc: function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 107/139] riscv/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 108/139] s390/function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 109/139] arm64: function_graph: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 110/139] MIPS: " Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 111/139] function_graph: Make ftrace_push_return_trace() static Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 112/139] function_graph: Use new curr_ret_depth to manage depth instead of curr_ret_stack Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 113/139] function_graph: Have profiler use curr_ret_stack and not depth Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 114/139] function_graph: Move return callback before update of curr_ret_stack Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 115/139] function_graph: Reverse the order of pushing the ret_stack and the callback Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 116/139] binder: fix race that allows malicious free of live buffer Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 117/139] ext2: initialize opts.s_mount_opt as zero before using it Greg Kroah-Hartman
2018-12-04 10:49 ` [PATCH 4.19 118/139] ext2: fix potential use after free Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 119/139] ASoC: intel: cht_bsw_max98090_ti: Add quirk for boards using pmc_plt_clk_0 Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 120/139] ASoC: pcm186x: Fix device reset-registers trigger value Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 121/139] ARM: dts: rockchip: Remove @0 from the veyron memory node Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 122/139] dmaengine: at_hdmac: fix memory leak in at_dma_xlate() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 123/139] dmaengine: at_hdmac: fix module unloading Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 124/139] staging: most: use format specifier "%s" in snprintf Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 125/139] staging: vchiq_arm: fix compat VCHIQ_IOC_AWAIT_COMPLETION Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 126/139] staging: mt7621-dma: fix potentially dereferencing uninitialized tx_desc Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 127/139] staging: mt7621-pinctrl: fix uninitialized variable ngroups Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 128/139] staging: rtl8723bs: Fix incorrect sense of ether_addr_equal Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 129/139] staging: rtl8723bs: Add missing return for cfg80211_rtw_get_station Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 130/139] USB: usb-storage: Add new IDs to ums-realtek Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 131/139] usb: core: quirks: add RESET_RESUME quirk for Cherry G230 Stream series Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 132/139] Revert "usb: dwc3: gadget: skip Set/Clear Halt when invalid" Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 133/139] iio/hid-sensors: Fix IIO_CHAN_INFO_RAW returning wrong values for signed numbers Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 134/139] iio:st_magn: Fix enable device after trigger Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 135/139] lib/test_kmod.c: fix rmmod double free Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 136/139] mm: cleancache: fix corruption on missed inode invalidation Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 137/139] mm: use swp_offset as key in shmem_replace_page() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 138/139] Drivers: hv: vmbus: check the creation_status in vmbus_establish_gpadl() Greg Kroah-Hartman
2018-12-04 10:50 ` [PATCH 4.19 139/139] misc: mic/scif: fix copy-paste error in scif_create_remote_lookup Greg Kroah-Hartman
2018-12-04 17:12 ` [PATCH 4.19 000/139] 4.19.7-stable review kernelci.org bot
2018-12-04 21:09 ` Rafael David Tinoco
2018-12-05  6:58   ` Greg Kroah-Hartman
2018-12-05 12:08     ` Rafael David Tinoco
2018-12-05 16:03       ` Yuchung Cheng
2018-12-04 21:42 ` Guenter Roeck
2018-12-05  6:59   ` Greg Kroah-Hartman
2018-12-05 14:21 ` Harsh Shandilya
2018-12-05 18:24   ` Greg Kroah-Hartman
2018-12-05 16:44 ` Rafael David Tinoco
2018-12-05 17:30   ` Dan Rue
2018-12-05 23:52 ` shuah
2018-12-06  5:47   ` 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=20181204103652.160156732@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=aarcange@redhat.com \
    --cc=ak@linux.intel.com \
    --cc=arjan@linux.intel.com \
    --cc=asit.k.mallick@intel.com \
    --cc=casey.schaufler@intel.com \
    --cc=dave.hansen@intel.com \
    --cc=david.c.stewart@intel.com \
    --cc=dwmw@amazon.co.uk \
    --cc=jcm@redhat.com \
    --cc=jkosina@suse.cz \
    --cc=jpoimboe@redhat.com \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman9394@gmail.com \
    --cc=luto@kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=stable@vger.kernel.org \
    --cc=tglx@linutronix.de \
    --cc=thomas.lendacky@amd.com \
    --cc=tim.c.chen@linux.intel.com \
    --cc=torvalds@linux-foundation.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

LKML Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/lkml/0 lkml/git/0.git
	git clone --mirror https://lore.kernel.org/lkml/1 lkml/git/1.git
	git clone --mirror https://lore.kernel.org/lkml/2 lkml/git/2.git
	git clone --mirror https://lore.kernel.org/lkml/3 lkml/git/3.git
	git clone --mirror https://lore.kernel.org/lkml/4 lkml/git/4.git
	git clone --mirror https://lore.kernel.org/lkml/5 lkml/git/5.git
	git clone --mirror https://lore.kernel.org/lkml/6 lkml/git/6.git
	git clone --mirror https://lore.kernel.org/lkml/7 lkml/git/7.git
	git clone --mirror https://lore.kernel.org/lkml/8 lkml/git/8.git
	git clone --mirror https://lore.kernel.org/lkml/9 lkml/git/9.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 lkml lkml/ https://lore.kernel.org/lkml \
		linux-kernel@vger.kernel.org
	public-inbox-index lkml

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git