From: Ingo Molnar <mingo@kernel.org>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Borislav Petkov <bp@alien8.de>,
Peter Zijlstra <a.p.zijlstra@chello.nl>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [GIT PULL] x86 fixes
Date: Sun, 6 Sep 2020 10:15:15 +0200 [thread overview]
Message-ID: <20200906081515.GA3034383@gmail.com> (raw)
Linus,
Please pull the latest x86/urgent git tree from:
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86-urgent-2020-09-06
# HEAD: 4facb95b7adaf77e2da73aafb9ba60996fe42a12 x86/entry: Unbreak 32bit fast syscall
Misc fixes:
- Fix more generic entry code ABI fallout
- Fix debug register handling bugs
- Fix vmalloc mappings on 32-bit kernels
- Fix kprobes instrumentation output on 32-bit kernels
- Fix over-eager WARN_ON_ONCE() on !SMAP hardware
- Fix NUMA debugging
- Fix Clang related crash on !RETPOLINE kernels
The most complex fixes are only a few days old and some haven't seen
-next yet, but I didn't think we should delay them.
out-of-topic modifications in x86-urgent-2020-09-06:
------------------------------------------------------
include/linux/entry-common.h # 4facb95b7ada: x86/entry: Unbreak 32bit fas
kernel/entry/common.c # 4facb95b7ada: x86/entry: Unbreak 32bit fas
Thanks,
Ingo
------------------>
Andy Lutomirski (1):
x86/debug: Allow a single level of #DB recursion
Arvind Sankar (1):
x86/cmdline: Disable jump tables for cmdline.c
Huang Ying (1):
x86, fakenuma: Fix invalid starting node ID
Joerg Roedel (1):
x86/mm/32: Bring back vmalloc faulting on x86_32
Peter Zijlstra (1):
x86/entry: Fix AC assertion
Thomas Gleixner (1):
x86/entry: Unbreak 32bit fast syscall
Vamshi K Sthambamkadi (1):
tracing/kprobes, x86/ptrace: Fix regs argument order for i386
arch/x86/entry/common.c | 29 +++++++++-----
arch/x86/include/asm/entry-common.h | 12 +++++-
arch/x86/include/asm/ptrace.h | 2 +-
arch/x86/kernel/traps.c | 65 +++++++++++++++----------------
arch/x86/lib/Makefile | 2 +-
arch/x86/mm/fault.c | 78 +++++++++++++++++++++++++++++++++++++
arch/x86/mm/numa_emulation.c | 2 +-
include/linux/entry-common.h | 51 +++++++++++++++++++-----
kernel/entry/common.c | 35 ++++++++++++++---
9 files changed, 213 insertions(+), 63 deletions(-)
diff --git a/arch/x86/entry/common.c b/arch/x86/entry/common.c
index 48512c7944e7..2f84c7ca74ea 100644
--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -60,16 +60,10 @@ __visible noinstr void do_syscall_64(unsigned long nr, struct pt_regs *regs)
#if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
static __always_inline unsigned int syscall_32_enter(struct pt_regs *regs)
{
- unsigned int nr = (unsigned int)regs->orig_ax;
-
if (IS_ENABLED(CONFIG_IA32_EMULATION))
current_thread_info()->status |= TS_COMPAT;
- /*
- * Subtlety here: if ptrace pokes something larger than 2^32-1 into
- * orig_ax, the unsigned int return value truncates it. This may
- * or may not be necessary, but it matches the old asm behavior.
- */
- return (unsigned int)syscall_enter_from_user_mode(regs, nr);
+
+ return (unsigned int)regs->orig_ax;
}
/*
@@ -91,15 +85,29 @@ __visible noinstr void do_int80_syscall_32(struct pt_regs *regs)
{
unsigned int nr = syscall_32_enter(regs);
+ /*
+ * Subtlety here: if ptrace pokes something larger than 2^32-1 into
+ * orig_ax, the unsigned int return value truncates it. This may
+ * or may not be necessary, but it matches the old asm behavior.
+ */
+ nr = (unsigned int)syscall_enter_from_user_mode(regs, nr);
+
do_syscall_32_irqs_on(regs, nr);
syscall_exit_to_user_mode(regs);
}
static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
{
- unsigned int nr = syscall_32_enter(regs);
+ unsigned int nr = syscall_32_enter(regs);
int res;
+ /*
+ * This cannot use syscall_enter_from_user_mode() as it has to
+ * fetch EBP before invoking any of the syscall entry work
+ * functions.
+ */
+ syscall_enter_from_user_mode_prepare(regs);
+
instrumentation_begin();
/* Fetch EBP from where the vDSO stashed it. */
if (IS_ENABLED(CONFIG_X86_64)) {
@@ -122,6 +130,9 @@ static noinstr bool __do_fast_syscall_32(struct pt_regs *regs)
return false;
}
+ /* The case truncates any ptrace induced syscall nr > 2^32 -1 */
+ nr = (unsigned int)syscall_enter_from_user_mode_work(regs, nr);
+
/* Now this is just like a normal syscall. */
do_syscall_32_irqs_on(regs, nr);
syscall_exit_to_user_mode(regs);
diff --git a/arch/x86/include/asm/entry-common.h b/arch/x86/include/asm/entry-common.h
index a8f9315b9eae..6fe54b2813c1 100644
--- a/arch/x86/include/asm/entry-common.h
+++ b/arch/x86/include/asm/entry-common.h
@@ -18,8 +18,16 @@ static __always_inline void arch_check_user_regs(struct pt_regs *regs)
* state, not the interrupt state as imagined by Xen.
*/
unsigned long flags = native_save_fl();
- WARN_ON_ONCE(flags & (X86_EFLAGS_AC | X86_EFLAGS_DF |
- X86_EFLAGS_NT));
+ unsigned long mask = X86_EFLAGS_DF | X86_EFLAGS_NT;
+
+ /*
+ * For !SMAP hardware we patch out CLAC on entry.
+ */
+ if (boot_cpu_has(X86_FEATURE_SMAP) ||
+ (IS_ENABLED(CONFIG_64_BIT) && boot_cpu_has(X86_FEATURE_XENPV)))
+ mask |= X86_EFLAGS_AC;
+
+ WARN_ON_ONCE(flags & mask);
/* We think we came from user mode. Make sure pt_regs agrees. */
WARN_ON_ONCE(!user_mode(regs));
diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
index 40aa69d04862..d8324a236696 100644
--- a/arch/x86/include/asm/ptrace.h
+++ b/arch/x86/include/asm/ptrace.h
@@ -327,8 +327,8 @@ static inline unsigned long regs_get_kernel_argument(struct pt_regs *regs,
static const unsigned int argument_offs[] = {
#ifdef __i386__
offsetof(struct pt_regs, ax),
- offsetof(struct pt_regs, cx),
offsetof(struct pt_regs, dx),
+ offsetof(struct pt_regs, cx),
#define NR_REG_ARGUMENTS 3
#else
offsetof(struct pt_regs, di),
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 1f66d2d1e998..81a2fb711091 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -729,20 +729,9 @@ static bool is_sysenter_singlestep(struct pt_regs *regs)
#endif
}
-static __always_inline void debug_enter(unsigned long *dr6, unsigned long *dr7)
+static __always_inline unsigned long debug_read_clear_dr6(void)
{
- /*
- * Disable breakpoints during exception handling; recursive exceptions
- * are exceedingly 'fun'.
- *
- * Since this function is NOKPROBE, and that also applies to
- * HW_BREAKPOINT_X, we can't hit a breakpoint before this (XXX except a
- * HW_BREAKPOINT_W on our stack)
- *
- * Entry text is excluded for HW_BP_X and cpu_entry_area, which
- * includes the entry stack is excluded for everything.
- */
- *dr7 = local_db_save();
+ unsigned long dr6;
/*
* The Intel SDM says:
@@ -755,15 +744,12 @@ static __always_inline void debug_enter(unsigned long *dr6, unsigned long *dr7)
*
* Keep it simple: clear DR6 immediately.
*/
- get_debugreg(*dr6, 6);
+ get_debugreg(dr6, 6);
set_debugreg(0, 6);
/* Filter out all the reserved bits which are preset to 1 */
- *dr6 &= ~DR6_RESERVED;
-}
+ dr6 &= ~DR6_RESERVED;
-static __always_inline void debug_exit(unsigned long dr7)
-{
- local_db_restore(dr7);
+ return dr6;
}
/*
@@ -863,6 +849,18 @@ static void handle_debug(struct pt_regs *regs, unsigned long dr6, bool user)
static __always_inline void exc_debug_kernel(struct pt_regs *regs,
unsigned long dr6)
{
+ /*
+ * Disable breakpoints during exception handling; recursive exceptions
+ * are exceedingly 'fun'.
+ *
+ * Since this function is NOKPROBE, and that also applies to
+ * HW_BREAKPOINT_X, we can't hit a breakpoint before this (XXX except a
+ * HW_BREAKPOINT_W on our stack)
+ *
+ * Entry text is excluded for HW_BP_X and cpu_entry_area, which
+ * includes the entry stack is excluded for everything.
+ */
+ unsigned long dr7 = local_db_save();
bool irq_state = idtentry_enter_nmi(regs);
instrumentation_begin();
@@ -883,6 +881,8 @@ static __always_inline void exc_debug_kernel(struct pt_regs *regs,
instrumentation_end();
idtentry_exit_nmi(regs, irq_state);
+
+ local_db_restore(dr7);
}
static __always_inline void exc_debug_user(struct pt_regs *regs,
@@ -894,6 +894,15 @@ static __always_inline void exc_debug_user(struct pt_regs *regs,
*/
WARN_ON_ONCE(!user_mode(regs));
+ /*
+ * NB: We can't easily clear DR7 here because
+ * idtentry_exit_to_usermode() can invoke ptrace, schedule, access
+ * user memory, etc. This means that a recursive #DB is possible. If
+ * this happens, that #DB will hit exc_debug_kernel() and clear DR7.
+ * Since we're not on the IST stack right now, everything will be
+ * fine.
+ */
+
irqentry_enter_from_user_mode(regs);
instrumentation_begin();
@@ -907,36 +916,24 @@ static __always_inline void exc_debug_user(struct pt_regs *regs,
/* IST stack entry */
DEFINE_IDTENTRY_DEBUG(exc_debug)
{
- unsigned long dr6, dr7;
-
- debug_enter(&dr6, &dr7);
- exc_debug_kernel(regs, dr6);
- debug_exit(dr7);
+ exc_debug_kernel(regs, debug_read_clear_dr6());
}
/* User entry, runs on regular task stack */
DEFINE_IDTENTRY_DEBUG_USER(exc_debug)
{
- unsigned long dr6, dr7;
-
- debug_enter(&dr6, &dr7);
- exc_debug_user(regs, dr6);
- debug_exit(dr7);
+ exc_debug_user(regs, debug_read_clear_dr6());
}
#else
/* 32 bit does not have separate entry points. */
DEFINE_IDTENTRY_RAW(exc_debug)
{
- unsigned long dr6, dr7;
-
- debug_enter(&dr6, &dr7);
+ unsigned long dr6 = debug_read_clear_dr6();
if (user_mode(regs))
exc_debug_user(regs, dr6);
else
exc_debug_kernel(regs, dr6);
-
- debug_exit(dr7);
}
#endif
diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile
index d46fff11f06f..aa067859a70b 100644
--- a/arch/x86/lib/Makefile
+++ b/arch/x86/lib/Makefile
@@ -24,7 +24,7 @@ ifdef CONFIG_FUNCTION_TRACER
CFLAGS_REMOVE_cmdline.o = -pg
endif
-CFLAGS_cmdline.o := -fno-stack-protector
+CFLAGS_cmdline.o := -fno-stack-protector -fno-jump-tables
endif
inat_tables_script = $(srctree)/arch/x86/tools/gen-insn-attr-x86.awk
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 35f1498e9832..6e3e8a124903 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -190,6 +190,53 @@ static inline pmd_t *vmalloc_sync_one(pgd_t *pgd, unsigned long address)
return pmd_k;
}
+/*
+ * Handle a fault on the vmalloc or module mapping area
+ *
+ * This is needed because there is a race condition between the time
+ * when the vmalloc mapping code updates the PMD to the point in time
+ * where it synchronizes this update with the other page-tables in the
+ * system.
+ *
+ * In this race window another thread/CPU can map an area on the same
+ * PMD, finds it already present and does not synchronize it with the
+ * rest of the system yet. As a result v[mz]alloc might return areas
+ * which are not mapped in every page-table in the system, causing an
+ * unhandled page-fault when they are accessed.
+ */
+static noinline int vmalloc_fault(unsigned long address)
+{
+ unsigned long pgd_paddr;
+ pmd_t *pmd_k;
+ pte_t *pte_k;
+
+ /* Make sure we are in vmalloc area: */
+ if (!(address >= VMALLOC_START && address < VMALLOC_END))
+ return -1;
+
+ /*
+ * Synchronize this task's top level page-table
+ * with the 'reference' page table.
+ *
+ * Do _not_ use "current" here. We might be inside
+ * an interrupt in the middle of a task switch..
+ */
+ pgd_paddr = read_cr3_pa();
+ pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
+ if (!pmd_k)
+ return -1;
+
+ if (pmd_large(*pmd_k))
+ return 0;
+
+ pte_k = pte_offset_kernel(pmd_k, address);
+ if (!pte_present(*pte_k))
+ return -1;
+
+ return 0;
+}
+NOKPROBE_SYMBOL(vmalloc_fault);
+
void arch_sync_kernel_mappings(unsigned long start, unsigned long end)
{
unsigned long addr;
@@ -1110,6 +1157,37 @@ do_kern_addr_fault(struct pt_regs *regs, unsigned long hw_error_code,
*/
WARN_ON_ONCE(hw_error_code & X86_PF_PK);
+#ifdef CONFIG_X86_32
+ /*
+ * We can fault-in kernel-space virtual memory on-demand. The
+ * 'reference' page table is init_mm.pgd.
+ *
+ * NOTE! We MUST NOT take any locks for this case. We may
+ * be in an interrupt or a critical region, and should
+ * only copy the information from the master page table,
+ * nothing more.
+ *
+ * Before doing this on-demand faulting, ensure that the
+ * fault is not any of the following:
+ * 1. A fault on a PTE with a reserved bit set.
+ * 2. A fault caused by a user-mode access. (Do not demand-
+ * fault kernel memory due to user-mode accesses).
+ * 3. A fault caused by a page-level protection violation.
+ * (A demand fault would be on a non-present page which
+ * would have X86_PF_PROT==0).
+ *
+ * This is only needed to close a race condition on x86-32 in
+ * the vmalloc mapping/unmapping code. See the comment above
+ * vmalloc_fault() for details. On x86-64 the race does not
+ * exist as the vmalloc mappings don't need to be synchronized
+ * there.
+ */
+ if (!(hw_error_code & (X86_PF_RSVD | X86_PF_USER | X86_PF_PROT))) {
+ if (vmalloc_fault(address) >= 0)
+ return;
+ }
+#endif
+
/* Was the fault spurious, caused by lazy TLB invalidation? */
if (spurious_kernel_fault(hw_error_code, address))
return;
diff --git a/arch/x86/mm/numa_emulation.c b/arch/x86/mm/numa_emulation.c
index c5174b4e318b..683cd12f4793 100644
--- a/arch/x86/mm/numa_emulation.c
+++ b/arch/x86/mm/numa_emulation.c
@@ -321,7 +321,7 @@ static int __init split_nodes_size_interleave(struct numa_meminfo *ei,
u64 addr, u64 max_addr, u64 size)
{
return split_nodes_size_interleave_uniform(ei, pi, addr, max_addr, size,
- 0, NULL, NUMA_NO_NODE);
+ 0, NULL, 0);
}
static int __init setup_emu2phys_nid(int *dfl_phys_nid)
diff --git a/include/linux/entry-common.h b/include/linux/entry-common.h
index efebbffcd5cc..159c7476b11b 100644
--- a/include/linux/entry-common.h
+++ b/include/linux/entry-common.h
@@ -110,15 +110,30 @@ static inline __must_check int arch_syscall_enter_tracehook(struct pt_regs *regs
#endif
/**
- * syscall_enter_from_user_mode - Check and handle work before invoking
- * a syscall
+ * syscall_enter_from_user_mode_prepare - Establish state and enable interrupts
* @regs: Pointer to currents pt_regs
- * @syscall: The syscall number
*
* Invoked from architecture specific syscall entry code with interrupts
* disabled. The calling code has to be non-instrumentable. When the
- * function returns all state is correct and the subsequent functions can be
- * instrumented.
+ * function returns all state is correct, interrupts are enabled and the
+ * subsequent functions can be instrumented.
+ *
+ * This handles lockdep, RCU (context tracking) and tracing state.
+ *
+ * This is invoked when there is extra architecture specific functionality
+ * to be done between establishing state and handling user mode entry work.
+ */
+void syscall_enter_from_user_mode_prepare(struct pt_regs *regs);
+
+/**
+ * syscall_enter_from_user_mode_work - Check and handle work before invoking
+ * a syscall
+ * @regs: Pointer to currents pt_regs
+ * @syscall: The syscall number
+ *
+ * Invoked from architecture specific syscall entry code with interrupts
+ * enabled after invoking syscall_enter_from_user_mode_prepare() and extra
+ * architecture specific work.
*
* Returns: The original or a modified syscall number
*
@@ -127,12 +142,30 @@ static inline __must_check int arch_syscall_enter_tracehook(struct pt_regs *regs
* syscall_set_return_value() first. If neither of those are called and -1
* is returned, then the syscall will fail with ENOSYS.
*
- * The following functionality is handled here:
+ * It handles the following work items:
*
- * 1) Establish state (lockdep, RCU (context tracking), tracing)
- * 2) TIF flag dependent invocations of arch_syscall_enter_tracehook(),
+ * 1) TIF flag dependent invocations of arch_syscall_enter_tracehook(),
* __secure_computing(), trace_sys_enter()
- * 3) Invocation of audit_syscall_entry()
+ * 2) Invocation of audit_syscall_entry()
+ */
+long syscall_enter_from_user_mode_work(struct pt_regs *regs, long syscall);
+
+/**
+ * syscall_enter_from_user_mode - Establish state and check and handle work
+ * before invoking a syscall
+ * @regs: Pointer to currents pt_regs
+ * @syscall: The syscall number
+ *
+ * Invoked from architecture specific syscall entry code with interrupts
+ * disabled. The calling code has to be non-instrumentable. When the
+ * function returns all state is correct, interrupts are enabled and the
+ * subsequent functions can be instrumented.
+ *
+ * This is combination of syscall_enter_from_user_mode_prepare() and
+ * syscall_enter_from_user_mode_work().
+ *
+ * Returns: The original or a modified syscall number. See
+ * syscall_enter_from_user_mode_work() for further explanation.
*/
long syscall_enter_from_user_mode(struct pt_regs *regs, long syscall);
diff --git a/kernel/entry/common.c b/kernel/entry/common.c
index fcae019158ca..18683598edbc 100644
--- a/kernel/entry/common.c
+++ b/kernel/entry/common.c
@@ -69,22 +69,45 @@ static long syscall_trace_enter(struct pt_regs *regs, long syscall,
return ret ? : syscall_get_nr(current, regs);
}
-noinstr long syscall_enter_from_user_mode(struct pt_regs *regs, long syscall)
+static __always_inline long
+__syscall_enter_from_user_work(struct pt_regs *regs, long syscall)
{
unsigned long ti_work;
- enter_from_user_mode(regs);
- instrumentation_begin();
-
- local_irq_enable();
ti_work = READ_ONCE(current_thread_info()->flags);
if (ti_work & SYSCALL_ENTER_WORK)
syscall = syscall_trace_enter(regs, syscall, ti_work);
- instrumentation_end();
return syscall;
}
+long syscall_enter_from_user_mode_work(struct pt_regs *regs, long syscall)
+{
+ return __syscall_enter_from_user_work(regs, syscall);
+}
+
+noinstr long syscall_enter_from_user_mode(struct pt_regs *regs, long syscall)
+{
+ long ret;
+
+ enter_from_user_mode(regs);
+
+ instrumentation_begin();
+ local_irq_enable();
+ ret = __syscall_enter_from_user_work(regs, syscall);
+ instrumentation_end();
+
+ return ret;
+}
+
+noinstr void syscall_enter_from_user_mode_prepare(struct pt_regs *regs)
+{
+ enter_from_user_mode(regs);
+ instrumentation_begin();
+ local_irq_enable();
+ instrumentation_end();
+}
+
/**
* exit_to_user_mode - Fixup state when exiting to user mode
*
next reply other threads:[~2020-09-06 8:23 UTC|newest]
Thread overview: 535+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-06 8:15 Ingo Molnar [this message]
2020-09-06 19:14 ` [GIT PULL] x86 fixes pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2026-05-09 2:04 Ingo Molnar
2026-05-09 3:32 ` pr-tracker-bot
2021-03-28 10:44 Ingo Molnar
2021-03-28 19:22 ` pr-tracker-bot
2020-10-11 8:08 Ingo Molnar
2020-10-11 18:00 ` Linus Torvalds
2020-10-11 20:00 ` Thomas Gleixner
2020-10-11 18:23 ` pr-tracker-bot
2020-08-15 11:45 Ingo Molnar
2020-08-16 1:55 ` pr-tracker-bot
2020-07-25 11:46 Ingo Molnar
2020-07-25 22:30 ` pr-tracker-bot
2020-03-02 8:49 Ingo Molnar
2020-03-03 23:35 ` pr-tracker-bot
2020-01-31 11:52 Ingo Molnar
2020-01-31 19:35 ` pr-tracker-bot
2020-01-18 18:52 Ingo Molnar
2020-01-18 21:05 ` pr-tracker-bot
2019-12-01 22:22 Ingo Molnar
2019-12-02 4:40 ` pr-tracker-bot
2019-11-16 21:42 Ingo Molnar
2019-11-17 0:35 ` pr-tracker-bot
2019-10-12 13:19 Ingo Molnar
2019-10-12 22:35 ` pr-tracker-bot
2019-09-12 12:57 Ingo Molnar
2019-09-12 14:05 ` pr-tracker-bot
2019-09-05 8:07 Ingo Molnar
2019-09-05 21:15 ` pr-tracker-bot
2019-06-29 9:14 Ingo Molnar
2019-06-29 11:45 ` pr-tracker-bot
2019-06-02 17:44 Ingo Molnar
2019-06-02 18:15 ` pr-tracker-bot
2019-05-16 16:26 Ingo Molnar
2019-05-16 18:20 ` pr-tracker-bot
2019-04-27 14:42 Ingo Molnar
2019-04-27 18:45 ` pr-tracker-bot
2019-04-20 7:38 Ingo Molnar
2019-04-20 19:25 ` pr-tracker-bot
2019-04-12 13:10 Ingo Molnar
2019-04-13 4:05 ` pr-tracker-bot
2019-02-17 10:19 Ingo Molnar
2019-02-17 16:50 ` pr-tracker-bot
2019-02-10 9:13 Ingo Molnar
2019-02-10 18:30 ` pr-tracker-bot
2019-01-11 7:14 Ingo Molnar
2019-01-11 18:00 ` pr-tracker-bot
2018-12-21 12:25 Ingo Molnar
2018-12-21 19:30 ` pr-tracker-bot
2018-12-09 22:06 Ingo Molnar
2018-12-09 23:45 ` pr-tracker-bot
2018-11-30 6:29 Ingo Molnar
2018-11-30 21:00 ` pr-tracker-bot
2018-11-03 23:09 Ingo Molnar
2018-11-04 1:27 ` Linus Torvalds
2018-10-20 8:54 Ingo Molnar
2018-10-20 13:28 ` Greg Kroah-Hartman
2018-10-11 9:14 Ingo Molnar
2018-10-11 12:32 ` Greg Kroah-Hartman
2018-10-05 9:53 Ingo Molnar
2018-10-05 23:06 ` Greg Kroah-Hartman
2018-09-15 13:24 Ingo Molnar
2018-07-30 17:59 Ingo Molnar
2018-06-30 8:49 Ingo Molnar
2018-06-30 19:01 ` Linus Torvalds
2018-07-02 18:47 ` Andy Lutomirski
2018-07-02 18:53 ` Linus Torvalds
2018-07-03 7:56 ` Ingo Molnar
2018-03-31 10:36 Ingo Molnar
2018-02-15 0:45 Ingo Molnar
2018-01-17 15:41 Ingo Molnar
2018-01-17 20:35 ` Linus Torvalds
2018-01-18 0:24 ` Ingo Molnar
2018-01-18 0:29 ` Andrew Morton
2018-01-12 13:56 Ingo Molnar
2017-12-15 15:43 Ingo Molnar
2017-12-15 15:50 ` Andy Lutomirski
2017-12-15 16:07 ` Ingo Molnar
2017-12-17 3:25 ` Andy Lutomirski
2017-12-17 8:32 ` Ingo Molnar
2017-12-17 11:41 ` Thomas Gleixner
2017-12-17 15:15 ` Borislav Petkov
2017-12-06 22:36 Ingo Molnar
2017-11-26 12:48 Ingo Molnar
2017-11-05 14:46 Ingo Molnar
2017-10-27 19:24 Ingo Molnar
2017-10-14 16:16 Ingo Molnar
2017-09-24 11:28 Ingo Molnar
2017-09-13 17:54 Ingo Molnar
2017-09-12 15:38 Ingo Molnar
2017-08-26 7:26 Ingo Molnar
2017-07-21 10:26 Ingo Molnar
2017-06-10 9:03 Ingo Molnar
2017-06-02 6:54 Ingo Molnar
2017-05-12 7:39 Ingo Molnar
2017-03-07 20:40 Ingo Molnar
2017-02-28 8:08 Ingo Molnar
2017-02-11 18:18 Ingo Molnar
2017-02-02 21:04 Ingo Molnar
2017-01-15 10:06 Ingo Molnar
2016-12-23 22:57 Ingo Molnar
2016-12-07 18:53 Ingo Molnar
2016-11-22 15:41 Ingo Molnar
2016-11-14 8:03 Ingo Molnar
2016-10-28 8:41 Ingo Molnar
2016-10-22 11:16 Ingo Molnar
2016-10-18 11:22 Ingo Molnar
2016-09-13 18:20 Ingo Molnar
2016-08-18 20:49 Ingo Molnar
2016-08-12 19:46 Ingo Molnar
2016-08-06 6:13 Ingo Molnar
2016-07-13 12:54 Ingo Molnar
2016-07-08 14:00 Ingo Molnar
2016-06-10 14:43 Ingo Molnar
2016-05-25 22:00 Ingo Molnar
2016-05-10 12:01 Ingo Molnar
2016-05-06 19:20 Ingo Molnar
2016-04-28 18:00 Ingo Molnar
2016-04-23 11:38 Ingo Molnar
2016-04-14 14:13 Ingo Molnar
2016-03-24 8:01 Ingo Molnar
2016-03-12 19:06 Ingo Molnar
2016-02-20 11:30 Ingo Molnar
2016-01-14 10:16 Ingo Molnar
2016-01-08 12:57 Ingo Molnar
2015-10-23 11:45 Ingo Molnar
2015-10-03 10:24 Ingo Molnar
2015-10-03 10:57 ` Ingo Molnar
2015-10-03 19:40 ` Thomas Gleixner
2015-09-17 8:28 Ingo Molnar
2015-08-22 12:21 Ingo Molnar
2015-08-14 7:15 Ingo Molnar
2015-08-14 18:25 ` Linus Torvalds
2015-08-14 18:46 ` Andy Lutomirski
2015-08-14 18:57 ` Linus Torvalds
2015-08-14 19:06 ` Linus Torvalds
2015-08-14 19:18 ` Andy Lutomirski
2015-08-14 19:37 ` Linus Torvalds
2015-08-14 19:14 ` Andy Lutomirski
2015-08-17 8:01 ` Ingo Molnar
2015-08-17 10:59 ` Denys Vlasenko
2015-08-17 16:57 ` Linus Torvalds
2015-08-18 7:57 ` Ingo Molnar
2015-08-17 16:47 ` Linus Torvalds
2015-08-17 16:58 ` H. Peter Anvin
2015-08-17 17:17 ` Linus Torvalds
2015-08-17 22:17 ` H. Peter Anvin
2015-08-19 5:59 ` Ingo Molnar
2015-08-19 6:15 ` Ingo Molnar
2015-08-19 6:50 ` Ingo Molnar
2015-08-19 10:00 ` H. Peter Anvin
2015-08-19 22:33 ` Linus Torvalds
2015-08-20 6:54 ` H. Peter Anvin
2015-08-19 21:53 ` H. Peter Anvin
2015-08-21 10:17 ` Denys Vlasenko
2015-08-17 23:47 ` Bryan O'Donoghue
2015-08-17 21:03 ` H. Peter Anvin
2015-08-17 23:59 ` Andy Lutomirski
2015-08-18 0:01 ` H. Peter Anvin
2015-08-18 0:06 ` H. Peter Anvin
2015-08-18 0:19 ` Andy Lutomirski
2015-08-18 5:56 ` H. Peter Anvin
2015-08-18 5:59 ` H. Peter Anvin
2015-08-18 7:55 ` Ingo Molnar
2015-08-01 8:44 Ingo Molnar
2015-07-18 3:18 Ingo Molnar
2015-07-20 7:20 ` Heiko Carstens
2015-07-04 11:29 Ingo Molnar
2015-06-05 8:40 Ingo Molnar
2015-05-27 12:54 Ingo Molnar
2015-05-06 12:58 Ingo Molnar
2015-05-06 18:14 ` Linus Torvalds
2015-04-18 15:26 Ingo Molnar
2015-04-03 13:16 Ingo Molnar
2015-03-17 16:54 Ingo Molnar
2015-03-05 17:02 Ingo Molnar
2015-03-01 17:14 Ingo Molnar
2015-02-20 13:47 Ingo Molnar
2015-01-11 8:51 Ingo Molnar
2014-12-14 19:46 Ingo Molnar
2014-11-20 8:02 Ingo Molnar
2014-11-16 9:07 Ingo Molnar
2014-11-17 7:42 ` Markus Trippelsdorf
2014-11-17 8:27 ` Markus Trippelsdorf
2014-11-17 13:58 ` Ingo Molnar
2014-11-17 21:02 ` Kees Cook
2014-11-17 21:05 ` Markus Trippelsdorf
2014-11-17 21:21 ` Markus Trippelsdorf
2014-11-17 23:09 ` Kees Cook
2014-10-31 11:26 Ingo Molnar
2014-09-27 6:02 Ingo Molnar
2014-09-19 10:40 Ingo Molnar
2014-09-23 5:22 ` Linus Torvalds
2014-09-23 5:35 ` Ingo Molnar
2014-09-23 5:37 ` Ingo Molnar
2014-09-23 5:44 ` H. Peter Anvin
2014-09-23 5:59 ` Linus Torvalds
2014-09-23 6:07 ` Linus Torvalds
2014-09-23 6:56 ` Matt Fleming
[not found] ` <CA+55aFz+2tf7zEGjVmkVuncZssiDdVRKJ=OUfgnDFf2TYN-KvA@mail.gmail.com>
2014-09-23 7:35 ` Matt Fleming
2014-09-23 12:18 ` Josh Boyer
2014-09-23 5:58 ` Ingo Molnar
2014-09-23 7:20 ` Matt Fleming
2014-09-23 8:18 ` Ard Biesheuvel
2014-09-23 13:18 ` Matt Fleming
2014-09-23 13:59 ` Leif Lindholm
2014-09-23 14:25 ` Maarten Lankhorst
2014-09-23 14:37 ` Matt Fleming
2014-09-23 16:01 ` Linus Torvalds
2014-09-24 7:26 ` Ingo Molnar
2014-09-24 11:42 ` Matt Fleming
2014-09-24 13:08 ` Ingo Molnar
2014-09-24 13:18 ` Matt Fleming
2014-09-24 13:18 ` Ingo Molnar
2014-09-23 16:05 ` Linus Torvalds
2014-09-23 16:11 ` Matt Fleming
2014-09-23 16:17 ` Josh Boyer
2014-09-23 17:21 ` Josh Boyer
2014-09-23 20:43 ` Matt Fleming
2014-08-24 20:28 Ingo Molnar
2014-04-16 13:21 Ingo Molnar
2013-11-13 20:47 Ingo Molnar
2013-10-18 19:11 Ingo Molnar
2013-10-12 17:15 Ingo Molnar
2013-10-12 18:05 ` Linus Torvalds
2013-10-12 18:18 ` H. Peter Anvin
2013-10-12 18:49 ` Ingo Molnar
2013-10-15 7:15 ` Ingo Molnar
2013-10-15 10:57 ` Borislav Petkov
2013-10-12 19:28 ` Matthew Garrett
2013-10-12 19:41 ` Linus Torvalds
2013-10-12 20:35 ` H. Peter Anvin
2013-10-04 7:57 Ingo Molnar
2013-09-25 18:16 Ingo Molnar
2013-09-18 16:24 Ingo Molnar
2013-09-05 11:03 Ingo Molnar
2013-08-19 11:23 Ingo Molnar
2013-04-14 15:55 Ingo Molnar
2013-02-26 12:10 Ingo Molnar
2013-02-04 18:31 Ingo Molnar
2012-10-26 14:52 Ingo Molnar
2012-09-21 19:15 Ingo Molnar
2012-08-23 10:54 Ingo Molnar
2012-08-20 9:21 Ingo Molnar
2012-08-21 8:00 ` Ingo Molnar
2012-08-03 16:51 Ingo Molnar
2012-06-29 15:33 Ingo Molnar
2012-06-15 18:53 Ingo Molnar
2012-06-08 14:46 Ingo Molnar
2012-05-17 8:24 Ingo Molnar
2012-04-27 6:57 Ingo Molnar
2012-04-03 22:45 Ingo Molnar
2012-04-03 23:47 ` Konrad Rzeszutek Wilk
2012-04-04 6:56 ` Ingo Molnar
2012-04-04 13:03 ` Konrad Rzeszutek Wilk
2012-02-27 10:32 Ingo Molnar
2012-02-02 10:10 Ingo Molnar
2012-01-26 20:15 Ingo Molnar
2012-01-15 13:40 Ingo Molnar
2011-12-13 23:00 Ingo Molnar
2011-12-05 19:18 Ingo Molnar
2011-07-07 18:24 Ingo Molnar
2011-06-19 9:09 Ingo Molnar
2011-06-13 9:49 Ingo Molnar
2011-06-07 18:44 Ingo Molnar
2011-05-31 16:30 Ingo Molnar
2011-05-31 16:35 ` Joe Perches
2011-05-31 18:16 ` Borislav Petkov
2011-05-31 19:04 ` Ingo Molnar
2011-05-31 19:51 ` Borislav Petkov
2011-05-31 21:35 ` Linus Torvalds
2011-06-01 6:00 ` Ingo Molnar
2011-06-01 6:08 ` Joe Perches
2011-06-01 6:18 ` Borislav Petkov
2011-06-01 6:24 ` Ingo Molnar
2011-05-23 10:19 Ingo Molnar
2011-05-17 21:43 Ingo Molnar
2011-05-03 11:44 Ingo Molnar
2011-04-29 18:02 Ingo Molnar
2011-04-21 16:06 Ingo Molnar
2011-04-16 10:11 Ingo Molnar
2011-04-07 17:36 Ingo Molnar
2011-04-02 10:52 Ingo Molnar
2011-03-25 13:35 Ingo Molnar
2011-03-22 10:20 Ingo Molnar
2011-03-18 13:54 Ingo Molnar
2011-03-16 16:21 Ingo Molnar
2011-03-10 8:10 Ingo Molnar
2011-02-28 17:37 Ingo Molnar
2011-02-25 19:58 Ingo Molnar
2011-02-15 16:36 Ingo Molnar
2011-02-06 11:18 Ingo Molnar
2011-01-27 17:28 Ingo Molnar
2011-01-24 13:01 Ingo Molnar
2011-01-19 19:01 Ingo Molnar
2011-01-18 19:05 Ingo Molnar
2011-01-15 15:17 Ingo Molnar
2010-12-19 15:30 Ingo Molnar
2010-11-26 13:27 Ingo Molnar
2010-11-11 11:03 Ingo Molnar
2010-10-27 16:05 Ingo Molnar
2010-10-27 16:07 ` Ingo Molnar
2010-09-26 8:50 Ingo Molnar
2010-09-08 13:08 Ingo Molnar
2010-06-02 11:49 Ingo Molnar
2010-03-30 12:30 Ingo Molnar
2010-03-26 15:43 Ingo Molnar
2010-03-29 15:47 ` Linus Torvalds
2010-03-29 16:47 ` Ingo Molnar
2010-03-13 16:39 Ingo Molnar
2010-01-31 17:19 Ingo Molnar
2010-01-16 17:03 Ingo Molnar
2010-01-16 20:34 ` Linus Torvalds
2010-01-16 20:53 ` Cyrill Gorcunov
2010-01-16 21:16 ` Ian Campbell
2010-01-16 22:12 ` Cyrill Gorcunov
2010-01-17 0:50 ` H. Peter Anvin
2010-01-16 21:06 ` H. Peter Anvin
2010-01-16 21:09 ` H. Peter Anvin
2010-01-17 0:18 ` Brian Gerst
2010-01-17 6:00 ` Ian Campbell
2009-12-31 12:03 Ingo Molnar
2009-12-31 12:56 ` Borislav Petkov
2009-12-18 18:56 Ingo Molnar
2009-12-15 20:36 Ingo Molnar
2009-12-14 19:06 Ingo Molnar
2009-12-10 19:42 Ingo Molnar
2009-11-10 17:40 Ingo Molnar
2009-11-04 15:48 Ingo Molnar
2009-11-01 15:24 Ingo Molnar
2009-10-23 14:40 Ingo Molnar
2009-10-15 10:55 Ingo Molnar
2009-10-13 18:15 Ingo Molnar
2009-10-08 18:57 Ingo Molnar
2009-10-02 12:36 Ingo Molnar
2009-09-26 12:21 Ingo Molnar
2009-09-21 12:59 Ingo Molnar
2009-08-28 10:40 Ingo Molnar
2009-08-25 18:00 Ingo Molnar
2009-08-17 21:37 Ingo Molnar
2009-08-13 18:49 Ingo Molnar
2009-08-09 16:01 Ingo Molnar
2009-08-04 18:55 Ingo Molnar
2009-06-26 19:07 Ingo Molnar
2009-06-12 10:47 Ingo Molnar
2009-05-18 14:38 Ingo Molnar
2009-05-08 18:46 Ingo Molnar
2009-05-05 9:26 Ingo Molnar
2009-04-26 17:18 Ingo Molnar
2009-04-17 1:32 Ingo Molnar
2009-04-13 17:36 Ingo Molnar
2009-04-09 15:47 Ingo Molnar
2009-04-03 22:46 Ingo Molnar
2009-03-06 18:36 [git pull] " Ingo Molnar
2009-03-03 20:59 Ingo Molnar
2009-03-02 8:47 Ingo Molnar
2009-02-27 16:28 Ingo Molnar
2009-02-21 17:08 Ingo Molnar
2009-02-20 14:18 Ingo Molnar
2009-02-19 17:10 Ingo Molnar
2009-02-21 2:13 ` Linus Torvalds
2009-02-21 6:56 ` H. Peter Anvin
2009-02-21 8:32 ` Ingo Molnar
2009-02-21 8:39 ` Ingo Molnar
2009-02-21 8:42 ` H. Peter Anvin
2009-02-21 9:18 ` Sam Ravnborg
2009-02-21 9:46 ` Ingo Molnar
2009-02-17 16:36 Ingo Molnar
2009-02-11 14:31 Ingo Molnar
2009-02-04 19:22 Ingo Molnar
2009-01-30 23:00 Ingo Molnar
2009-01-26 17:17 Ingo Molnar
2009-01-26 19:05 ` Andrew Morton
2009-01-26 19:20 ` Ingo Molnar
2009-01-26 19:40 ` Andrew Morton
2009-01-26 19:59 ` Ingo Molnar
2009-01-26 20:14 ` Andrew Morton
2009-01-26 20:28 ` Ingo Molnar
2009-01-19 23:23 Ingo Molnar
2009-01-12 18:28 Ingo Molnar
2009-01-11 14:39 Ingo Molnar
2009-01-11 16:45 ` Torsten Kaiser
2009-01-11 18:18 ` Ingo Molnar
2009-01-12 18:17 ` Pallipadi, Venkatesh
2009-01-12 19:01 ` Torsten Kaiser
2009-01-12 19:19 ` Pallipadi, Venkatesh
2009-01-12 19:29 ` Pallipadi, Venkatesh
2009-01-12 19:47 ` Linus Torvalds
2009-01-12 19:54 ` Pallipadi, Venkatesh
2009-01-12 20:38 ` Ingo Molnar
2009-01-12 20:52 ` Ingo Molnar
2009-01-12 21:03 ` Harvey Harrison
2009-01-12 21:12 ` Ingo Molnar
2009-01-12 21:55 ` Torsten Kaiser
2009-01-12 22:03 ` Ingo Molnar
2009-01-12 20:05 ` Torsten Kaiser
2009-01-12 20:40 ` Ingo Molnar
2009-01-12 21:50 ` Torsten Kaiser
2009-01-12 22:13 ` Ingo Molnar
2009-01-13 19:20 ` Torsten Kaiser
2009-01-12 22:16 ` Ingo Molnar
2009-01-02 21:48 Ingo Molnar
2008-12-20 13:43 Ingo Molnar
2008-12-20 19:16 ` Linus Torvalds
2008-12-20 19:31 ` Ingo Molnar
2008-12-20 22:11 ` Linus Torvalds
2008-12-20 20:58 ` Joerg Roedel
2008-12-08 18:26 Ingo Molnar
2008-12-04 19:46 Ingo Molnar
2008-11-29 19:31 Ingo Molnar
2008-11-20 11:22 Ingo Molnar
2008-11-18 20:35 Ingo Molnar
2008-11-06 21:29 Ingo Molnar
2008-11-01 17:06 Ingo Molnar
2008-10-30 23:34 Ingo Molnar
2008-10-28 10:49 Ingo Molnar
2008-10-23 19:33 Ingo Molnar
2008-10-17 17:27 Ingo Molnar
2008-10-15 16:32 Ingo Molnar
2008-10-01 18:05 Ingo Molnar
2008-09-27 21:02 Ingo Molnar
2008-09-23 19:34 Ingo Molnar
2008-09-17 9:58 Ingo Molnar
2008-09-09 19:03 H. Peter Anvin
2008-09-08 19:32 H. Peter Anvin
2008-09-08 20:34 ` David Sanders
2008-09-08 21:20 ` H. Peter Anvin
2008-09-08 21:22 ` H. Peter Anvin
2008-09-08 21:43 ` H. Peter Anvin
2008-09-08 22:16 ` David Sanders
2008-09-09 6:05 ` Ingo Molnar
2008-09-09 7:19 ` Ingo Molnar
2008-09-09 19:18 ` David Sanders
2008-09-09 19:56 ` Linus Torvalds
2008-09-09 20:37 ` David Sanders
2008-09-09 20:45 ` Linus Torvalds
2008-09-09 20:46 ` Linus Torvalds
2008-09-09 20:49 ` Ingo Molnar
2008-09-09 20:53 ` David Sanders
2008-09-08 17:52 H. Peter Anvin
2008-09-08 18:04 ` Linus Torvalds
2008-09-08 18:17 ` Linus Torvalds
2008-09-08 22:42 ` Andi Kleen
2008-09-08 18:22 ` H. Peter Anvin
2008-09-08 18:46 ` Arjan van de Ven
2008-09-08 18:51 ` H. Peter Anvin
2008-09-08 19:02 ` Ingo Molnar
2008-09-08 19:30 ` Linus Torvalds
2008-09-08 19:55 ` Arjan van de Ven
2008-09-08 20:14 ` H. Peter Anvin
2008-09-08 23:17 ` Krzysztof Halasa
2008-09-08 18:42 ` Arjan van de Ven
2008-09-09 10:24 ` Andi Kleen
2008-09-09 14:54 ` Linus Torvalds
2008-09-09 17:01 ` H. Peter Anvin
2008-09-09 17:17 ` Mark Lord
2008-09-09 17:19 ` H. Peter Anvin
2008-09-09 17:48 ` Mark Lord
2008-09-09 18:40 ` Andi Kleen
2008-09-09 16:05 ` Adrian Bunk
2008-09-09 16:15 ` Linus Torvalds
2008-09-08 20:25 ` Valdis.Kletnieks
2008-09-09 7:27 ` Ingo Molnar
2008-09-08 22:43 ` Andi Kleen
2008-09-09 16:57 ` Adrian Bunk
2008-09-09 17:03 ` H. Peter Anvin
2008-09-09 17:43 ` Adrian Bunk
2008-09-09 18:12 ` H. Peter Anvin
2008-09-06 19:01 Ingo Molnar
2008-09-05 18:51 Ingo Molnar
2008-08-28 11:41 Ingo Molnar
2008-08-25 17:50 Ingo Molnar
2008-08-22 12:23 Ingo Molnar
2008-08-18 18:36 Ingo Molnar
2008-07-31 21:42 Ingo Molnar
2008-07-29 15:53 Ingo Molnar
2008-07-26 19:15 Ingo Molnar
2008-07-24 15:12 Ingo Molnar
2008-07-24 19:36 ` Linus Torvalds
2008-07-24 20:38 ` H. Peter Anvin
2008-07-22 14:03 Ingo Molnar
2008-07-22 14:35 ` Johannes Weiner
2008-07-22 15:08 ` Jeremy Fitzhardinge
2008-07-22 15:23 ` Johannes Weiner
2008-07-17 17:32 Ingo Molnar
2008-07-15 15:01 Ingo Molnar
2008-07-15 15:13 ` Ingo Molnar
2008-07-15 16:03 ` Linus Torvalds
2008-07-05 19:29 Ingo Molnar
2008-07-04 16:48 Ingo Molnar
2008-06-30 15:30 Ingo Molnar
2008-06-19 15:13 Ingo Molnar
2008-06-19 21:29 ` Simon Holm Thøgersen
2008-06-19 23:34 ` Suresh Siddha
2008-06-12 19:51 Ingo Molnar
2008-05-13 19:27 Ingo Molnar
2008-05-13 19:40 ` Adrian Bunk
2008-05-13 20:02 ` Adrian Bunk
2008-05-13 20:38 ` Adrian Bunk
2008-05-13 21:01 ` H. Peter Anvin
2008-05-13 20:20 ` Linus Torvalds
2008-05-04 19:35 Ingo Molnar
2008-05-05 15:12 ` Adrian Bunk
2008-05-05 15:29 ` Andres Salomon
2008-05-06 12:49 ` Thomas Gleixner
2008-05-07 15:41 ` Andres Salomon
2008-05-07 19:08 ` Thomas Gleixner
2008-05-07 19:48 ` Andres Salomon
2008-05-07 20:07 ` Andrew Morton
2008-05-09 10:28 ` Ingo Molnar
2008-04-30 21:24 Ingo Molnar
2008-04-24 21:37 Ingo Molnar
2008-04-07 19:38 Ingo Molnar
2008-03-27 20:03 Ingo Molnar
2008-03-27 20:31 ` Linus Torvalds
2008-03-27 20:48 ` Harvey Harrison
2008-03-27 20:55 ` Ingo Molnar
2008-03-27 21:01 ` Ingo Molnar
2008-03-27 21:08 ` Harvey Harrison
2008-03-27 20:50 ` Ingo Molnar
2008-03-27 21:24 ` Ingo Molnar
2008-03-26 21:41 Ingo Molnar
2008-03-21 16:20 Ingo Molnar
2008-03-11 16:12 Ingo Molnar
2008-03-07 15:50 Ingo Molnar
2008-03-04 16:59 Ingo Molnar
2008-03-03 13:18 Ingo Molnar
2008-01-01 17:21 Ingo Molnar
2007-12-21 0:46 Ingo Molnar
2007-12-19 23:04 Ingo Molnar
2007-12-04 16:41 Ingo Molnar
2007-12-02 19:12 Ingo Molnar
2007-12-03 16:23 ` Linus Torvalds
2007-12-03 16:38 ` Ingo Molnar
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=20200906081515.GA3034383@gmail.com \
--to=mingo@kernel.org \
--cc=a.p.zijlstra@chello.nl \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--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
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.