linux-kernel.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, Will Deacon <will@kernel.org>,
	Jean-Philippe Brucker <jean-philippe@linaro.org>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Subject: [PATCH 5.4 237/240] arm64: kprobes: Use BRK instead of single-step when executing instructions out-of-line
Date: Mon, 20 Jun 2022 14:52:18 +0200	[thread overview]
Message-ID: <20220620124745.818296028@linuxfoundation.org> (raw)
In-Reply-To: <20220620124737.799371052@linuxfoundation.org>

From: Jean-Philippe Brucker <jean-philippe@linaro.org>

commit 7ee31a3aa8f490c6507bc4294df6b70bed1c593e upstream.

Commit 36dadef23fcc ("kprobes: Init kprobes in early_initcall") enabled
using kprobes from early_initcall. Unfortunately at this point the
hardware debug infrastructure is not operational. The OS lock may still
be locked, and the hardware watchpoints may have unknown values when
kprobe enables debug monitors to single-step instructions.

Rather than using hardware single-step, append a BRK instruction after
the instruction to be executed out-of-line.

Fixes: 36dadef23fcc ("kprobes: Init kprobes in early_initcall")
Suggested-by: Will Deacon <will@kernel.org>
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Link: https://lore.kernel.org/r/20201103134900.337243-1-jean-philippe@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 arch/arm64/include/asm/brk-imm.h        |    2 
 arch/arm64/include/asm/debug-monitors.h |    1 
 arch/arm64/include/asm/kprobes.h        |    2 
 arch/arm64/kernel/probes/kprobes.c      |   69 ++++++++++----------------------
 4 files changed, 27 insertions(+), 47 deletions(-)

--- a/arch/arm64/include/asm/brk-imm.h
+++ b/arch/arm64/include/asm/brk-imm.h
@@ -10,6 +10,7 @@
  * #imm16 values used for BRK instruction generation
  * 0x004: for installing kprobes
  * 0x005: for installing uprobes
+ * 0x006: for kprobe software single-step
  * Allowed values for kgdb are 0x400 - 0x7ff
  * 0x100: for triggering a fault on purpose (reserved)
  * 0x400: for dynamic BRK instruction
@@ -19,6 +20,7 @@
  */
 #define KPROBES_BRK_IMM			0x004
 #define UPROBES_BRK_IMM			0x005
+#define KPROBES_BRK_SS_IMM		0x006
 #define FAULT_BRK_IMM			0x100
 #define KGDB_DYN_DBG_BRK_IMM		0x400
 #define KGDB_COMPILED_DBG_BRK_IMM	0x401
--- a/arch/arm64/include/asm/debug-monitors.h
+++ b/arch/arm64/include/asm/debug-monitors.h
@@ -53,6 +53,7 @@
 
 /* kprobes BRK opcodes with ESR encoding  */
 #define BRK64_OPCODE_KPROBES	(AARCH64_BREAK_MON | (KPROBES_BRK_IMM << 5))
+#define BRK64_OPCODE_KPROBES_SS	(AARCH64_BREAK_MON | (KPROBES_BRK_SS_IMM << 5))
 /* uprobes BRK opcodes with ESR encoding  */
 #define BRK64_OPCODE_UPROBES	(AARCH64_BREAK_MON | (UPROBES_BRK_IMM << 5))
 
--- a/arch/arm64/include/asm/kprobes.h
+++ b/arch/arm64/include/asm/kprobes.h
@@ -16,7 +16,7 @@
 #include <linux/percpu.h>
 
 #define __ARCH_WANT_KPROBES_INSN_SLOT
-#define MAX_INSN_SIZE			1
+#define MAX_INSN_SIZE			2
 
 #define flush_insn_slot(p)		do { } while (0)
 #define kretprobe_blacklist_size	0
--- a/arch/arm64/kernel/probes/kprobes.c
+++ b/arch/arm64/kernel/probes/kprobes.c
@@ -36,25 +36,16 @@ DEFINE_PER_CPU(struct kprobe_ctlblk, kpr
 static void __kprobes
 post_kprobe_handler(struct kprobe_ctlblk *, struct pt_regs *);
 
-static int __kprobes patch_text(kprobe_opcode_t *addr, u32 opcode)
-{
-	void *addrs[1];
-	u32 insns[1];
-
-	addrs[0] = addr;
-	insns[0] = opcode;
-
-	return aarch64_insn_patch_text(addrs, insns, 1);
-}
-
 static void __kprobes arch_prepare_ss_slot(struct kprobe *p)
 {
+	kprobe_opcode_t *addr = p->ainsn.api.insn;
+	void *addrs[] = {addr, addr + 1};
+	u32 insns[] = {p->opcode, BRK64_OPCODE_KPROBES_SS};
+
 	/* prepare insn slot */
-	patch_text(p->ainsn.api.insn, p->opcode);
+	aarch64_insn_patch_text(addrs, insns, 2);
 
-	flush_icache_range((uintptr_t) (p->ainsn.api.insn),
-			   (uintptr_t) (p->ainsn.api.insn) +
-			   MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
+	flush_icache_range((uintptr_t)addr, (uintptr_t)(addr + MAX_INSN_SIZE));
 
 	/*
 	 * Needs restoring of return address after stepping xol.
@@ -134,13 +125,18 @@ void *alloc_insn_page(void)
 /* arm kprobe: install breakpoint in text */
 void __kprobes arch_arm_kprobe(struct kprobe *p)
 {
-	patch_text(p->addr, BRK64_OPCODE_KPROBES);
+	void *addr = p->addr;
+	u32 insn = BRK64_OPCODE_KPROBES;
+
+	aarch64_insn_patch_text(&addr, &insn, 1);
 }
 
 /* disarm kprobe: remove breakpoint from text */
 void __kprobes arch_disarm_kprobe(struct kprobe *p)
 {
-	patch_text(p->addr, p->opcode);
+	void *addr = p->addr;
+
+	aarch64_insn_patch_text(&addr, &p->opcode, 1);
 }
 
 void __kprobes arch_remove_kprobe(struct kprobe *p)
@@ -169,20 +165,15 @@ static void __kprobes set_current_kprobe
 }
 
 /*
- * Interrupts need to be disabled before single-step mode is set, and not
- * reenabled until after single-step mode ends.
- * Without disabling interrupt on local CPU, there is a chance of
- * interrupt occurrence in the period of exception return and  start of
- * out-of-line single-step, that result in wrongly single stepping
- * into the interrupt handler.
+ * Mask all of DAIF while executing the instruction out-of-line, to keep things
+ * simple and avoid nesting exceptions. Interrupts do have to be disabled since
+ * the kprobe state is per-CPU and doesn't get migrated.
  */
 static void __kprobes kprobes_save_local_irqflag(struct kprobe_ctlblk *kcb,
 						struct pt_regs *regs)
 {
 	kcb->saved_irqflag = regs->pstate & DAIF_MASK;
-	regs->pstate |= PSR_I_BIT;
-	/* Unmask PSTATE.D for enabling software step exceptions. */
-	regs->pstate &= ~PSR_D_BIT;
+	regs->pstate |= DAIF_MASK;
 }
 
 static void __kprobes kprobes_restore_local_irqflag(struct kprobe_ctlblk *kcb,
@@ -225,10 +216,7 @@ static void __kprobes setup_singlestep(s
 		slot = (unsigned long)p->ainsn.api.insn;
 
 		set_ss_context(kcb, slot);	/* mark pending ss */
-
-		/* IRQs and single stepping do not mix well. */
 		kprobes_save_local_irqflag(kcb, regs);
-		kernel_enable_single_step(regs);
 		instruction_pointer_set(regs, slot);
 	} else {
 		/* insn simulation */
@@ -279,12 +267,8 @@ post_kprobe_handler(struct kprobe_ctlblk
 	}
 	/* call post handler */
 	kcb->kprobe_status = KPROBE_HIT_SSDONE;
-	if (cur->post_handler)	{
-		/* post_handler can hit breakpoint and single step
-		 * again, so we enable D-flag for recursive exception.
-		 */
+	if (cur->post_handler)
 		cur->post_handler(cur, regs, 0);
-	}
 
 	reset_current_kprobe();
 }
@@ -308,8 +292,6 @@ int __kprobes kprobe_fault_handler(struc
 		if (!instruction_pointer(regs))
 			BUG();
 
-		kernel_disable_single_step();
-
 		if (kcb->kprobe_status == KPROBE_REENTER)
 			restore_previous_kprobe(kcb);
 		else
@@ -371,10 +353,6 @@ static void __kprobes kprobe_handler(str
 			 * pre-handler and it returned non-zero, it will
 			 * modify the execution path and no need to single
 			 * stepping. Let's just reset current kprobe and exit.
-			 *
-			 * pre_handler can hit a breakpoint and can step thru
-			 * before return, keep PSTATE D-flag enabled until
-			 * pre_handler return back.
 			 */
 			if (!p->pre_handler || !p->pre_handler(p, regs)) {
 				setup_singlestep(p, regs, kcb, 0);
@@ -405,7 +383,7 @@ kprobe_ss_hit(struct kprobe_ctlblk *kcb,
 }
 
 static int __kprobes
-kprobe_single_step_handler(struct pt_regs *regs, unsigned int esr)
+kprobe_breakpoint_ss_handler(struct pt_regs *regs, unsigned int esr)
 {
 	struct kprobe_ctlblk *kcb = get_kprobe_ctlblk();
 	int retval;
@@ -415,16 +393,15 @@ kprobe_single_step_handler(struct pt_reg
 
 	if (retval == DBG_HOOK_HANDLED) {
 		kprobes_restore_local_irqflag(kcb, regs);
-		kernel_disable_single_step();
-
 		post_kprobe_handler(kcb, regs);
 	}
 
 	return retval;
 }
 
-static struct step_hook kprobes_step_hook = {
-	.fn = kprobe_single_step_handler,
+static struct break_hook kprobes_break_ss_hook = {
+	.imm = KPROBES_BRK_SS_IMM,
+	.fn = kprobe_breakpoint_ss_handler,
 };
 
 static int __kprobes
@@ -568,7 +545,7 @@ int __kprobes arch_trampoline_kprobe(str
 int __init arch_init_kprobes(void)
 {
 	register_kernel_break_hook(&kprobes_break_hook);
-	register_kernel_step_hook(&kprobes_step_hook);
+	register_kernel_break_hook(&kprobes_break_ss_hook);
 
 	return 0;
 }



  parent reply	other threads:[~2022-06-20 14:03 UTC|newest]

Thread overview: 249+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-20 12:48 [PATCH 5.4 000/240] 5.4.200-rc1 review Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 001/240] 9p: missing chunk of "fs/9p: Dont update file type when updating file attributes" Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 002/240] bpf: Fix incorrect memory charge cost calculation in stack_map_alloc() Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 003/240] nfc: st21nfca: fix incorrect sizing calculations in EVT_TRANSACTION Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 004/240] crypto: blake2s - generic C library implementation and selftest Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 005/240] lib/crypto: blake2s: move hmac construction into wireguard Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 006/240] lib/crypto: sha1: re-roll loops to reduce code size Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 007/240] compat_ioctl: remove /dev/random commands Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 008/240] random: dont forget compat_ioctl on urandom Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 009/240] random: Dont wake crng_init_wait when crng_init == 1 Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 010/240] random: Add a urandom_read_nowait() for random APIs that dont warn Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 011/240] random: add GRND_INSECURE to return best-effort non-cryptographic bytes Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 012/240] random: ignore GRND_RANDOM in getentropy(2) Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 013/240] random: make /dev/random be almost like /dev/urandom Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 014/240] random: remove the blocking pool Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 015/240] random: delete code to pull data into pools Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 016/240] random: remove kernel.random.read_wakeup_threshold Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 017/240] random: remove unnecessary unlikely() Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 018/240] random: convert to ENTROPY_BITS for better code readability Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 019/240] random: Add and use pr_fmt() Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 020/240] random: fix typo in add_timer_randomness() Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 021/240] random: remove some dead code of poolinfo Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 022/240] random: split primary/secondary crng init paths Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 023/240] random: avoid warnings for !CONFIG_NUMA builds Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 024/240] x86: Remove arch_has_random, arch_has_random_seed Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 025/240] powerpc: " Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 026/240] s390: " Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 027/240] linux/random.h: " Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 028/240] linux/random.h: Use false with bool Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 029/240] linux/random.h: Mark CONFIG_ARCH_RANDOM functions __must_check Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 030/240] powerpc: Use bool in archrandom.h Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 031/240] random: add arch_get_random_*long_early() Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 032/240] random: avoid arch_get_random_seed_long() when collecting IRQ randomness Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 033/240] random: remove dead code left over from blocking pool Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 034/240] MAINTAINERS: co-maintain random.c Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 035/240] crypto: blake2s - include <linux/bug.h> instead of <asm/bug.h> Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 036/240] crypto: blake2s - adjust include guard naming Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 037/240] random: document add_hwgenerator_randomness() with other input functions Greg Kroah-Hartman
2022-06-20 12:48 ` [PATCH 5.4 038/240] random: remove unused irq_flags argument from add_interrupt_randomness() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 039/240] random: use BLAKE2s instead of SHA1 in extraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 040/240] random: do not sign extend bytes for rotation when mixing Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 041/240] random: do not re-init if crng_reseed completes before primary init Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 042/240] random: mix bootloader randomness into pool Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 043/240] random: harmonize "crng init done" messages Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 044/240] random: use IS_ENABLED(CONFIG_NUMA) instead of ifdefs Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 045/240] random: initialize ChaCha20 constants with correct endianness Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 046/240] random: early initialization of ChaCha constants Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 047/240] random: avoid superfluous call to RDRAND in CRNG extraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 048/240] random: dont reset crng_init_cnt on urandom_read() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 049/240] random: fix typo in comments Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 050/240] random: cleanup poolinfo abstraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 051/240] random: cleanup integer types Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 052/240] random: remove incomplete last_data logic Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 053/240] random: remove unused extract_entropy() reserved argument Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 054/240] random: rather than entropy_store abstraction, use global Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 055/240] random: remove unused OUTPUT_POOL constants Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 056/240] random: de-duplicate INPUT_POOL constants Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 057/240] random: prepend remaining pool constants with POOL_ Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 058/240] random: cleanup fractional entropy shift constants Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 059/240] random: access input_pool_data directly rather than through pointer Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 060/240] random: selectively clang-format where it makes sense Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 061/240] random: simplify arithmetic function flow in account() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 062/240] random: continually use hwgenerator randomness Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 063/240] random: access primary_pool directly rather than through pointer Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 064/240] random: only call crng_finalize_init() for primary_crng Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 065/240] random: use computational hash for entropy extraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 066/240] random: simplify entropy debiting Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 067/240] random: use linear min-entropy accumulation crediting Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 068/240] random: always wake up entropy writers after extraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 069/240] random: make credit_entropy_bits() always safe Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 070/240] random: remove use_input_pool parameter from crng_reseed() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 071/240] random: remove batched entropy locking Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 072/240] random: fix locking in crng_fast_load() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 073/240] random: use RDSEED instead of RDRAND in entropy extraction Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 074/240] random: get rid of secondary crngs Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 075/240] random: inline leaves of rand_initialize() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 076/240] random: ensure early RDSEED goes through mixer on init Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 077/240] random: do not xor RDRAND when writing into /dev/random Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 078/240] random: absorb fast pool into input pool after fast load Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 079/240] random: use simpler fast key erasure flow on per-cpu keys Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 080/240] random: use hash function for crng_slow_load() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 081/240] random: make more consistent use of integer types Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 082/240] random: remove outdated INT_MAX >> 6 check in urandom_read() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 083/240] random: zero buffer after reading entropy from userspace Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 084/240] random: fix locking for crng_init in crng_reseed() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 085/240] random: tie batched entropy generation to base_crng generation Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 086/240] random: remove ifdefd out interrupt bench Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 087/240] random: remove unused tracepoints Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 088/240] random: add proper SPDX header Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 089/240] random: deobfuscate irq u32/u64 contributions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 090/240] random: introduce drain_entropy() helper to declutter crng_reseed() Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 091/240] random: remove useless header comment Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 092/240] random: remove whitespace and reorder includes Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 093/240] random: group initialization wait functions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 094/240] random: group crng functions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 095/240] random: group entropy extraction functions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 096/240] random: group entropy collection functions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 097/240] random: group userspace read/write functions Greg Kroah-Hartman
2022-06-20 12:49 ` [PATCH 5.4 098/240] random: group sysctl functions Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 099/240] random: rewrite header introductory comment Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 100/240] random: defer fast pool mixing to worker Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 101/240] random: do not take pool spinlock at boot Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 102/240] random: unify early init crng load accounting Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 103/240] random: check for crng_init == 0 in add_device_randomness() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 104/240] random: pull add_hwgenerator_randomness() declaration into random.h Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 105/240] random: clear fast pool, crng, and batches in cpuhp bring up Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 106/240] random: round-robin registers as ulong, not u32 Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 107/240] random: only wake up writers after zap if threshold was passed Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 108/240] random: cleanup UUID handling Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 109/240] random: unify cycles_t and jiffies usage and types Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 110/240] random: do crng pre-init loading in worker rather than irq Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 111/240] random: give sysctl_random_min_urandom_seed a more sensible value Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 112/240] random: dont let 644 read-only sysctls be written to Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 113/240] random: replace custom notifier chain with standard one Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 114/240] random: use SipHash as interrupt entropy accumulator Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 115/240] random: make consistent usage of crng_ready() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 116/240] random: reseed more often immediately after booting Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 117/240] random: check for signal and try earlier when generating entropy Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 118/240] random: skip fast_init if hwrng provides large chunk of entropy Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 119/240] random: treat bootloader trust toggle the same way as cpu trust toggle Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 120/240] random: re-add removed comment about get_random_{u32,u64} reseeding Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 121/240] random: mix build-time latent entropy into pool at init Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 122/240] random: do not split fast init input in add_hwgenerator_randomness() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 123/240] random: do not allow user to keep crng key around on stack Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 124/240] random: check for signal_pending() outside of need_resched() check Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 125/240] random: check for signals every PAGE_SIZE chunk of /dev/[u]random Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 126/240] random: allow partial reads if later user copies fail Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 127/240] random: make random_get_entropy() return an unsigned long Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 128/240] random: document crng_fast_key_erasure() destination possibility Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 129/240] random: fix sysctl documentation nits Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 130/240] init: call time_init() before rand_initialize() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 131/240] ia64: define get_cycles macro for arch-override Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 132/240] s390: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 133/240] parisc: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 134/240] alpha: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 135/240] powerpc: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 136/240] timekeeping: Add raw clock fallback for random_get_entropy() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 137/240] m68k: use fallback for random_get_entropy() instead of zero Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 138/240] mips: use fallback for random_get_entropy() instead of just c0 random Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 139/240] arm: use fallback for random_get_entropy() instead of zero Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 140/240] nios2: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 141/240] x86/tsc: Use " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 142/240] um: use " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 143/240] sparc: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 144/240] xtensa: " Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 145/240] random: insist on random_get_entropy() existing in order to simplify Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 146/240] random: do not use batches when !crng_ready() Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 147/240] random: use first 128 bits of input as fast init Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 148/240] random: do not pretend to handle premature next security model Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 149/240] random: order timer entropy functions below interrupt functions Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 150/240] random: do not use input pool from hard IRQs Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 151/240] random: help compiler out with fast_mix() by using simpler arguments Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 152/240] siphash: use one source of truth for siphash permutations Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 153/240] random: use symbolic constants for crng_init states Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 154/240] random: avoid initializing twice in credit race Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 155/240] random: move initialization out of reseeding hot path Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 156/240] random: remove ratelimiting for in-kernel unseeded randomness Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 157/240] random: use proper jiffies comparison macro Greg Kroah-Hartman
2022-06-20 12:50 ` [PATCH 5.4 158/240] random: handle latent entropy and command line from random_init() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 159/240] random: credit architectural init the exact amount Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 160/240] random: use static branch for crng_ready() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 161/240] random: remove extern from functions in header Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 162/240] random: use proper return types on get_random_{int,long}_wait() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 163/240] random: make consistent use of buf and len Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 164/240] random: move initialization functions out of hot pages Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 165/240] random: move randomize_page() into mm where it belongs Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 166/240] random: unify batched entropy implementations Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 167/240] random: convert to using fops->read_iter() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 168/240] random: convert to using fops->write_iter() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 169/240] random: wire up fops->splice_{read,write}_iter() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 170/240] random: check for signals after page of pool writes Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 171/240] Revert "random: use static branch for crng_ready()" Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 172/240] crypto: drbg - always seeded with SP800-90B compliant noise source Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 173/240] crypto: drbg - prepare for more fine-grained tracking of seeding state Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 174/240] crypto: drbg - track whether DRBG was seeded with !rng_is_initialized() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 175/240] crypto: drbg - move dynamic ->reseed_threshold adjustments to __drbg_seed() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 176/240] crypto: drbg - always try to free Jitter RNG instance Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 177/240] crypto: drbg - make reseeding from get_random_bytes() synchronous Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 178/240] random: avoid checking crng_ready() twice in random_init() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 179/240] random: mark bootloader randomness code as __init Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 180/240] random: account for arch randomness in bits Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 181/240] powerpc/kasan: Silence KASAN warnings in __get_wchan() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 182/240] ASoC: nau8822: Add operation for internal PLL off and on Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 183/240] dma-debug: make things less spammy under memory pressure Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 184/240] ASoC: cs42l52: Fix TLV scales for mixer controls Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 185/240] ASoC: cs35l36: Update digital volume TLV Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 186/240] ASoC: cs53l30: Correct number of volume levels on SX controls Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 187/240] ASoC: cs42l52: Correct TLV for Bypass Volume Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 188/240] ASoC: cs42l56: Correct typo in minimum level for SX volume controls Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 189/240] ata: libata-core: fix NULL pointer deref in ata_host_alloc_pinfo() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 190/240] ASoC: wm8962: Fix suspend while playing music Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 191/240] ASoC: es8328: Fix event generation for deemphasis control Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 192/240] ASoC: wm_adsp: Fix event generation for wm_adsp_fw_put() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 193/240] scsi: vmw_pvscsi: Expand vcpuHint to 16 bits Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 194/240] scsi: lpfc: Fix port stuck in bypassed state after LIP in PT2PT topology Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 195/240] scsi: lpfc: Allow reduced polling rate for nvme_admin_async_event cmd completion Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 196/240] scsi: ipr: Fix missing/incorrect resource cleanup in error case Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 197/240] scsi: pmcraid: Fix missing " Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 198/240] ALSA: hda/realtek - Add HW8326 support Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 199/240] virtio-mmio: fix missing put_device() when vm_cmdline_parent registration failed Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 200/240] nfc: nfcmrvl: Fix memory leak in nfcmrvl_play_deferred Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 201/240] ipv6: Fix signed integer overflow in l2tp_ip6_sendmsg Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 202/240] net: ethernet: mtk_eth_soc: fix misuse of mem alloc interface netdev[napi]_alloc_frag Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 203/240] netfs: gcc-12: temporarily disable -Wattribute-warning for now Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 204/240] random: credit cpu and bootloader seeds by default Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 205/240] pNFS: Dont keep retrying if the server replied NFS4ERR_LAYOUTUNAVAILABLE Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 206/240] clocksource: hyper-v: unexport __init-annotated hv_init_clocksource() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 207/240] i40e: Fix adding ADQ filter to TC0 Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 208/240] i40e: Fix calculating the number of queue pairs Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 209/240] i40e: Fix call trace in setup_tx_descriptors Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 210/240] tty: goldfish: Fix free_irq() on remove Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 211/240] misc: atmel-ssc: Fix IRQ check in ssc_probe Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 212/240] mlxsw: spectrum_cnt: Reorder counter pools Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 213/240] net: bgmac: Fix an erroneous kfree() in bgmac_remove() Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 214/240] arm64: ftrace: fix branch range checks Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 215/240] certs/blacklist_hashes.c: fix const confusion in certs blacklist Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 216/240] faddr2line: Fix overlapping text section failures, the sequel Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 217/240] irqchip/gic/realview: Fix refcount leak in realview_gic_of_init Greg Kroah-Hartman
2022-06-20 12:51 ` [PATCH 5.4 218/240] irqchip/gic-v3: Fix error handling in gic_populate_ppi_partitions Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 219/240] irqchip/gic-v3: Fix refcount leak " Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 220/240] i2c: designware: Use standard optional ref clock implementation Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 221/240] comedi: vmk80xx: fix expression for tx buffer size Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 222/240] USB: serial: option: add support for Cinterion MV31 with new baseline Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 223/240] USB: serial: io_ti: add Agilent E5805A support Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 224/240] usb: dwc2: Fix memory leak in dwc2_hcd_init Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 225/240] usb: gadget: lpc32xx_udc: Fix refcount leak in lpc32xx_udc_probe Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 226/240] serial: 8250: Store to lsr_save_flags after lsr read Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 227/240] dm mirror log: round up region bitmap size to BITS_PER_LONG Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 228/240] ext4: fix bug_on ext4_mb_use_inode_pa Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 229/240] ext4: make variable "count" signed Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 230/240] ext4: add reserved GDT blocks check Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 231/240] ALSA: hda/realtek: fix mute/micmute LEDs for HP 440 G8 Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 232/240] ALSA: hda/realtek: fix right sounds and mute/micmute LEDs for HP machine Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 233/240] virtio-pci: Remove wrong address verification in vp_del_vqs() Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 234/240] net/sched: act_police: more accurate MTU policing Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 235/240] net: openvswitch: fix misuse of the cached connection on tuple changes Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 236/240] net: openvswitch: fix leak of nested actions Greg Kroah-Hartman
2022-06-20 12:52 ` Greg Kroah-Hartman [this message]
2022-06-20 12:52 ` [PATCH 5.4 238/240] RISC-V: fix barrier() use in <vdso/processor.h> Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 239/240] riscv: Less inefficient gcc tishift helpers (and export their symbols) Greg Kroah-Hartman
2022-06-20 12:52 ` [PATCH 5.4 240/240] powerpc/mm: Switch obsolete dssall to .long Greg Kroah-Hartman
2022-06-20 17:10 ` [PATCH 5.4 000/240] 5.4.200-rc1 review Florian Fainelli
2022-06-21  0:46 ` Guenter Roeck
2022-06-21  7:59 ` Naresh Kamboju
2022-06-21  9:44 ` Sudip Mukherjee
2022-06-21 12:36 ` Samuel Zou
2022-06-21 13:36 ` Guenter Roeck
2022-06-21 13:42   ` Greg Kroah-Hartman
2022-06-21 21:49 ` Shuah Khan

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=20220620124745.818296028@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=jean-philippe@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mark-pk.tsai@mediatek.com \
    --cc=mhiramat@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=will@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).