All of lore.kernel.org
 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, Adam Morrison <mad@cs.tau.ac.il>,
	Ofek Kirzner <ofekkir@gmail.com>,
	Benedict Schlueter <benedict.schlueter@rub.de>,
	Piotr Krysiuk <piotras@gmail.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	John Fastabend <john.fastabend@gmail.com>,
	Alexei Starovoitov <ast@kernel.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.10 054/146] bpf: Fix leakage under speculation on mispredicted branches
Date: Mon, 21 Jun 2021 18:14:44 +0200	[thread overview]
Message-ID: <20210621154913.906586441@linuxfoundation.org> (raw)
In-Reply-To: <20210621154911.244649123@linuxfoundation.org>

From: Daniel Borkmann <daniel@iogearbox.net>

[ Upstream commit 9183671af6dbf60a1219371d4ed73e23f43b49db ]

The verifier only enumerates valid control-flow paths and skips paths that
are unreachable in the non-speculative domain. And so it can miss issues
under speculative execution on mispredicted branches.

For example, a type confusion has been demonstrated with the following
crafted program:

  // r0 = pointer to a map array entry
  // r6 = pointer to readable stack slot
  // r9 = scalar controlled by attacker
  1: r0 = *(u64 *)(r0) // cache miss
  2: if r0 != 0x0 goto line 4
  3: r6 = r9
  4: if r0 != 0x1 goto line 6
  5: r9 = *(u8 *)(r6)
  6: // leak r9

Since line 3 runs iff r0 == 0 and line 5 runs iff r0 == 1, the verifier
concludes that the pointer dereference on line 5 is safe. But: if the
attacker trains both the branches to fall-through, such that the following
is speculatively executed ...

  r6 = r9
  r9 = *(u8 *)(r6)
  // leak r9

... then the program will dereference an attacker-controlled value and could
leak its content under speculative execution via side-channel. This requires
to mistrain the branch predictor, which can be rather tricky, because the
branches are mutually exclusive. However such training can be done at
congruent addresses in user space using different branches that are not
mutually exclusive. That is, by training branches in user space ...

  A:  if r0 != 0x0 goto line C
  B:  ...
  C:  if r0 != 0x0 goto line D
  D:  ...

... such that addresses A and C collide to the same CPU branch prediction
entries in the PHT (pattern history table) as those of the BPF program's
lines 2 and 4, respectively. A non-privileged attacker could simply brute
force such collisions in the PHT until observing the attack succeeding.

Alternative methods to mistrain the branch predictor are also possible that
avoid brute forcing the collisions in the PHT. A reliable attack has been
demonstrated, for example, using the following crafted program:

  // r0 = pointer to a [control] map array entry
  // r7 = *(u64 *)(r0 + 0), training/attack phase
  // r8 = *(u64 *)(r0 + 8), oob address
  // [...]
  // r0 = pointer to a [data] map array entry
  1: if r7 == 0x3 goto line 3
  2: r8 = r0
  // crafted sequence of conditional jumps to separate the conditional
  // branch in line 193 from the current execution flow
  3: if r0 != 0x0 goto line 5
  4: if r0 == 0x0 goto exit
  5: if r0 != 0x0 goto line 7
  6: if r0 == 0x0 goto exit
  [...]
  187: if r0 != 0x0 goto line 189
  188: if r0 == 0x0 goto exit
  // load any slowly-loaded value (due to cache miss in phase 3) ...
  189: r3 = *(u64 *)(r0 + 0x1200)
  // ... and turn it into known zero for verifier, while preserving slowly-
  // loaded dependency when executing:
  190: r3 &= 1
  191: r3 &= 2
  // speculatively bypassed phase dependency
  192: r7 += r3
  193: if r7 == 0x3 goto exit
  194: r4 = *(u8 *)(r8 + 0)
  // leak r4

As can be seen, in training phase (phase != 0x3), the condition in line 1
turns into false and therefore r8 with the oob address is overridden with
the valid map value address, which in line 194 we can read out without
issues. However, in attack phase, line 2 is skipped, and due to the cache
miss in line 189 where the map value is (zeroed and later) added to the
phase register, the condition in line 193 takes the fall-through path due
to prior branch predictor training, where under speculation, it'll load the
byte at oob address r8 (unknown scalar type at that point) which could then
be leaked via side-channel.

One way to mitigate these is to 'branch off' an unreachable path, meaning,
the current verification path keeps following the is_branch_taken() path
and we push the other branch to the verification stack. Given this is
unreachable from the non-speculative domain, this branch's vstate is
explicitly marked as speculative. This is needed for two reasons: i) if
this path is solely seen from speculative execution, then we later on still
want the dead code elimination to kick in in order to sanitize these
instructions with jmp-1s, and ii) to ensure that paths walked in the
non-speculative domain are not pruned from earlier walks of paths walked in
the speculative domain. Additionally, for robustness, we mark the registers
which have been part of the conditional as unknown in the speculative path
given there should be no assumptions made on their content.

The fix in here mitigates type confusion attacks described earlier due to
i) all code paths in the BPF program being explored and ii) existing
verifier logic already ensuring that given memory access instruction
references one specific data structure.

An alternative to this fix that has also been looked at in this scope was to
mark aux->alu_state at the jump instruction with a BPF_JMP_TAKEN state as
well as direction encoding (always-goto, always-fallthrough, unknown), such
that mixing of different always-* directions themselves as well as mixing of
always-* with unknown directions would cause a program rejection by the
verifier, e.g. programs with constructs like 'if ([...]) { x = 0; } else
{ x = 1; }' with subsequent 'if (x == 1) { [...] }'. For unprivileged, this
would result in only single direction always-* taken paths, and unknown taken
paths being allowed, such that the former could be patched from a conditional
jump to an unconditional jump (ja). Compared to this approach here, it would
have two downsides: i) valid programs that otherwise are not performing any
pointer arithmetic, etc, would potentially be rejected/broken, and ii) we are
required to turn off path pruning for unprivileged, where both can be avoided
in this work through pushing the invalid branch to the verification stack.

The issue was originally discovered by Adam and Ofek, and later independently
discovered and reported as a result of Benedict and Piotr's research work.

Fixes: b2157399cc98 ("bpf: prevent out-of-bounds speculation")
Reported-by: Adam Morrison <mad@cs.tau.ac.il>
Reported-by: Ofek Kirzner <ofekkir@gmail.com>
Reported-by: Benedict Schlueter <benedict.schlueter@rub.de>
Reported-by: Piotr Krysiuk <piotras@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Reviewed-by: Benedict Schlueter <benedict.schlueter@rub.de>
Reviewed-by: Piotr Krysiuk <piotras@gmail.com>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 kernel/bpf/verifier.c | 44 +++++++++++++++++++++++++++++++++++++++----
 1 file changed, 40 insertions(+), 4 deletions(-)

diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index 4f50d6f128be..da8fc57ff5b2 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -5740,6 +5740,27 @@ struct bpf_sanitize_info {
 	bool mask_to_left;
 };
 
+static struct bpf_verifier_state *
+sanitize_speculative_path(struct bpf_verifier_env *env,
+			  const struct bpf_insn *insn,
+			  u32 next_idx, u32 curr_idx)
+{
+	struct bpf_verifier_state *branch;
+	struct bpf_reg_state *regs;
+
+	branch = push_stack(env, next_idx, curr_idx, true);
+	if (branch && insn) {
+		regs = branch->frame[branch->curframe]->regs;
+		if (BPF_SRC(insn->code) == BPF_K) {
+			mark_reg_unknown(env, regs, insn->dst_reg);
+		} else if (BPF_SRC(insn->code) == BPF_X) {
+			mark_reg_unknown(env, regs, insn->dst_reg);
+			mark_reg_unknown(env, regs, insn->src_reg);
+		}
+	}
+	return branch;
+}
+
 static int sanitize_ptr_alu(struct bpf_verifier_env *env,
 			    struct bpf_insn *insn,
 			    const struct bpf_reg_state *ptr_reg,
@@ -5823,7 +5844,8 @@ do_sim:
 		tmp = *dst_reg;
 		*dst_reg = *ptr_reg;
 	}
-	ret = push_stack(env, env->insn_idx + 1, env->insn_idx, true);
+	ret = sanitize_speculative_path(env, NULL, env->insn_idx + 1,
+					env->insn_idx);
 	if (!ptr_is_dst_reg && ret)
 		*dst_reg = tmp;
 	return !ret ? REASON_STACK : 0;
@@ -7974,14 +7996,28 @@ static int check_cond_jmp_op(struct bpf_verifier_env *env,
 		if (err)
 			return err;
 	}
+
 	if (pred == 1) {
-		/* only follow the goto, ignore fall-through */
+		/* Only follow the goto, ignore fall-through. If needed, push
+		 * the fall-through branch for simulation under speculative
+		 * execution.
+		 */
+		if (!env->bypass_spec_v1 &&
+		    !sanitize_speculative_path(env, insn, *insn_idx + 1,
+					       *insn_idx))
+			return -EFAULT;
 		*insn_idx += insn->off;
 		return 0;
 	} else if (pred == 0) {
-		/* only follow fall-through branch, since
-		 * that's where the program will go
+		/* Only follow the fall-through branch, since that's where the
+		 * program will go. If needed, push the goto branch for
+		 * simulation under speculative execution.
 		 */
+		if (!env->bypass_spec_v1 &&
+		    !sanitize_speculative_path(env, insn,
+					       *insn_idx + insn->off + 1,
+					       *insn_idx))
+			return -EFAULT;
 		return 0;
 	}
 
-- 
2.30.2




  parent reply	other threads:[~2021-06-21 16:29 UTC|newest]

Thread overview: 165+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-21 16:13 [PATCH 5.10 000/146] 5.10.46-rc1 review Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 001/146] dmaengine: idxd: add missing dsa driver unregister Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 002/146] dmaengine: fsl-dpaa2-qdma: Fix error return code in two functions Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 003/146] dmaengine: xilinx: dpdma: initialize registers before request_irq Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 004/146] dmaengine: ALTERA_MSGDMA depends on HAS_IOMEM Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 005/146] dmaengine: QCOM_HIDMA_MGMT " Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 006/146] dmaengine: SF_PDMA " Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 007/146] dmaengine: stedma40: add missing iounmap() on error in d40_probe() Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 008/146] afs: Fix an IS_ERR() vs NULL check Greg Kroah-Hartman
2021-06-21 16:13 ` [PATCH 5.10 009/146] mm/memory-failure: make sure wait for page writeback in memory_failure Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 010/146] kvm: LAPIC: Restore guard to prevent illegal APIC register access Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 011/146] fanotify: fix copy_event_to_user() fid error clean up Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 012/146] batman-adv: Avoid WARN_ON timing related checks Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 013/146] mac80211: fix skb length check in ieee80211_scan_rx() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 014/146] mlxsw: reg: Spectrum-3: Enforce lowest max-shaper burst size of 11 Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 015/146] mlxsw: core: Set thermal zone polling delay argument to real value at init Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 016/146] libbpf: Fixes incorrect rx_ring_setup_done Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 017/146] net: ipv4: fix memory leak in netlbl_cipsov4_add_std Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 018/146] vrf: fix maximum MTU Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 019/146] net: rds: fix memory leak in rds_recvmsg Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 020/146] net: dsa: felix: re-enable TX flow control in ocelot_port_flush() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 021/146] net: lantiq: disable interrupt before sheduling NAPI Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 022/146] netfilter: nft_fib_ipv6: skip ipv6 packets from any to link-local Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 023/146] ice: add ndo_bpf callback for safe mode netdev ops Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 024/146] ice: parameterize functions responsible for Tx ring management Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 025/146] udp: fix race between close() and udp_abort() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 026/146] rtnetlink: Fix regression in bridge VLAN configuration Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 027/146] net/sched: act_ct: handle DNAT tuple collision Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 028/146] net/mlx5e: Remove dependency in IPsec initialization flows Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 029/146] net/mlx5e: Fix page reclaim for dead peer hairpin Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 030/146] net/mlx5: Consider RoCE cap before init RDMA resources Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 031/146] net/mlx5: DR, Allow SW steering for sw_owner_v2 devices Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 032/146] net/mlx5: DR, Dont use SW steering when RoCE is not supported Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 033/146] net/mlx5e: Block offload of outer header csum for UDP tunnels Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 034/146] netfilter: synproxy: Fix out of bounds when parsing TCP options Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 035/146] mptcp: " Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 036/146] sch_cake: Fix out of bounds when parsing TCP options and header Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 037/146] mptcp: try harder to borrow memory from subflow under pressure Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 038/146] mptcp: do not warn on bad input from the network Greg Kroah-Hartman
2021-06-23 14:22   ` Pavel Machek
2021-06-23 16:36     ` Paolo Abeni
2021-06-23 16:45       ` Mat Martineau
2021-06-23 16:53       ` Pavel Machek
2021-06-23 17:19         ` Paolo Abeni
2021-06-21 16:14 ` [PATCH 5.10 039/146] selftests: mptcp: enable syncookie only in absence of reorders Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 040/146] alx: Fix an error handling path in alx_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 041/146] cxgb4: fix endianness when flashing boot image Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 042/146] cxgb4: fix sleep in atomic when flashing PHY firmware Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 043/146] cxgb4: halt chip before flashing PHY firmware image Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 044/146] net: stmmac: dwmac1000: Fix extended MAC address registers definition Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 045/146] net: make get_net_ns return error if NET_NS is disabled Greg Kroah-Hartman
2021-06-23 14:26   ` Pavel Machek
2021-06-27  8:57     ` Changbin Du
2021-06-21 16:14 ` [PATCH 5.10 046/146] net: qualcomm: rmnet: Update rmnet device MTU based on real device Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 047/146] net: qualcomm: rmnet: dont over-count statistics Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 048/146] ethtool: strset: fix message length calculation Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 049/146] qlcnic: Fix an error handling path in qlcnic_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 050/146] netxen_nic: Fix an error handling path in netxen_nic_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 051/146] cxgb4: fix wrong ethtool n-tuple rule lookup Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 052/146] ipv4: Fix device used for dst_alloc with local routes Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 053/146] net: qrtr: fix OOB Read in qrtr_endpoint_post Greg Kroah-Hartman
2021-06-21 16:14 ` Greg Kroah-Hartman [this message]
2021-06-21 16:14 ` [PATCH 5.10 055/146] ptp: improve max_adj check against unreasonable values Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 056/146] net: cdc_ncm: switch to eth%d interface naming Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 057/146] lantiq: net: fix duplicated skb in rx descriptor ring Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 058/146] net: usb: fix possible use-after-free in smsc75xx_bind Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 059/146] net: fec_ptp: fix issue caused by refactor the fec_devtype Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 060/146] net: ipv4: fix memory leak in ip_mc_add1_src Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 061/146] net/af_unix: fix a data-race in unix_dgram_sendmsg / unix_release_sock Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 062/146] net/mlx5: E-Switch, Read PF mac address Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 063/146] net/mlx5: E-Switch, Allow setting GUID for host PF vport Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 064/146] net/mlx5: Reset mkey index on creation Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 065/146] be2net: Fix an error handling path in be_probe() Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 066/146] net: hamradio: fix memory leak in mkiss_close Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 067/146] net: cdc_eem: fix tx fixup skb leak Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 068/146] cxgb4: fix wrong shift Greg Kroah-Hartman
2021-06-21 16:14 ` [PATCH 5.10 069/146] bnxt_en: Rediscover PHY capabilities after firmware reset Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 070/146] bnxt_en: Fix TQM fastpath ring backing store computation Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 071/146] bnxt_en: Call bnxt_ethtool_free() in bnxt_init_one() error path Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 072/146] icmp: dont send out ICMP messages with a source address of 0.0.0.0 Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 073/146] net: ethernet: fix potential use-after-free in ec_bhf_remove Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 074/146] regulator: cros-ec: Fix error code in dev_err message Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 075/146] regulator: max77620: Silence deferred probe error Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 076/146] regulator: bd70528: Fix off-by-one for buck123 .n_voltages setting Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 077/146] platform/x86: thinkpad_acpi: Add X1 Carbon Gen 9 second fan support Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 078/146] ASoC: rt5659: Fix the lost powers for the HDA header Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 079/146] phy: phy-mtk-tphy: Fix some resource leaks in mtk_phy_init() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 080/146] ASoC: fsl-asoc-card: Set .owner attribute when registering card Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 081/146] regulator: rtmv20: Fix to make regcache value first reading back from HW Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 082/146] spi: spi-zynq-qspi: Fix some wrong goto jumps & missing error code Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 083/146] sched/pelt: Ensure that *_sum is always synced with *_avg Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 084/146] ASoC: tas2562: Fix TDM_CFG0_SAMPRATE values Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 085/146] spi: stm32-qspi: Always wait BUSY bit to be cleared in stm32_qspi_wait_cmd() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 086/146] regulator: rt4801: Fix NULL pointer dereference if priv->enable_gpios is NULL Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 087/146] ASoC: rt5682: Fix the fast discharge for headset unplugging in soundwire mode Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 088/146] pinctrl: ralink: rt2880: avoid to error in calls is pin is already enabled Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 089/146] drm/sun4i: dw-hdmi: Make HDMI PHY into a platform device Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 090/146] ASoC: qcom: lpass-cpu: Fix pop noise during audio capture begin Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 091/146] radeon: use memcpy_to/fromio for UVD fw upload Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 092/146] hwmon: (scpi-hwmon) shows the negative temperature properly Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 093/146] mm: relocate write_protect_seq in struct mm_struct Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 094/146] irqchip/gic-v3: Workaround inconsistent PMR setting on NMI entry Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 095/146] sched/fair: Correctly insert cfs_rqs to list on unthrottle Greg Kroah-Hartman
2021-06-21 16:57   ` Peter Zijlstra
2021-06-22 10:14     ` Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 096/146] bpf: Inherit expanded/patched seen count from old aux data Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 097/146] bpf: Do not mark insn as seen under speculative path verification Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 098/146] can: bcm: fix infoleak in struct bcm_msg_head Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 099/146] can: bcm/raw/isotp: use per module netdevice notifier Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 100/146] can: j1939: fix Use-after-Free, hold skb ref while in use Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 101/146] can: mcba_usb: fix memory leak in mcba_usb Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 102/146] usb: core: hub: Disable autosuspend for Cypress CY7C65632 Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 103/146] usb: chipidea: imx: Fix Battery Charger 1.2 CDP detection Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 104/146] tracing: Do not stop recording cmdlines when tracing is off Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 105/146] tracing: Do not stop recording comms if the trace file is being read Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 106/146] tracing: Do no increment trace_clock_global() by one Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 107/146] PCI: Mark TI C667X to avoid bus reset Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 108/146] PCI: Mark some NVIDIA GPUs " Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 109/146] PCI: aardvark: Fix kernel panic during PIO transfer Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 110/146] PCI: Add ACS quirk for Broadcom BCM57414 NIC Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 111/146] PCI: Work around Huawei Intelligent NIC VF FLR erratum Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 112/146] KVM: x86: Immediately reset the MMU context when the SMM flag is cleared Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 113/146] KVM: x86/mmu: Calculate and check "full" mmu_role for nested MMU Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 114/146] KVM: X86: Fix x86_emulator slab cache leak Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 115/146] s390/mcck: fix calculation of SIE critical section size Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 116/146] s390/ap: Fix hanging ioctl caused by wrong msg counter Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 117/146] ARCv2: save ABI registers across signal handling Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 118/146] x86/mm: Avoid truncating memblocks for SGX memory Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 119/146] x86/process: Check PF_KTHREAD and not current->mm for kernel threads Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 120/146] x86/ioremap: Map EFI-reserved memory as encrypted for SEV Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 121/146] x86/pkru: Write hardware init value to PKRU when xstate is init Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 122/146] x86/fpu: Prevent state corruption in __fpu__restore_sig() Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 123/146] x86/fpu: Invalidate FPU state after a failed XRSTOR from a user buffer Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 124/146] x86/fpu: Reset state for all signal restore failures Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 125/146] crash_core, vmcoreinfo: append SECTION_SIZE_BITS to vmcoreinfo Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 126/146] dmaengine: pl330: fix wrong usage of spinlock flags in dma_cyclc Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 127/146] mac80211: Fix NULL ptr deref for injected rate info Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 128/146] cfg80211: make certificate generation more robust Greg Kroah-Hartman
2021-06-21 16:15 ` [PATCH 5.10 129/146] cfg80211: avoid double free of PMSR request Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 130/146] drm/amdgpu/gfx10: enlarge CP_MEC_DOORBELL_RANGE_UPPER to cover full doorbell Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 131/146] drm/amdgpu/gfx9: fix the doorbell missing when in CGPG issue Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 132/146] net: ll_temac: Make sure to free skb when it is completely used Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 133/146] net: ll_temac: Fix TX BD buffer overwrite Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 134/146] net: bridge: fix vlan tunnel dst null pointer dereference Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 135/146] net: bridge: fix vlan tunnel dst refcnt when egressing Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 136/146] mm/swap: fix pte_same_as_swp() not removing uffd-wp bit when compare Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 137/146] mm/slub: clarify verification reporting Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 138/146] mm/slub: fix redzoning for small allocations Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 139/146] mm/slub: actually fix freelist pointer vs redzoning Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 140/146] mm/slub.c: include swab.h Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 141/146] net: stmmac: disable clocks in stmmac_remove_config_dt() Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 142/146] net: fec_ptp: add clock rate zero check Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 143/146] tools headers UAPI: Sync linux/in.h copy with the kernel sources Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 144/146] perf beauty: Update copy of linux/socket.h " Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 145/146] usb: dwc3: debugfs: Add and remove endpoint dirs dynamically Greg Kroah-Hartman
2021-06-21 16:16 ` [PATCH 5.10 146/146] usb: dwc3: core: fix kernel panic when do reboot Greg Kroah-Hartman
2021-06-21 19:26 ` [PATCH 5.10 000/146] 5.10.46-rc1 review Florian Fainelli
2021-06-22  2:24 ` Naresh Kamboju
2021-06-22  8:02 ` Pavel Machek
2021-06-22  8:03 ` Jon Hunter
2021-06-22 10:47 ` Sudip Mukherjee
2021-06-22 21:34 ` Guenter Roeck
2021-06-22 23:58 ` Shuah Khan
2021-06-23  0:50 ` Samuel Zou
2021-06-23  1:56 ` Rudi Heitbaum

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=20210621154913.906586441@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=ast@kernel.org \
    --cc=benedict.schlueter@rub.de \
    --cc=daniel@iogearbox.net \
    --cc=john.fastabend@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mad@cs.tau.ac.il \
    --cc=ofekkir@gmail.com \
    --cc=piotras@gmail.com \
    --cc=sashal@kernel.org \
    --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.