Linux kernel -stable discussions
 help / color / mirror / Atom feed
From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Yonghong Song <yonghong.song@linux.dev>,
	Zac Ecob <zacecob@protonmail.com>,
	Andrii Nakryiko <andrii@kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Sasha Levin <sashal@kernel.org>,
	daniel@iogearbox.net, bpf@vger.kernel.org
Subject: [PATCH AUTOSEL 6.10 197/197] bpf: Fix a sdiv overflow issue
Date: Wed, 25 Sep 2024 07:53:36 -0400	[thread overview]
Message-ID: <20240925115823.1303019-197-sashal@kernel.org> (raw)
In-Reply-To: <20240925115823.1303019-1-sashal@kernel.org>

From: Yonghong Song <yonghong.song@linux.dev>

[ Upstream commit 7dd34d7b7dcf9309fc6224caf4dd5b35bedddcb7 ]

Zac Ecob reported a problem where a bpf program may cause kernel crash due
to the following error:
  Oops: divide error: 0000 [#1] PREEMPT SMP KASAN PTI

The failure is due to the below signed divide:
  LLONG_MIN/-1 where LLONG_MIN equals to -9,223,372,036,854,775,808.
LLONG_MIN/-1 is supposed to give a positive number 9,223,372,036,854,775,808,
but it is impossible since for 64-bit system, the maximum positive
number is 9,223,372,036,854,775,807. On x86_64, LLONG_MIN/-1 will
cause a kernel exception. On arm64, the result for LLONG_MIN/-1 is
LLONG_MIN.

Further investigation found all the following sdiv/smod cases may trigger
an exception when bpf program is running on x86_64 platform:
  - LLONG_MIN/-1 for 64bit operation
  - INT_MIN/-1 for 32bit operation
  - LLONG_MIN%-1 for 64bit operation
  - INT_MIN%-1 for 32bit operation
where -1 can be an immediate or in a register.

On arm64, there are no exceptions:
  - LLONG_MIN/-1 = LLONG_MIN
  - INT_MIN/-1 = INT_MIN
  - LLONG_MIN%-1 = 0
  - INT_MIN%-1 = 0
where -1 can be an immediate or in a register.

Insn patching is needed to handle the above cases and the patched codes
produced results aligned with above arm64 result. The below are pseudo
codes to handle sdiv/smod exceptions including both divisor -1 and divisor 0
and the divisor is stored in a register.

sdiv:
      tmp = rX
      tmp += 1 /* [-1, 0] -> [0, 1]
      if tmp >(unsigned) 1 goto L2
      if tmp == 0 goto L1
      rY = 0
  L1:
      rY = -rY;
      goto L3
  L2:
      rY /= rX
  L3:

smod:
      tmp = rX
      tmp += 1 /* [-1, 0] -> [0, 1]
      if tmp >(unsigned) 1 goto L1
      if tmp == 1 (is64 ? goto L2 : goto L3)
      rY = 0;
      goto L2
  L1:
      rY %= rX
  L2:
      goto L4  // only when !is64
  L3:
      wY = wY  // only when !is64
  L4:

  [1] https://lore.kernel.org/bpf/tPJLTEh7S_DxFEqAI2Ji5MBSoZVg7_G-Py2iaZpAaWtM961fFTWtsnlzwvTbzBzaUzwQAoNATXKUlt0LZOFgnDcIyKCswAnAGdUF3LBrhGQ=@protonmail.com/

Reported-by: Zac Ecob <zacecob@protonmail.com>
Signed-off-by: Yonghong Song <yonghong.song@linux.dev>
Acked-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20240913150326.1187788-1-yonghong.song@linux.dev
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 kernel/bpf/verifier.c | 93 +++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 89 insertions(+), 4 deletions(-)

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 2eff14da6bf16..c713ca32ab046 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -19927,13 +19927,46 @@ static int do_misc_fixups(struct bpf_verifier_env *env)
 			/* Convert BPF_CLASS(insn->code) == BPF_ALU64 to 32-bit ALU */
 			insn->code = BPF_ALU | BPF_OP(insn->code) | BPF_SRC(insn->code);
 
-		/* Make divide-by-zero exceptions impossible. */
+		/* Make sdiv/smod divide-by-minus-one exceptions impossible. */
+		if ((insn->code == (BPF_ALU64 | BPF_MOD | BPF_K) ||
+		     insn->code == (BPF_ALU64 | BPF_DIV | BPF_K) ||
+		     insn->code == (BPF_ALU | BPF_MOD | BPF_K) ||
+		     insn->code == (BPF_ALU | BPF_DIV | BPF_K)) &&
+		    insn->off == 1 && insn->imm == -1) {
+			bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
+			bool isdiv = BPF_OP(insn->code) == BPF_DIV;
+			struct bpf_insn *patchlet;
+			struct bpf_insn chk_and_sdiv[] = {
+				BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
+					     BPF_NEG | BPF_K, insn->dst_reg,
+					     0, 0, 0),
+			};
+			struct bpf_insn chk_and_smod[] = {
+				BPF_MOV32_IMM(insn->dst_reg, 0),
+			};
+
+			patchlet = isdiv ? chk_and_sdiv : chk_and_smod;
+			cnt = isdiv ? ARRAY_SIZE(chk_and_sdiv) : ARRAY_SIZE(chk_and_smod);
+
+			new_prog = bpf_patch_insn_data(env, i + delta, patchlet, cnt);
+			if (!new_prog)
+				return -ENOMEM;
+
+			delta    += cnt - 1;
+			env->prog = prog = new_prog;
+			insn      = new_prog->insnsi + i + delta;
+			goto next_insn;
+		}
+
+		/* Make divide-by-zero and divide-by-minus-one exceptions impossible. */
 		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)) {
 			bool is64 = BPF_CLASS(insn->code) == BPF_ALU64;
 			bool isdiv = BPF_OP(insn->code) == BPF_DIV;
+			bool is_sdiv = isdiv && insn->off == 1;
+			bool is_smod = !isdiv && insn->off == 1;
 			struct bpf_insn *patchlet;
 			struct bpf_insn chk_and_div[] = {
 				/* [R,W]x div 0 -> 0 */
@@ -19953,10 +19986,62 @@ static int do_misc_fixups(struct bpf_verifier_env *env)
 				BPF_JMP_IMM(BPF_JA, 0, 0, 1),
 				BPF_MOV32_REG(insn->dst_reg, insn->dst_reg),
 			};
+			struct bpf_insn chk_and_sdiv[] = {
+				/* [R,W]x sdiv 0 -> 0
+				 * LLONG_MIN sdiv -1 -> LLONG_MIN
+				 * INT_MIN sdiv -1 -> INT_MIN
+				 */
+				BPF_MOV64_REG(BPF_REG_AX, insn->src_reg),
+				BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
+					     BPF_ADD | BPF_K, BPF_REG_AX,
+					     0, 0, 1),
+				BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
+					     BPF_JGT | BPF_K, BPF_REG_AX,
+					     0, 4, 1),
+				BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
+					     BPF_JEQ | BPF_K, BPF_REG_AX,
+					     0, 1, 0),
+				BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
+					     BPF_MOV | BPF_K, insn->dst_reg,
+					     0, 0, 0),
+				/* BPF_NEG(LLONG_MIN) == -LLONG_MIN == LLONG_MIN */
+				BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
+					     BPF_NEG | BPF_K, insn->dst_reg,
+					     0, 0, 0),
+				BPF_JMP_IMM(BPF_JA, 0, 0, 1),
+				*insn,
+			};
+			struct bpf_insn chk_and_smod[] = {
+				/* [R,W]x mod 0 -> [R,W]x */
+				/* [R,W]x mod -1 -> 0 */
+				BPF_MOV64_REG(BPF_REG_AX, insn->src_reg),
+				BPF_RAW_INSN((is64 ? BPF_ALU64 : BPF_ALU) |
+					     BPF_ADD | BPF_K, BPF_REG_AX,
+					     0, 0, 1),
+				BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
+					     BPF_JGT | BPF_K, BPF_REG_AX,
+					     0, 3, 1),
+				BPF_RAW_INSN((is64 ? BPF_JMP : BPF_JMP32) |
+					     BPF_JEQ | BPF_K, BPF_REG_AX,
+					     0, 3 + (is64 ? 0 : 1), 1),
+				BPF_MOV32_IMM(insn->dst_reg, 0),
+				BPF_JMP_IMM(BPF_JA, 0, 0, 1),
+				*insn,
+				BPF_JMP_IMM(BPF_JA, 0, 0, 1),
+				BPF_MOV32_REG(insn->dst_reg, insn->dst_reg),
+			};
 
-			patchlet = isdiv ? chk_and_div : chk_and_mod;
-			cnt = isdiv ? ARRAY_SIZE(chk_and_div) :
-				      ARRAY_SIZE(chk_and_mod) - (is64 ? 2 : 0);
+			if (is_sdiv) {
+				patchlet = chk_and_sdiv;
+				cnt = ARRAY_SIZE(chk_and_sdiv);
+			} else if (is_smod) {
+				patchlet = chk_and_smod;
+				cnt = ARRAY_SIZE(chk_and_smod) - (is64 ? 2 : 0);
+			} else {
+				patchlet = isdiv ? chk_and_div : chk_and_mod;
+				cnt = isdiv ? ARRAY_SIZE(chk_and_div) :
+					      ARRAY_SIZE(chk_and_mod) - (is64 ? 2 : 0);
+			}
 
 			new_prog = bpf_patch_insn_data(env, i + delta, patchlet, cnt);
 			if (!new_prog)
-- 
2.43.0


      parent reply	other threads:[~2024-09-25 12:09 UTC|newest]

Thread overview: 199+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-09-25 11:50 [PATCH AUTOSEL 6.10 001/197] wifi: ath9k: fix possible integer overflow in ath9k_get_et_stats() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 002/197] wifi: rtw89: avoid to add interface to list twice when SER Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 003/197] wifi: ath9k_htc: Use __skb_set_length() for resetting urb before resubmit Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 004/197] crypto: x86/sha256 - Add parentheses around macros' single arguments Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 005/197] crypto: octeontx - Fix authenc setkey Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 006/197] crypto: octeontx2 " Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 007/197] ice: Adjust over allocation of memory in ice_sched_add_root_node() and ice_sched_add_node() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 008/197] wifi: iwlwifi: mvm: Fix a race in scan abort flow Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 009/197] wifi: iwlwifi: mvm: drop wrong STA selection in TX Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 010/197] wifi: cfg80211: Set correct chandef when starting CAC Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 011/197] net/xen-netback: prevent UAF in xenvif_flush_hash() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 012/197] net: hisilicon: hip04: fix OF node leak in probe() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 013/197] net: hisilicon: hns_dsaf_mac: fix OF node leak in hns_mac_get_info() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 014/197] net: hisilicon: hns_mdio: fix OF node leak in probe() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 015/197] ACPI: PAD: fix crash in exit_round_robin() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 016/197] ACPICA: Fix memory leak if acpi_ps_get_next_namepath() fails Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 017/197] ACPICA: Fix memory leak if acpi_ps_get_next_field() fails Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 018/197] fs/inode: Prevent dump_mapping() accessing invalid dentry.d_name.name Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 019/197] e1000e: avoid failing the system during pm_suspend Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 020/197] ACPI: resource: Skip IRQ override on Asus Vivobook Go E1404GAB Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 021/197] wifi: mt76: mt7915: disable tx worker during tx BA session enable/disable Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 022/197] net: sched: consistently use rcu_replace_pointer() in taprio_change() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 023/197] Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0489:0xe122 Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 024/197] Bluetooth: btrtl: Set msft ext address filter quirk for RTL8852B Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 025/197] ACPI: video: Add force_vendor quirk for Panasonic Toughbook CF-18 Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 026/197] ACPI: CPPC: Add support for setting EPP register in FFH Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 027/197] blk_iocost: fix more out of bound shifts Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 028/197] nvme-pci: qdepth 1 quirk Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 029/197] wifi: ath12k: fix array out-of-bound access in SoC stats Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 030/197] wifi: ath11k: " Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 031/197] wifi: rtw88: select WANT_DEV_COREDUMP Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 032/197] l2tp: don't use tunnel socket sk_user_data in ppp procfs output Sasha Levin
2024-09-25 14:12   ` James Chapman
2024-10-06  0:30     ` Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 033/197] ACPI: EC: Do not release locks during operation region accesses Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 034/197] ACPICA: check null return of ACPI_ALLOCATE_ZEROED() in acpi_db_convert_to_package() Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 035/197] tipc: guard against string buffer overrun Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 036/197] net: mvpp2: Increase size of queue_name buffer Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 037/197] bnxt_en: Extend maximum length of version string by 1 byte Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 038/197] ipv4: Check !in_dev earlier for ioctl(SIOCSIFADDR) Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 039/197] wifi: rtw89: correct base HT rate mask for firmware Sasha Levin
2024-09-25 11:50 ` [PATCH AUTOSEL 6.10 040/197] netfilter: nf_tables: don't initialize registers in nft_do_chain() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 041/197] ipv4: Mask upper DSCP bits and ECN bits in NETLINK_FIB_LOOKUP family Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 042/197] nvme-keyring: restrict match length for version '1' identifiers Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 043/197] nvme-tcp: sanitize TLS key handling Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 044/197] nvme-tcp: check for invalidated or revoked key Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 045/197] net: atlantic: Avoid warning about potential string truncation Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 046/197] crypto: simd - Do not call crypto_alloc_tfm during registration Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 047/197] netpoll: Ensure clean state on setup failures Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 048/197] tcp: avoid reusing FIN_WAIT2 when trying to find port in connect() process Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 049/197] wifi: iwlwifi: mvm: use correct key iteration Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 050/197] wifi: iwlwifi: allow only CN mcc from WRDD Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 051/197] wifi: iwlwifi: mvm: avoid NULL pointer dereference Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 052/197] wifi: mac80211: fix RCU list iterations Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 053/197] ACPICA: iasl: handle empty connection_node Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 054/197] proc: add config & param to block forcing mem writes Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 055/197] drivers/perf: arm_spe: Use perf_allow_kernel() for permissions Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 056/197] can: netlink: avoid call to do_set_data_bittiming callback with stale can_priv::ctrlmode Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 057/197] netdev-genl: Set extack and fix error on napi-get Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 058/197] block: fix integer overflow in BLKSECDISCARD Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 059/197] arm64: trans_pgd: mark PTEs entries as valid to avoid dead kexec() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 060/197] net: phy: Check for read errors in SIOCGMIIREG Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 061/197] wifi: rtw89: avoid reading out of bounds when loading TX power FW elements Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 062/197] x86/bugs: Add missing NO_SSB flag Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 063/197] x86/bugs: Fix handling when SRSO mitigation is disabled Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 064/197] net: napi: Prevent overflow of napi_defer_hard_irqs Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 065/197] crypto: hisilicon - fix missed error branch Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 066/197] crypto: hisilicon/qm - reset device before enabling it Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 067/197] wifi: mt76: mt7915: add dummy HW offload of IEEE 802.11 fragmentation Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 068/197] wifi: mt76: mt7915: hold dev->mt76.mutex while disabling tx worker Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 069/197] net: tls: wait for async completion on last message Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 070/197] wifi: mwifiex: Fix memcpy() field-spanning write warning in mwifiex_cmd_802_11_scan_ext() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 071/197] netfs: Cancel dirty folios that have no storage destination Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 072/197] nfp: Use IRQF_NO_AUTOEN flag in request_irq() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 073/197] ALSA: usb-audio: Add input value sanity checks for standard types Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 074/197] x86/ioapic: Handle allocation failures gracefully Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 075/197] x86/apic: Remove logical destination mode for 64-bit Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 076/197] ALSA: usb-audio: Support multiple control interfaces Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 077/197] ALSA: usb-audio: Define macros for quirk table entries Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 078/197] ALSA: usb-audio: Replace complex quirk lines with macros Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 079/197] ALSA: usb-audio: Add quirk for RME Digiface USB Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 080/197] ALSA: usb-audio: Add mixer " Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 081/197] ALSA: usb-audio: Add logitech Audio profile quirk Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 082/197] ASoC: codecs: wsa883x: Handle reading version failure Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 083/197] ALSA: control: Take power_ref lock primarily Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 084/197] tools/x86/kcpuid: Protect against faulty "max subleaf" values Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 085/197] x86/pkeys: Add PKRU as a parameter in signal handling functions Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 086/197] x86/pkeys: Restore altstack access in sigreturn() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 087/197] x86/kexec: Add EFI config table identity mapping for kexec kernel Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 088/197] x86/mm/ident_map: Use gbpages only where full GB page should be mapped Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 089/197] ALSA: asihpi: Fix potential OOB array access Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 090/197] ALSA: hdsp: Break infinite MIDI input flush loop Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 091/197] tools/nolibc: powerpc: limit stack-protector workaround to GCC Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 092/197] selftests/nolibc: avoid passing NULL to printf("%s") Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 093/197] ASoC: soc-pcm: Indicate warning if dpcm_playback/capture were used for availability limition Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 094/197] x86/syscall: Avoid memcpy() for ia32 syscall_get_arguments() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 095/197] ASoC: Intel: boards: always check the result of acpi_dev_get_first_match_dev() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 096/197] rcu-tasks: Fix access non-existent percpu rtpcp variable in rcu_tasks_need_gpcb() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 097/197] hwmon: (nct6775) add G15CF to ASUS WMI monitoring list Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 098/197] fbdev: efifb: Register sysfs groups through driver core Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 099/197] fbdev: pxafb: Fix possible use after free in pxafb_task() Sasha Levin
2024-09-25 11:51 ` [PATCH AUTOSEL 6.10 100/197] pmdomain: core: Don't hold the genpd-lock when calling dev_pm_domain_set() Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 101/197] coredump: Standartize and fix logging Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 102/197] rcuscale: Provide clear error when async specified without primitives Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 103/197] iommu/arm-smmu-qcom: hide last LPASS SMMU context bank from linux Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 104/197] iommu/arm-smmu-qcom: Work around SDM845 Adreno SMMU w/ 16K pages Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 105/197] power: reset: brcmstb: Do not go into infinite loop if reset fails Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 106/197] iommu/arm-smmu-v3: Match Stall behaviour for S2 Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 107/197] iommu/vt-d: Always reserve a domain ID for identity setup Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 108/197] iommu/vt-d: Fix potential lockup if qi_submit_sync called with 0 count Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 109/197] iommu/vt-d: Unconditionally flush device TLB for pasid table updates Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 110/197] iommu/arm-smmu-v3: Do not use devm for the cd table allocations Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 111/197] cgroup: Disallow mounting v1 hierarchies without controller implementation Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 112/197] drm/stm: Avoid use-after-free issues with crtc and plane Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 113/197] drm/amd/display: Pass non-null to dcn20_validate_apply_pipe_split_flags Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 114/197] drm/amd/display: Check null pointers before using them Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 115/197] drm/amdgpu: disallow multiple BO_HANDLES chunks in one submit Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 116/197] drm/amdkfd: amdkfd_free_gtt_mem clear the correct pointer Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 117/197] drm/amd/display: Add null check for head_pipe in dcn201_acquire_free_pipe_for_layer Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 118/197] drm/amd/display: Add null check for head_pipe in dcn32_acquire_idle_pipe_for_head_pipe_in_layer Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 119/197] drm/amd/display: Add NULL check for clk_mgr and clk_mgr->funcs in dcn30_init_hw Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 120/197] drm/amd/display: Add NULL check for clk_mgr in dcn32_init_hw Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 121/197] drm/xe/hdcp: Check GSC structure validity Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 122/197] drm/amd/display: Add null check for top_pipe_to_program in commit_planes_for_stream Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 123/197] drm/amd/display: Use gpuvm_min_page_size_kbytes for DML2 surfaces Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 124/197] ata: pata_serverworks: Do not use the term blacklist Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 125/197] ata: sata_sil: Rename sil_blacklist to sil_quirks Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 126/197] scsi: smartpqi: Add new controller PCI IDs Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 127/197] HID: Ignore battery for all ELAN I2C-HID devices Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 128/197] drm/amd/display: Handle null 'stream_status' in 'planes_changed_for_existing_stream' Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 129/197] drm/amd/display: Add NULL check for function pointer in dcn20_set_output_transfer_func Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 130/197] drm/amd/display: Add NULL check for function pointer in dcn32_set_output_transfer_func Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 131/197] drm/amd/display: Check null pointers before using dc->clk_mgr Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 132/197] drm/amd/display: Add null check for 'afb' in amdgpu_dm_plane_handle_cursor_update (v2) Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 133/197] drm/amd/display: fix double free issue during amdgpu module unload Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 134/197] drm/amdgpu: add list empty check to avoid null pointer issue Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 135/197] jfs: UBSAN: shift-out-of-bounds in dbFindBits Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 136/197] jfs: Fix uaf in dbFreeBits Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 137/197] jfs: check if leafidx greater than num leaves per dmap tree Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 138/197] scsi: smartpqi: correct stream detection Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 139/197] scsi: smartpqi: add new controller PCI IDs Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 140/197] drm/msm/adreno: Assign msm_gpu->pdev earlier to avoid nullptrs Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 141/197] jfs: Fix uninit-value access of new_ea in ea_buffer Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 142/197] drm/amdgpu: add raven1 gfxoff quirk Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 143/197] drm/amdgpu: enable gfxoff quirk on HP 705G4 Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 144/197] drm/amdkfd: Fix resource leak in criu restore queue Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 145/197] HID: multitouch: Add support for Thinkpad X12 Gen 2 Kbd Portfolio Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 146/197] platform/x86: touchscreen_dmi: add nanote-next quirk Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 147/197] platform/x86/amd: pmf: Add quirk for TUF Gaming A14 Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 148/197] drm/stm: ltdc: reset plane transparency after plane disable Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 149/197] drm/amd/display: Check null-initialized variables Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 150/197] drm/amd/display: Check phantom_stream before it is used Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 151/197] drm/amd/display: Check stream before comparing them Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 152/197] drm/amd/display: Check link_res->hpo_dp_link_enc before using it Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 153/197] drm/amd/display: Fix index out of bounds in DCN30 degamma hardware format translation Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 154/197] drm/amd/display: Fix index out of bounds in " Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 155/197] drm/amd/display: Fix index out of bounds in DCN30 color transformation Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 156/197] drm/amdgpu/gfx9: properly handle error ints on all pipes Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 157/197] drm/amd/display: Avoid overflow assignment in link_dp_cts Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 158/197] drm/amd/display: Initialize get_bytes_per_element's default to 1 Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 159/197] drm/printer: Allow NULL data in devcoredump printer Sasha Levin
2024-09-25 11:52 ` [PATCH AUTOSEL 6.10 160/197] perf,x86: avoid missing caller address in stack traces captured in uprobe Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 161/197] scsi: aacraid: Rearrange order of struct aac_srb_unit Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 162/197] scsi: lpfc: Validate hdwq pointers before dereferencing in reset/errata paths Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 163/197] scsi: lpfc: Fix unsolicited FLOGI kref imbalance when in direct attached topology Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 164/197] scsi: lpfc: Update PRLO handling " Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 165/197] drm/amdgpu: fix unchecked return value warning for amdgpu_gfx Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 166/197] drm/amdgpu: fix unchecked return value warning for amdgpu_atombios Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 167/197] perf: Fix event_function_call() locking Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 168/197] scsi: NCR5380: Initialize buffer for MSG IN and STATUS transfers Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 169/197] drm/radeon/r100: Handle unknown family in r100_cp_init_microcode() Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 170/197] drm/amdgpu: Block MMR_READ IOCTL in reset Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 171/197] drm/amdgpu/gfx9: use rlc safe mode for soft recovery Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 172/197] drm/amdgpu/gfx11: enter safe mode before touching CP_INT_CNTL Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 173/197] drm/xe: Use topology to determine page fault queue size Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 174/197] drm/amd/pm: ensure the fw_info is not null before using it Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 175/197] drm/amdkfd: Check int source id for utcl2 poison event Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 176/197] drm/xe: Drop warn on xe_guc_pc_gucrc_disable in guc pc fini Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 177/197] of/irq: Refer to actual buffer size in of_irq_parse_one() Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 178/197] powerpc/pseries: Use correct data types from pseries_hp_errorlog struct Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 179/197] ovl: fsync after metadata copy-up Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 180/197] drm/amdgpu/gfx11: use rlc safe mode for soft recovery Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 181/197] drm/amdgpu/gfx10: " Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 182/197] platform/x86: lenovo-ymc: Ignore the 0x0 state Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 183/197] tools/hv: Add memory allocation check in hv_fcopy_start Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 184/197] HID: i2c-hid: ensure various commands do not interfere with each other Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 185/197] ksmbd: add refcnt to ksmbd_conn struct Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 186/197] platform/mellanox: mlxbf-pmc: fix lockdep warning Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 187/197] platform/x86: x86-android-tablets: Adjust Xiaomi Pad 2 bottom bezel touch buttons LED Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 188/197] ext4: don't set SB_RDONLY after filesystem errors Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 189/197] bpf: Make the pointer returned by iter next method valid Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 190/197] iomap: fix iomap_dio_zero() for fs bs > system page size Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 191/197] ext4: ext4_search_dir should return a proper error Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 192/197] ext4: avoid use-after-free in ext4_ext_show_leaf() Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 193/197] ext4: fix i_data_sem unlock order in ext4_ind_migrate() Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 194/197] bpftool: Fix undefined behavior caused by shifting into the sign bit Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 195/197] iomap: handle a post-direct I/O invalidate race in iomap_write_delalloc_release Sasha Levin
2024-09-25 11:53 ` [PATCH AUTOSEL 6.10 196/197] bpftool: Fix undefined behavior in qsort(NULL, 0, ...) Sasha Levin
2024-09-25 11:53 ` Sasha Levin [this message]

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=20240925115823.1303019-197-sashal@kernel.org \
    --to=sashal@kernel.org \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=yonghong.song@linux.dev \
    --cc=zacecob@protonmail.com \
    /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