All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	patches@lists.linux.dev, Daniel Borkmann <daniel@iogearbox.net>,
	Alexei Starovoitov <ast@kernel.org>,
	Thadeu Lima de Souza Cascardo <cascardo@canonical.com>,
	Edward Liaw <edliaw@google.com>
Subject: [PATCH 4.14 006/193] bpf: fix subprog verifier bypass by div/mod by 0 exception
Date: Fri, 10 Mar 2023 14:36:28 +0100	[thread overview]
Message-ID: <20230310133711.131202272@linuxfoundation.org> (raw)
In-Reply-To: <20230310133710.926811681@linuxfoundation.org>

From: Daniel Borkmann <daniel@iogearbox.net>

Commit f6b1b3bf0d5f681631a293cfe1ca934b81716f1e upstream.

One of the ugly leftovers from the early eBPF days is that div/mod
operations based on registers have a hard-coded src_reg == 0 test
in the interpreter as well as in JIT code generators that would
return from the BPF program with exit code 0. This was basically
adopted from cBPF interpreter for historical reasons.

There are multiple reasons why this is very suboptimal and prone
to bugs. To name one: the return code mapping for such abnormal
program exit of 0 does not always match with a suitable program
type's exit code mapping. For example, '0' in tc means action 'ok'
where the packet gets passed further up the stack, which is just
undesirable for such cases (e.g. when implementing policy) and
also does not match with other program types.

While trying to work out an exception handling scheme, I also
noticed that programs crafted like the following will currently
pass the verifier:

  0: (bf) r6 = r1
  1: (85) call pc+8
  caller:
   R6=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
  callee:
   frame1: R1=ctx(id=0,off=0,imm=0) R10=fp0,call_1
  10: (b4) (u32) r2 = (u32) 0
  11: (b4) (u32) r3 = (u32) 1
  12: (3c) (u32) r3 /= (u32) r2
  13: (61) r0 = *(u32 *)(r1 +76)
  14: (95) exit
  returning from callee:
   frame1: R0_w=pkt(id=0,off=0,r=0,imm=0)
           R1=ctx(id=0,off=0,imm=0) R2_w=inv0
           R3_w=inv(id=0,umax_value=4294967295,var_off=(0x0; 0xffffffff))
           R10=fp0,call_1
  to caller at 2:
   R0_w=pkt(id=0,off=0,r=0,imm=0) R6=ctx(id=0,off=0,imm=0)
   R10=fp0,call_-1

  from 14 to 2: R0=pkt(id=0,off=0,r=0,imm=0)
                R6=ctx(id=0,off=0,imm=0) R10=fp0,call_-1
  2: (bf) r1 = r6
  3: (61) r1 = *(u32 *)(r1 +80)
  4: (bf) r2 = r0
  5: (07) r2 += 8
  6: (2d) if r2 > r1 goto pc+1
   R0=pkt(id=0,off=0,r=8,imm=0) R1=pkt_end(id=0,off=0,imm=0)
   R2=pkt(id=0,off=8,r=8,imm=0) R6=ctx(id=0,off=0,imm=0)
   R10=fp0,call_-1
  7: (71) r0 = *(u8 *)(r0 +0)
  8: (b7) r0 = 1
  9: (95) exit

  from 6 to 8: safe
  processed 16 insns (limit 131072), stack depth 0+0

Basically what happens is that in the subprog we make use of a
div/mod by 0 exception and in the 'normal' subprog's exit path
we just return skb->data back to the main prog. This has the
implication that the verifier thinks we always get a pkt pointer
in R0 while we still have the implicit 'return 0' from the div
as an alternative unconditional return path earlier. Thus, R0
then contains 0, meaning back in the parent prog we get the
address range of [0x0, skb->data_end] as read and writeable.
Similar can be crafted with other pointer register types.

Since i) BPF_ABS/IND is not allowed in programs that contain
BPF to BPF calls (and generally it's also disadvised to use in
native eBPF context), ii) unknown opcodes don't return zero
anymore, iii) we don't return an exception code in dead branches,
the only last missing case affected and to fix is the div/mod
handling.

What we would really need is some infrastructure to propagate
exceptions all the way to the original prog unwinding the
current stack and returning that code to the caller of the
BPF program. In user space such exception handling for similar
runtimes is typically implemented with setjmp(3) and longjmp(3)
as one possibility which is not available in the kernel,
though (kgdb used to implement it in kernel long time ago). I
implemented a PoC exception handling mechanism into the BPF
interpreter with porting setjmp()/longjmp() into x86_64 and
adding a new internal BPF_ABRT opcode that can use a program
specific exception code for all exception cases we have (e.g.
div/mod by 0, unknown opcodes, etc). While this seems to work
in the constrained BPF environment (meaning, here, we don't
need to deal with state e.g. from memory allocations that we
would need to undo before going into exception state), it still
has various drawbacks: i) we would need to implement the
setjmp()/longjmp() for every arch supported in the kernel and
for x86_64, arm64, sparc64 JITs currently supporting calls,
ii) it has unconditional additional cost on main program
entry to store CPU register state in initial setjmp() call,
and we would need some way to pass the jmp_buf down into
___bpf_prog_run() for main prog and all subprogs, but also
storing on stack is not really nice (other option would be
per-cpu storage for this, but it also has the drawback that
we need to disable preemption for every BPF program types).
All in all this approach would add a lot of complexity.

Another poor-man's solution would be to have some sort of
additional shared register or scratch buffer to hold state
for exceptions, and test that after every call return to
chain returns and pass R0 all the way down to BPF prog caller.
This is also problematic in various ways: i) an additional
register doesn't map well into JITs, and some other scratch
space could only be on per-cpu storage, which, again has the
side-effect that this only works when we disable preemption,
or somewhere in the input context which is not available
everywhere either, and ii) this adds significant runtime
overhead by putting conditionals after each and every call,
as well as implementation complexity.

Yet another option is to teach verifier that div/mod can
return an integer, which however is also complex to implement
as verifier would need to walk such fake 'mov r0,<code>; exit;'
sequeuence and there would still be no guarantee for having
propagation of this further down to the BPF caller as proper
exception code. For parent prog, it is also is not distinguishable
from a normal return of a constant scalar value.

The approach taken here is a completely different one with
little complexity and no additional overhead involved in
that we make use of the fact that a div/mod by 0 is undefined
behavior. Instead of bailing out, we adapt the same behavior
as on some major archs like ARMv8 [0] into eBPF as well:
X div 0 results in 0, and X mod 0 results in X. aarch64 and
aarch32 ISA do not generate any traps or otherwise aborts
of program execution for unsigned divides. I verified this
also with a test program compiled by gcc and clang, and the
behavior matches with the spec. Going forward we adapt the
eBPF verifier to emit such rewrites once div/mod by register
was seen. cBPF is not touched and will keep existing 'return 0'
semantics. Given the options, it seems the most suitable from
all of them, also since major archs have similar schemes in
place. Given this is all in the realm of undefined behavior,
we still have the option to adapt if deemed necessary and
this way we would also have the option of more flexibility
from LLVM code generation side (which is then fully visible
to verifier). Thus, this patch i) fixes the panic seen in
above program and ii) doesn't bypass the verifier observations.

  [0] ARM Architecture Reference Manual, ARMv8 [ARM DDI 0487B.b]
      http://infocenter.arm.com/help/topic/com.arm.doc.ddi0487b.b/DDI0487B_b_armv8_arm.pdf
      1) aarch64 instruction set: section C3.4.7 and C6.2.279 (UDIV)
         "A division by zero results in a zero being written to
          the destination register, without any indication that
          the division by zero occurred."
      2) aarch32 instruction set: section F1.4.8 and F5.1.263 (UDIV)
         "For the SDIV and UDIV instructions, division by zero
          always returns a zero result."

Fixes: f4d7e40a5b71 ("bpf: introduce function calls (verification)")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
Signed-off-by: Edward Liaw <edliaw@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
 kernel/bpf/core.c     |    8 --------
 kernel/bpf/verifier.c |   38 ++++++++++++++++++++++++++++++--------
 net/core/filter.c     |    9 ++++++++-
 3 files changed, 38 insertions(+), 17 deletions(-)

--- a/kernel/bpf/core.c
+++ b/kernel/bpf/core.c
@@ -1055,14 +1055,10 @@ select_insn:
 		(*(s64 *) &DST) >>= IMM;
 		CONT;
 	ALU64_MOD_X:
-		if (unlikely(SRC == 0))
-			return 0;
 		div64_u64_rem(DST, SRC, &tmp);
 		DST = tmp;
 		CONT;
 	ALU_MOD_X:
-		if (unlikely((u32)SRC == 0))
-			return 0;
 		tmp = (u32) DST;
 		DST = do_div(tmp, (u32) SRC);
 		CONT;
@@ -1075,13 +1071,9 @@ select_insn:
 		DST = do_div(tmp, (u32) IMM);
 		CONT;
 	ALU64_DIV_X:
-		if (unlikely(SRC == 0))
-			return 0;
 		DST = div64_u64(DST, SRC);
 		CONT;
 	ALU_DIV_X:
-		if (unlikely((u32)SRC == 0))
-			return 0;
 		tmp = (u32) DST;
 		do_div(tmp, (u32) SRC);
 		DST = (u32) tmp;
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -4839,15 +4839,37 @@ static int fixup_bpf_calls(struct bpf_ve
 	struct bpf_insn_aux_data *aux;
 
 	for (i = 0; i < insn_cnt; i++, insn++) {
-		if (insn->code == (BPF_ALU | BPF_MOD | BPF_X) ||
+		if (insn->code == (BPF_ALU64 | BPF_MOD | BPF_X) ||
+		    insn->code == (BPF_ALU64 | BPF_DIV | BPF_X) ||
+		    insn->code == (BPF_ALU | BPF_MOD | BPF_X) ||
 		    insn->code == (BPF_ALU | BPF_DIV | BPF_X)) {
-			/* due to JIT bugs clear upper 32-bits of src register
-			 * before div/mod operation
-			 */
-			insn_buf[0] = BPF_MOV32_REG(insn->src_reg, insn->src_reg);
-			insn_buf[1] = *insn;
-			cnt = 2;
-			new_prog = bpf_patch_insn_data(env, i + delta, insn_buf, cnt);
+			bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
+			struct bpf_insn mask_and_div[] = {
+				BPF_MOV32_REG(insn->src_reg, insn->src_reg),
+				/* Rx div 0 -> 0 */
+				BPF_JMP_IMM(BPF_JNE, insn->src_reg, 0, 2),
+				BPF_ALU32_REG(BPF_XOR, insn->dst_reg, insn->dst_reg),
+				BPF_JMP_IMM(BPF_JA, 0, 0, 1),
+				*insn,
+			};
+			struct bpf_insn mask_and_mod[] = {
+				BPF_MOV32_REG(insn->src_reg, insn->src_reg),
+				/* Rx mod 0 -> Rx */
+				BPF_JMP_IMM(BPF_JEQ, insn->src_reg, 0, 1),
+				*insn,
+			};
+			struct bpf_insn *patchlet;
+
+			if (insn->code == (BPF_ALU64 | BPF_DIV | BPF_X) ||
+			    insn->code == (BPF_ALU | BPF_DIV | BPF_X)) {
+				patchlet = mask_and_div + (is64 ? 1 : 0);
+				cnt = ARRAY_SIZE(mask_and_div) - (is64 ? 1 : 0);
+			} else {
+				patchlet = mask_and_mod + (is64 ? 1 : 0);
+				cnt = ARRAY_SIZE(mask_and_mod) - (is64 ? 1 : 0);
+			}
+
+			new_prog = bpf_patch_insn_data(env, i + delta, patchlet, cnt);
 			if (!new_prog)
 				return -ENOMEM;
 
--- a/net/core/filter.c
+++ b/net/core/filter.c
@@ -458,8 +458,15 @@ do_pass:
 				break;
 
 			if (fp->code == (BPF_ALU | BPF_DIV | BPF_X) ||
-			    fp->code == (BPF_ALU | BPF_MOD | BPF_X))
+			    fp->code == (BPF_ALU | BPF_MOD | BPF_X)) {
 				*insn++ = BPF_MOV32_REG(BPF_REG_X, BPF_REG_X);
+				/* Error with exception code on div/mod by 0.
+				 * For cBPF programs, this was always return 0.
+				 */
+				*insn++ = BPF_JMP_IMM(BPF_JNE, BPF_REG_X, 0, 2);
+				*insn++ = BPF_ALU32_REG(BPF_XOR, BPF_REG_A, BPF_REG_A);
+				*insn++ = BPF_EXIT_INSN();
+			}
 
 			*insn = BPF_RAW_INSN(fp->code, BPF_REG_A, BPF_REG_X, 0, fp->k);
 			break;



  parent reply	other threads:[~2023-03-10 13:46 UTC|newest]

Thread overview: 201+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-03-10 13:36 [PATCH 4.14 000/193] 4.14.308-rc1 review Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 001/193] ARM: dts: rockchip: add power-domains property to dp node on rk3288 Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 002/193] btrfs: send: limit number of clones and allocated memory size Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 003/193] IB/hfi1: Assign npages earlier Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 004/193] net: Remove WARN_ON_ONCE(sk->sk_forward_alloc) from sk_stream_kill_queues() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 005/193] bpf: Do not use ax register in interpreter on div/mod Greg Kroah-Hartman
2023-03-10 13:36 ` Greg Kroah-Hartman [this message]
2023-03-10 13:36 ` [PATCH 4.14 007/193] bpf: Fix 32 bit src register truncation " Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 008/193] bpf: Fix truncation handling for mod32 dst reg wrt zero Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 009/193] dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 010/193] USB: serial: option: add support for VW/Skoda "Carstick LTE" Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 011/193] USB: core: Dont hold device lock while reading the "descriptors" sysfs file Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 012/193] HID: asus: Remove check for same LED brightness on set Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 013/193] HID: asus: use spinlock to protect concurrent accesses Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 014/193] HID: asus: use spinlock to safely schedule workers Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 015/193] ARM: OMAP2+: Fix memory leak in realtime_counter_init() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 016/193] ARM: zynq: Fix refcount leak in zynq_early_slcr_init Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 017/193] arm64: dts: meson-gx: Fix Ethernet MAC address unit name Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 018/193] arm64: dts: meson-gx: Fix the SCPI DVFS node name and unit address Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 019/193] ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 020/193] ARM: dts: exynos: correct wr-active property in Exynos3250 Rinato Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 021/193] arm64: dts: amlogic: meson-gx: fix SCPI clock dvfs node name Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 022/193] arm64: dts: amlogic: meson-gx: add missing unit address to rng " Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 023/193] arm64: dts: amlogic: meson-gxl: add missing unit address to eth-phy-mux " Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 024/193] block: bio-integrity: Copy flags when bio_integrity_payload is cloned Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 025/193] wifi: libertas: fix memory leak in lbs_init_adapter() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 026/193] wifi: rtl8xxxu: dont call dev_kfree_skb() under spin_lock_irqsave() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 027/193] wifi: ipw2200: fix memory leak in ipw_wdev_init() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 028/193] wifi: brcmfmac: fix potential memory leak in brcmf_netdev_start_xmit() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 029/193] wifi: brcmfmac: unmap dma buffer in brcmf_msgbuf_alloc_pktid() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 030/193] wifi: libertas: main: dont call kfree_skb() under spin_lock_irqsave() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 031/193] wifi: libertas: cmdresp: " Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 032/193] wifi: wl3501_cs: " Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 033/193] genirq: Fix the return type of kstat_cpu_irqs_sum() Greg Kroah-Hartman
2023-03-10 13:36   ` Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 034/193] lib/mpi: Fix buffer overrun when SG is too long Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 035/193] ACPICA: nsrepair: handle cases without a return value correctly Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 036/193] wifi: orinoco: check return value of hermes_write_wordrec() Greg Kroah-Hartman
2023-03-10 13:36 ` [PATCH 4.14 037/193] wifi: ath9k: htc_hst: free skb in ath9k_htc_rx_msg() if there is no callback function Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 038/193] wifi: ath9k: Fix potential stack-out-of-bounds write in ath9k_wmi_rsp_callback() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 039/193] ACPI: battery: Fix missing NUL-termination with large strings Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 040/193] crypto: seqiv - Handle EBUSY correctly Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 041/193] s390/bpf: Add expoline to tail calls Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 042/193] net/mlx5: Enhance debug print in page allocation failure Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 043/193] irqchip/alpine-msi: Fix refcount leak in alpine_msix_init_domains Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 044/193] irqchip/irq-mvebu-gicp: Fix refcount leak in mvebu_gicp_probe Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 045/193] cpufreq: davinci: Fix clk use after free Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 046/193] Bluetooth: L2CAP: Fix potential user-after-free Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 047/193] crypto: rsa-pkcs1pad - Use akcipher_request_complete Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 048/193] m68k: /proc/hardware should depend on PROC_FS Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 049/193] wifi: mwifiex: fix loop iterator in mwifiex_update_ampdu_txwinsize() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 050/193] can: esd_usb: Move mislocated storage of SJA1000_ECC_SEG bits in case of a bus error Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 051/193] irqchip/irq-bcm7120-l2: Set IRQ_LEVEL for level triggered interrupts Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 052/193] drm: mxsfb: DRM_MXSFB should depend on ARCH_MXS || ARCH_MXC Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 053/193] drm/bridge: megachips: Fix error handling in i2c_register_driver() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 054/193] gpu: ipu-v3: common: Add of_node_put() for reference returned by of_graph_get_port_by_id() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 055/193] drm/msm/hdmi: Add missing check for alloc_ordered_workqueue Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 056/193] pinctrl: rockchip: Fix refcount leak in rockchip_pinctrl_parse_groups Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 057/193] ALSA: hda/ca0132: minor fix for allocation size Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 058/193] drm/mipi-dsi: Fix byte order of 16-bit DCS set/get brightness Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 059/193] drm/mediatek: Drop unbalanced obj unref Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 060/193] ASoC: soc-compress.c: fixup private_data on snd_soc_new_compress() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 061/193] gpio: vf610: connect GPIO label to dev name Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 062/193] hwmon: (ltc2945) Handle error case in ltc2945_value_store Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 063/193] scsi: aic94xx: Add missing check for dma_map_single() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 064/193] dm: remove flush_scheduled_work() during local_exit() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 065/193] mfd: pcf50633-adc: Fix potential memleak in pcf50633_adc_async_read() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 066/193] mtd: rawnand: sunxi: Fix the size of the last OOB region Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 067/193] Input: ads7846 - dont report pressure for ads7845 Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 068/193] Input: ads7846 - dont check penirq immediately for 7845 Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 069/193] powerpc/powernv/ioda: Skip unallocated resources when mapping to PE Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 070/193] powerpc/pseries/lparcfg: add missing RTAS retry status handling Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 071/193] MIPS: vpe-mt: drop physical_memsize Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 072/193] media: platform: ti: Add missing check for devm_regulator_get Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 073/193] media: rc: Fix use-after-free bugs caused by ene_tx_irqsim() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 074/193] media: usb: siano: Fix use after free bugs caused by do_submit_urb Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 075/193] rpmsg: glink: Avoid infinite loop on intent for missing channel Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 076/193] udf: Define EFSCORRUPTED error code Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 077/193] ARM: dts: exynos: Use Exynos5420 compatible for the MIPI video phy Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 078/193] wifi: brcmfmac: Fix potential stack-out-of-bounds in brcmf_c_preinit_dcmds() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 079/193] rcu: Suppress smp_processor_id() complaint in synchronize_rcu_expedited_wait() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 080/193] thermal: intel: Fix unsigned comparison with less than zero Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 081/193] timers: Prevent union confusion from unexpected restart_syscall() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 082/193] x86/bugs: Reset speculation control settings on init Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 083/193] inet: fix fast path in __inet_hash_connect() Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 084/193] ACPI: Dont build ACPICA with -Os Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 085/193] net: bcmgenet: Add a check for oversized packets Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 086/193] m68k: Check syscall_trace_enter() return code Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 087/193] ACPI: video: Fix Lenovo Ideapad Z570 DMI match Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 088/193] drm/radeon: free iio for atombios when driver shutdown Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 089/193] drm/msm/dsi: Add missing check for alloc_ordered_workqueue Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 090/193] docs/scripts/gdb: add necessary make scripts_gdb step Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 091/193] ASoC: kirkwood: Iterate over array indexes instead of using pointer math Greg Kroah-Hartman
2023-03-10 13:37   ` Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 092/193] regulator: max77802: Bounds check regulator id against opmode Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 093/193] regulator: s5m8767: Bounds check id indexing into arrays Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 094/193] pinctrl: at91: use devm_kasprintf() to avoid potential leaks Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 095/193] dm thin: add cond_resched() to various workqueue loops Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 096/193] dm cache: " Greg Kroah-Hartman
2023-03-10 13:37 ` [PATCH 4.14 097/193] spi: bcm63xx-hsspi: Fix multi-bit mode setting Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 098/193] wifi: rtl8xxxu: fixing transmisison failure for rtl8192eu Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 099/193] rtc: pm8xxx: fix set-alarm race Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 100/193] s390/kprobes: fix irq mask clobbering on kprobe reenter from post_handler Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 101/193] s390/kprobes: fix current_kprobe never cleared after kprobes reenter Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 102/193] hfs: fix missing hfs_bnode_get() in __hfs_bnode_create Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 103/193] fs: hfsplus: fix UAF issue in hfsplus_put_super Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 104/193] f2fs: fix information leak in f2fs_move_inline_dirents() Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 105/193] ocfs2: fix defrag path triggering jbd2 ASSERT Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 106/193] ocfs2: fix non-auto defrag path not working issue Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 107/193] udf: Truncate added extents on failed expansion Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 108/193] udf: Do not bother merging very long extents Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 109/193] udf: Do not update file length for failed writes to inline files Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 110/193] udf: Fix file corruption when appending just after end of preallocated extent Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 111/193] x86/virt: Force GIF=1 prior to disabling SVM (for reboot flows) Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 112/193] x86/crash: Disable virt in core NMI crash handler to avoid double shootdown Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 113/193] x86/reboot: Disable virtualization in an emergency if SVM is supported Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 114/193] x86/reboot: Disable SVM, not just VMX, when stopping CPUs Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 115/193] x86/kprobes: Fix __recover_optprobed_insn check optimizing logic Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 116/193] x86/kprobes: Fix arch_check_optimized_kprobe check within optimized_kprobe range Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 117/193] x86/microcode/amd: Remove load_microcode_amd()s bsp parameter Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 118/193] x86/microcode/AMD: Add a @cpu parameter to the reloading functions Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 119/193] x86/microcode/AMD: Fix mixed steppings support Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 120/193] x86/speculation: Allow enabling STIBP with legacy IBRS Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 121/193] Documentation/hw-vuln: Document the interaction between IBRS and STIBP Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 122/193] ima: Align ima_file_mmap() parameters with mmap_file LSM hook Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 123/193] irqdomain: Fix association race Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 124/193] irqdomain: Fix disassociation race Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 125/193] irqdomain: Drop bogus fwspec-mapping error handling Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 126/193] ALSA: ice1712: Do not left ice->gpio_mutex locked in aureon_add_controls() Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 127/193] ext4: optimize ea_inode block expansion Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 128/193] ext4: refuse to create ea block when umounted Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 129/193] wifi: rtl8xxxu: Use a longer retry limit of 48 Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 130/193] wifi: cfg80211: Fix use after free for wext Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 131/193] dm flakey: fix logic when corrupting a bio Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 132/193] dm flakey: dont corrupt the zero page Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 133/193] ARM: dts: exynos: correct TMU phandle in Exynos4 Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 134/193] ARM: dts: exynos: correct TMU phandle in Odroid XU Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 135/193] rbd: avoid use-after-free in do_rbd_add() when rbd_dev_create() fails Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 136/193] alpha: fix FEN fault handling Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 137/193] mips: fix syscall_get_nr Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 138/193] ktest.pl: Fix missing "end_monitor" when machine check fails Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 139/193] scsi: qla2xxx: Fix link failure in NPIV environment Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 140/193] scsi: qla2xxx: Fix erroneous link down Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 141/193] scsi: ses: Dont attach if enclosure has no components Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 142/193] scsi: ses: Fix slab-out-of-bounds in ses_enclosure_data_process() Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 143/193] scsi: ses: Fix possible addl_desc_ptr out-of-bounds accesses Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 144/193] scsi: ses: Fix possible desc_ptr " Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 145/193] scsi: ses: Fix slab-out-of-bounds in ses_intf_remove() Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 146/193] PCI: Avoid FLR for AMD FCH AHCI adapters Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 147/193] drm/radeon: Fix eDP for single-display iMac11,2 Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 148/193] kbuild: Port silent mode detection to future gnu make Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 149/193] net/sched: Retire tcindex classifier Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 150/193] fs/jfs: fix shift exponent db_agl2size negative Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 151/193] pwm: stm32-lp: fix the check on arr and cmp registers update Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 152/193] ubi: ensure that VID header offset + VID header size <= alloc, size Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 153/193] ubifs: Rectify space budget for ubifs_xrename() Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 154/193] ubifs: Fix wrong dirty space budget for dirty inode Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 155/193] ubifs: Reserve one leb for each journal head while doing budget Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 156/193] ubi: Fix use-after-free when volume resizing failed Greg Kroah-Hartman
2023-03-10 13:38 ` [PATCH 4.14 157/193] ubi: Fix unreferenced object reported by kmemleak in ubi_resize_volume() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 158/193] ubi: Fix possible null-ptr-deref in ubi_free_volume() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 159/193] ubifs: Re-statistic cleaned znode count if commit failed Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 160/193] ubifs: dirty_cow_znode: Fix memleak in error handling path Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 161/193] ubifs: ubifs_writepage: Mark page dirty after writing inode failed Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 162/193] ubi: Fix UAF wear-leveling entry in eraseblk_count_seq_show() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 163/193] ubi: ubi_wl_put_peb: Fix infinite loop when wear-leveling work failed Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 164/193] x86: um: vdso: Add %rcx and %r11 to the syscall clobber list Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 165/193] watchdog: at91sam9_wdt: use devm_request_irq to avoid missing free_irq() in error path Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 166/193] watchdog: Fix kmemleak in watchdog_cdev_register Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 167/193] watchdog: pcwd_usb: Fix attempting to access uninitialized memory Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 168/193] netfilter: ctnetlink: fix possible refcount leak in ctnetlink_create_conntrack() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 169/193] net: fix __dev_kfree_skb_any() vs drop monitor Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 170/193] 9p/xen: fix version parsing Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 171/193] 9p/xen: fix connection sequence Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 172/193] nfc: fix memory leak of se_io context in nfc_genl_se_io Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 173/193] ARM: dts: spear320-hmi: correct STMPE GPIO compatible Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 174/193] tcp: tcp_check_req() can be called from process context Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 175/193] scsi: ipr: Work around fortify-string warning Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 176/193] thermal: intel: quark_dts: fix error pointer dereference Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 177/193] tracing: Add NULL checks for buffer in ring_buffer_free_read_page() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 178/193] firmware/efi sysfb_efi: Add quirk for Lenovo IdeaPad Duet 3 Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 179/193] media: uvcvideo: Handle cameras with invalid descriptors Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 180/193] tty: fix out-of-bounds access in tty_driver_lookup_tty() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 181/193] tty: serial: fsl_lpuart: disable the CTS when send break signal Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 182/193] tools/iio/iio_utils:fix memory leak Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 183/193] iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_status_word() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 184/193] iio: accel: mma9551_core: Prevent uninitialized variable in mma9551_read_config_word() Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 185/193] usb: host: xhci: mvebu: Iterate over array indexes instead of using pointer math Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 186/193] USB: ene_usb6250: Allocate enough memory for full object Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 187/193] usb: uvc: Enumerate valid values for color matching Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 188/193] phy: rockchip-typec: Fix unsigned comparison with less than zero Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 189/193] Bluetooth: hci_sock: purge socket queues in the destruct() callback Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 190/193] s390/maccess: add no DAT mode to kernel_write Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 191/193] s390/setup: init jump labels before command line parsing Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 192/193] tcp: Fix listen() regression in 4.14.303 Greg Kroah-Hartman
2023-03-10 13:39 ` [PATCH 4.14 193/193] thermal: intel: powerclamp: Fix cur_state for multi package system Greg Kroah-Hartman
2023-03-10 18:57 ` [PATCH 4.14 000/193] 4.14.308-rc1 review Jon Hunter
2023-03-10 21:03 ` Guenter Roeck
2023-03-11  9:20   ` Greg Kroah-Hartman
2023-03-11  3:26 ` Guenter Roeck
2023-03-11  7:25 ` Naresh Kamboju

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=20230310133711.131202272@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ast@kernel.org \
    --cc=cascardo@canonical.com \
    --cc=daniel@iogearbox.net \
    --cc=edliaw@google.com \
    --cc=patches@lists.linux.dev \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.