linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org,
	Anatoly Trosinenko <anatoly.trosinenko@gmail.com>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Alexei Starovoitov <ast@kernel.org>
Subject: [PATCH 5.4 136/155] bpf: Undo incorrect __reg_bound_offset32 handling
Date: Tue, 31 Mar 2020 10:59:36 +0200	[thread overview]
Message-ID: <20200331085433.485619539@linuxfoundation.org> (raw)
In-Reply-To: <20200331085418.274292403@linuxfoundation.org>

From: Daniel Borkmann <daniel@iogearbox.net>

commit f2d67fec0b43edce8c416101cdc52e71145b5fef upstream.

Anatoly has been fuzzing with kBdysch harness and reported a hang in
one of the outcomes:

  0: (b7) r0 = 808464432
  1: (7f) r0 >>= r0
  2: (14) w0 -= 808464432
  3: (07) r0 += 808464432
  4: (b7) r1 = 808464432
  5: (de) if w1 s<= w0 goto pc+0
   R0_w=invP(id=0,umin_value=808464432,umax_value=5103431727,var_off=(0x30303020;0x10000001f)) R1_w=invP808464432 R10=fp0
  6: (07) r0 += -2144337872
  7: (14) w0 -= -1607454672
  8: (25) if r0 > 0x30303030 goto pc+0
   R0_w=invP(id=0,umin_value=271581184,umax_value=271581311,var_off=(0x10300000;0x7f)) R1_w=invP808464432 R10=fp0
  9: (76) if w0 s>= 0x303030 goto pc+2
  12: (95) exit

  from 8 to 9: safe

  from 5 to 6: R0_w=invP(id=0,umin_value=808464432,umax_value=5103431727,var_off=(0x30303020;0x10000001f)) R1_w=invP808464432 R10=fp0
  6: (07) r0 += -2144337872
  7: (14) w0 -= -1607454672
  8: (25) if r0 > 0x30303030 goto pc+0
   R0_w=invP(id=0,umin_value=271581184,umax_value=271581311,var_off=(0x10300000;0x7f)) R1_w=invP808464432 R10=fp0
  9: safe

  from 8 to 9: safe
  verification time 589 usec
  stack depth 0
  processed 17 insns (limit 1000000) [...]

The underlying program was xlated as follows:

  # bpftool p d x i 9
   0: (b7) r0 = 808464432
   1: (7f) r0 >>= r0
   2: (14) w0 -= 808464432
   3: (07) r0 += 808464432
   4: (b7) r1 = 808464432
   5: (de) if w1 s<= w0 goto pc+0
   6: (07) r0 += -2144337872
   7: (14) w0 -= -1607454672
   8: (25) if r0 > 0x30303030 goto pc+0
   9: (76) if w0 s>= 0x303030 goto pc+2
  10: (05) goto pc-1
  11: (05) goto pc-1
  12: (95) exit

The verifier rewrote original instructions it recognized as dead code with
'goto pc-1', but reality differs from verifier simulation in that we're
actually able to trigger a hang due to hitting the 'goto pc-1' instructions.

Taking different examples to make the issue more obvious: in this example
we're probing bounds on a completely unknown scalar variable in r1:

  [...]
  5: R0_w=inv1 R1_w=inv(id=0) R10=fp0
  5: (18) r2 = 0x4000000000
  7: R0_w=inv1 R1_w=inv(id=0) R2_w=inv274877906944 R10=fp0
  7: (18) r3 = 0x2000000000
  9: R0_w=inv1 R1_w=inv(id=0) R2_w=inv274877906944 R3_w=inv137438953472 R10=fp0
  9: (18) r4 = 0x400
  11: R0_w=inv1 R1_w=inv(id=0) R2_w=inv274877906944 R3_w=inv137438953472 R4_w=inv1024 R10=fp0
  11: (18) r5 = 0x200
  13: R0_w=inv1 R1_w=inv(id=0) R2_w=inv274877906944 R3_w=inv137438953472 R4_w=inv1024 R5_w=inv512 R10=fp0
  13: (2d) if r1 > r2 goto pc+4
   R0_w=inv1 R1_w=inv(id=0,umax_value=274877906944,var_off=(0x0; 0x7fffffffff)) R2_w=inv274877906944 R3_w=inv137438953472 R4_w=inv1024 R5_w=inv512 R10=fp0
  14: R0_w=inv1 R1_w=inv(id=0,umax_value=274877906944,var_off=(0x0; 0x7fffffffff)) R2_w=inv274877906944 R3_w=inv137438953472 R4_w=inv1024 R5_w=inv512 R10=fp0
  14: (ad) if r1 < r3 goto pc+3
   R0_w=inv1 R1_w=inv(id=0,umin_value=137438953472,umax_value=274877906944,var_off=(0x0; 0x7fffffffff)) R2_w=inv274877906944 R3_w=inv137438953472 R4_w=inv1024 R5_w=inv512 R10=fp0
  15: R0=inv1 R1=inv(id=0,umin_value=137438953472,umax_value=274877906944,var_off=(0x0; 0x7fffffffff)) R2=inv274877906944 R3=inv137438953472 R4=inv1024 R5=inv512 R10=fp0
  15: (2e) if w1 > w4 goto pc+2
   R0=inv1 R1=inv(id=0,umin_value=137438953472,umax_value=274877906944,var_off=(0x0; 0x7f00000000)) R2=inv274877906944 R3=inv137438953472 R4=inv1024 R5=inv512 R10=fp0
  16: R0=inv1 R1=inv(id=0,umin_value=137438953472,umax_value=274877906944,var_off=(0x0; 0x7f00000000)) R2=inv274877906944 R3=inv137438953472 R4=inv1024 R5=inv512 R10=fp0
  16: (ae) if w1 < w5 goto pc+1
   R0=inv1 R1=inv(id=0,umin_value=137438953472,umax_value=274877906944,var_off=(0x0; 0x7f00000000)) R2=inv274877906944 R3=inv137438953472 R4=inv1024 R5=inv512 R10=fp0
  [...]

We're first probing lower/upper bounds via jmp64, later we do a similar
check via jmp32 and examine the resulting var_off there. After fall-through
in insn 14, we get the following bounded r1 with 0x7fffffffff unknown marked
bits in the variable section.

Thus, after knowing r1 <= 0x4000000000 and r1 >= 0x2000000000:

  max: 0b100000000000000000000000000000000000000 / 0x4000000000
  var: 0b111111111111111111111111111111111111111 / 0x7fffffffff
  min: 0b010000000000000000000000000000000000000 / 0x2000000000

Now, in insn 15 and 16, we perform a similar probe with lower/upper bounds
in jmp32.

Thus, after knowing r1 <= 0x4000000000 and r1 >= 0x2000000000 and
                    w1 <= 0x400        and w1 >= 0x200:

  max: 0b100000000000000000000000000000000000000 / 0x4000000000
  var: 0b111111100000000000000000000000000000000 / 0x7f00000000
  min: 0b010000000000000000000000000000000000000 / 0x2000000000

The lower/upper bounds haven't changed since they have high bits set in
u64 space and the jmp32 tests can only refine bounds in the low bits.

However, for the var part the expectation would have been 0x7f000007ff
or something less precise up to 0x7fffffffff. A outcome of 0x7f00000000
is not correct since it would contradict the earlier probed bounds
where we know that the result should have been in [0x200,0x400] in u32
space. Therefore, tests with such info will lead to wrong verifier
assumptions later on like falsely predicting conditional jumps to be
always taken, etc.

The issue here is that __reg_bound_offset32()'s implementation from
commit 581738a681b6 ("bpf: Provide better register bounds after jmp32
instructions") makes an incorrect range assumption:

  static void __reg_bound_offset32(struct bpf_reg_state *reg)
  {
        u64 mask = 0xffffFFFF;
        struct tnum range = tnum_range(reg->umin_value & mask,
                                       reg->umax_value & mask);
        struct tnum lo32 = tnum_cast(reg->var_off, 4);
        struct tnum hi32 = tnum_lshift(tnum_rshift(reg->var_off, 32), 32);

        reg->var_off = tnum_or(hi32, tnum_intersect(lo32, range));
  }

In the above walk-through example, __reg_bound_offset32() as-is chose
a range after masking with 0xffffffff of [0x0,0x0] since umin:0x2000000000
and umax:0x4000000000 and therefore the lo32 part was clamped to 0x0 as
well. However, in the umin:0x2000000000 and umax:0x4000000000 range above
we'd end up with an actual possible interval of [0x0,0xffffffff] for u32
space instead.

In case of the original reproducer, the situation looked as follows at
insn 5 for r0:

  [...]
  5: R0_w=invP(id=0,umin_value=808464432,umax_value=5103431727,var_off=(0x0; 0x1ffffffff)) R1_w=invP808464432 R10=fp0
                               0x30303030           0x13030302f
  5: (de) if w1 s<= w0 goto pc+0
   R0_w=invP(id=0,umin_value=808464432,umax_value=5103431727,var_off=(0x30303020; 0x10000001f)) R1_w=invP808464432 R10=fp0
                             0x30303030           0x13030302f
  [...]

After the fall-through, we similarly forced the var_off result into
the wrong range [0x30303030,0x3030302f] suggesting later on that fixed
bits must only be of 0x30303020 with 0x10000001f unknowns whereas such
assumption can only be made when both bounds in hi32 range match.

Originally, I was thinking to fix this by moving reg into a temp reg and
use proper coerce_reg_to_size() helper on the temp reg where we can then
based on that define the range tnum for later intersection:

  static void __reg_bound_offset32(struct bpf_reg_state *reg)
  {
        struct bpf_reg_state tmp = *reg;
        struct tnum lo32, hi32, range;

        coerce_reg_to_size(&tmp, 4);
        range = tnum_range(tmp.umin_value, tmp.umax_value);
        lo32 = tnum_cast(reg->var_off, 4);
        hi32 = tnum_lshift(tnum_rshift(reg->var_off, 32), 32);
        reg->var_off = tnum_or(hi32, tnum_intersect(lo32, range));
  }

In the case of the concrete example, this gives us a more conservative unknown
section. Thus, after knowing r1 <= 0x4000000000 and r1 >= 0x2000000000 and
                             w1 <= 0x400        and w1 >= 0x200:

  max: 0b100000000000000000000000000000000000000 / 0x4000000000
  var: 0b111111111111111111111111111111111111111 / 0x7fffffffff
  min: 0b010000000000000000000000000000000000000 / 0x2000000000

However, above new __reg_bound_offset32() has no effect on refining the
knowledge of the register contents. Meaning, if the bounds in hi32 range
mismatch we'll get the identity function given the range reg spans
[0x0,0xffffffff] and we cast var_off into lo32 only to later on binary
or it again with the hi32.

Likewise, if the bounds in hi32 range match, then we mask both bounds
with 0xffffffff, use the resulting umin/umax for the range to later
intersect the lo32 with it. However, _prior_ called __reg_bound_offset()
did already such intersection on the full reg and we therefore would only
repeat the same operation on the lo32 part twice.

Given this has no effect and the original commit had false assumptions,
this patch reverts the code entirely which is also more straight forward
for stable trees: apparently 581738a681b6 got auto-selected by Sasha's
ML system and misclassified as a fix, so it got sucked into v5.4 where
it should never have landed. A revert is low-risk also from a user PoV
since it requires a recent kernel and llc to opt-into -mcpu=v3 BPF CPU
to generate jmp32 instructions. A proper bounds refinement would need a
significantly more complex approach which is currently being worked, but
no stable material [0]. Hence revert is best option for stable. After the
revert, the original reported program gets rejected as follows:

  1: (7f) r0 >>= r0
  2: (14) w0 -= 808464432
  3: (07) r0 += 808464432
  4: (b7) r1 = 808464432
  5: (de) if w1 s<= w0 goto pc+0
   R0_w=invP(id=0,umin_value=808464432,umax_value=5103431727,var_off=(0x0; 0x1ffffffff)) R1_w=invP808464432 R10=fp0
  6: (07) r0 += -2144337872
  7: (14) w0 -= -1607454672
  8: (25) if r0 > 0x30303030 goto pc+0
   R0_w=invP(id=0,umax_value=808464432,var_off=(0x0; 0x3fffffff)) R1_w=invP808464432 R10=fp0
  9: (76) if w0 s>= 0x303030 goto pc+2
   R0=invP(id=0,umax_value=3158063,var_off=(0x0; 0x3fffff)) R1=invP808464432 R10=fp0
  10: (30) r0 = *(u8 *)skb[808464432]
  BPF_LD_[ABS|IND] uses reserved fields
  processed 11 insns (limit 1000000) [...]

  [0] https://lore.kernel.org/bpf/158507130343.15666.8018068546764556975.stgit@john-Precision-5820-Tower/T/

Fixes: 581738a681b6 ("bpf: Provide better register bounds after jmp32 instructions")
Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Link: https://lore.kernel.org/bpf/20200330160324.15259-2-daniel@iogearbox.net
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>



---
 kernel/bpf/verifier.c |   19 -------------------
 1 file changed, 19 deletions(-)

--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -979,17 +979,6 @@ static void __reg_bound_offset(struct bp
 						 reg->umax_value));
 }
 
-static void __reg_bound_offset32(struct bpf_reg_state *reg)
-{
-	u64 mask = 0xffffFFFF;
-	struct tnum range = tnum_range(reg->umin_value & mask,
-				       reg->umax_value & mask);
-	struct tnum lo32 = tnum_cast(reg->var_off, 4);
-	struct tnum hi32 = tnum_lshift(tnum_rshift(reg->var_off, 32), 32);
-
-	reg->var_off = tnum_or(hi32, tnum_intersect(lo32, range));
-}
-
 /* Reset the min/max bounds of a register */
 static void __mark_reg_unbounded(struct bpf_reg_state *reg)
 {
@@ -5452,10 +5441,6 @@ static void reg_set_min_max(struct bpf_r
 	/* We might have learned some bits from the bounds. */
 	__reg_bound_offset(false_reg);
 	__reg_bound_offset(true_reg);
-	if (is_jmp32) {
-		__reg_bound_offset32(false_reg);
-		__reg_bound_offset32(true_reg);
-	}
 	/* Intersecting with the old var_off might have improved our bounds
 	 * slightly.  e.g. if umax was 0x7f...f and var_off was (0; 0xf...fc),
 	 * then new var_off is (0; 0x7f...fc) which improves our umax.
@@ -5565,10 +5550,6 @@ static void reg_set_min_max_inv(struct b
 	/* We might have learned some bits from the bounds. */
 	__reg_bound_offset(false_reg);
 	__reg_bound_offset(true_reg);
-	if (is_jmp32) {
-		__reg_bound_offset32(false_reg);
-		__reg_bound_offset32(true_reg);
-	}
 	/* Intersecting with the old var_off might have improved our bounds
 	 * slightly.  e.g. if umax was 0x7f...f and var_off was (0; 0xf...fc),
 	 * then new var_off is (0; 0x7f...fc) which improves our umax.



  parent reply	other threads:[~2020-03-31  9:18 UTC|newest]

Thread overview: 156+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-31  8:57 [PATCH 5.4 000/155] 5.4.29-rc1 review Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 001/155] mmc: core: Allow host controllers to require R1B for CMD6 Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 002/155] mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for erase/trim/discard Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 003/155] mmc: core: Respect MMC_CAP_NEED_RSP_BUSY for eMMC sleep command Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 004/155] mmc: sdhci-omap: Fix busy detection by enabling MMC_CAP_NEED_RSP_BUSY Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 005/155] mmc: sdhci-tegra: " Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 006/155] ACPI: PM: s2idle: Rework ACPI events synchronization Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 007/155] cxgb4: fix throughput drop during Tx backpressure Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 008/155] cxgb4: fix Txq restart check during backpressure Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 009/155] geneve: move debug check after netdev unregister Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 010/155] hsr: fix general protection fault in hsr_addr_is_self() Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 011/155] ipv4: fix a RCU-list lock in inet_dump_fib() Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 012/155] macsec: restrict to ethernet devices Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 013/155] mlxsw: pci: Only issue reset when system is ready Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 014/155] mlxsw: spectrum_mr: Fix list iteration in error path Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 015/155] net/bpfilter: fix dprintf usage for /dev/kmsg Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 016/155] net: cbs: Fix software cbs to consider packet sending time Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 017/155] net: dsa: Fix duplicate frames flooded by learning Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 018/155] net: dsa: mt7530: Change the LINK bit to reflect the link status Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 019/155] net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 020/155] net: ena: Add PCI shutdown handler to allow safe kexec Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 021/155] net: mvneta: Fix the case where the last poll did not process all rx Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 022/155] net/packet: tpacket_rcv: avoid a producer race condition Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 023/155] net: phy: dp83867: w/a for fld detect threshold bootstrapping issue Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 024/155] net: phy: mdio-bcm-unimac: Fix clock handling Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 025/155] net: phy: mdio-mux-bcm-iproc: check clk_prepare_enable() return value Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 026/155] net: qmi_wwan: add support for ASKEY WWHC050 Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 027/155] net/sched: act_ct: Fix leak of ct zone template on replace Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 028/155] net_sched: cls_route: remove the right filter from hashtable Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 029/155] net_sched: hold rtnl lock in tcindex_partial_destroy_work() Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 030/155] net_sched: keep alloc_hash updated after hash allocation Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 031/155] net: stmmac: dwmac-rk: fix error path in rk_gmac_probe Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 032/155] NFC: fdp: Fix a signedness bug in fdp_nci_send_patch() Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 033/155] r8169: re-enable MSI on RTL8168c Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 034/155] slcan: not call free_netdev before rtnl_unlock in slcan_open Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 035/155] tcp: also NULL skb->dev when copy was needed Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 036/155] tcp: ensure skb->dev is NULL before leaving TCP stack Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 037/155] tcp: repair: fix TCP_QUEUE_SEQ implementation Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 038/155] vxlan: check return value of gro_cells_init() Greg Kroah-Hartman
2020-03-31  8:57 ` [PATCH 5.4 039/155] bnxt_en: Fix Priority Bytes and Packets counters in ethtool -S Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 040/155] bnxt_en: fix memory leaks in bnxt_dcbnl_ieee_getets() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 041/155] bnxt_en: Return error if bnxt_alloc_ctx_mem() fails Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 042/155] bnxt_en: Free context memory after disabling PCI in probe error path Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 043/155] bnxt_en: Reset rings if ring reservation fails during open() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 044/155] net: ip_gre: Separate ERSPAN newlink / changelink callbacks Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 045/155] net: ip_gre: Accept IFLA_INFO_DATA-less configuration Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 046/155] hsr: use rcu_read_lock() in hsr_get_node_{list/status}() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 047/155] hsr: add restart routine into hsr_get_node_list() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 048/155] hsr: set .netnsok flag Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 049/155] net/mlx5: DR, Fix postsend actions write length Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 050/155] net/mlx5e: Enhance ICOSQ WQE info fields Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 051/155] net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 052/155] net/mlx5e: Fix ICOSQ recovery flow with Striding RQ Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 053/155] net/mlx5e: Do not recover from a non-fatal syndrome Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 054/155] cgroup-v1: cgroup_pidlist_next should update position index Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 055/155] nfs: add minor version to nfs_server_key for fscache Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 056/155] cpupower: avoid multiple definition with gcc -fno-common Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 057/155] drivers/of/of_mdio.c:fix of_mdiobus_register() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 058/155] cgroup1: dont call release_agent when it is "" Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 059/155] dt-bindings: net: FMan erratum A050385 Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 060/155] arm64: dts: ls1043a: " Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 061/155] fsl/fman: detect " Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 062/155] drm/amd/display: update soc bb for nv14 Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 063/155] drm/amdgpu: correct ROM_INDEX/DATA offset for VEGA20 Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 064/155] drm/exynos: Fix cleanup of IOMMU related objects Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 065/155] iommu/vt-d: Silence RCU-list debugging warnings Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 066/155] s390/qeth: dont reset default_out_queue Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 067/155] s390/qeth: handle error when backing RX buffer Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 068/155] scsi: ipr: Fix softlockup when rescanning devices in petitboot Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 069/155] mac80211: Do not send mesh HWMP PREQ if HWMP is disabled Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 070/155] dpaa_eth: Remove unnecessary boolean expression in dpaa_get_headroom Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 071/155] sxgbe: Fix off by one in samsung driver strncpy size arg Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 072/155] net: hns3: fix "tc qdisc del" failed issue Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 073/155] iommu/vt-d: Fix debugfs register reads Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 074/155] iommu/vt-d: Populate debugfs if IOMMUs are detected Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 075/155] iwlwifi: mvm: fix non-ACPI function Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 076/155] i2c: hix5hd2: add missed clk_disable_unprepare in remove Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 077/155] Input: raydium_i2c_ts - fix error codes in raydium_i2c_boot_trigger() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 078/155] Input: fix stale timestamp on key autorepeat events Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 079/155] Input: synaptics - enable RMI on HP Envy 13-ad105ng Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 080/155] Input: avoid BIT() macro usage in the serio.h UAPI header Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 081/155] IB/rdmavt: Free kernel completion queue when done Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 082/155] RDMA/core: Fix missing error check on dev_set_name() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 083/155] gpiolib: Fix irq_disable() semantics Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 084/155] RDMA/nl: Do not permit empty devices names during RDMA_NLDEV_CMD_NEWLINK/SET Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 085/155] RDMA/mad: Do not crash if the rdma device does not have a umad interface Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 086/155] ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 087/155] ceph: fix memory leak in ceph_cleanup_snapid_map() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 088/155] ARM: dts: dra7: Add bus_dma_limit for L3 bus Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 089/155] ARM: dts: omap5: " Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 090/155] x86/ioremap: Fix CONFIG_EFI=n build Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 091/155] perf probe: Fix to delete multiple probe event Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 092/155] perf probe: Do not depend on dwfl_module_addrsym() Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 093/155] rtlwifi: rtl8188ee: Fix regression due to commit d1d1a96bdb44 Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 094/155] tools: Let O= makes handle a relative path with -C option Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 095/155] scripts/dtc: Remove redundant YYLOC global declaration Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 096/155] scsi: sd: Fix optimal I/O size for devices that change reported values Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 097/155] nl80211: fix NL80211_ATTR_CHANNEL_WIDTH attribute type Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 098/155] mac80211: drop data frames without key on encrypted links Greg Kroah-Hartman
2020-03-31  8:58 ` [PATCH 5.4 099/155] mac80211: mark station unauthorized before key removal Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 100/155] mm/swapfile.c: move inode_lock out of claim_swapfile Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 101/155] drivers/base/memory.c: indicate all memory blocks as removable Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 102/155] mm/sparse: fix kernel crash with pfn_section_valid check Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 103/155] mm: fork: fix kernel_stack memcg stats for various stack implementations Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 104/155] gpiolib: acpi: Correct comment for HP x2 10 honor_wakeup quirk Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 105/155] gpiolib: acpi: Rework honor_wakeup option into an ignore_wake option Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 106/155] gpiolib: acpi: Add quirk to ignore EC wakeups on HP x2 10 BYT + AXP288 model Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 107/155] bpf: Fix cgroup ref leak in cgroup_bpf_inherit on out-of-memory Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 108/155] RDMA/core: Ensure security pkey modify is not lost Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 109/155] afs: Fix handling of an abort from a service handler Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 110/155] genirq: Fix reference leaks on irq affinity notifiers Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 111/155] xfrm: handle NETDEV_UNREGISTER for xfrm device Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 112/155] vti[6]: fix packet tx through bpf_redirect() in XinY cases Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 113/155] RDMA/mlx5: Fix the number of hwcounters of a dynamic counter Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 114/155] RDMA/mlx5: Fix access to wrong pointer while performing flush due to error Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 115/155] RDMA/mlx5: Block delay drop to unprivileged users Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 116/155] xfrm: fix uctx len check in verify_sec_ctx_len Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 117/155] xfrm: add the missing verify_sec_ctx_len check in xfrm_add_acquire Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 118/155] xfrm: policy: Fix doulbe free in xfrm_policy_timer Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 119/155] afs: Fix client call Rx-phase signal handling Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 120/155] afs: Fix some tracing details Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 121/155] afs: Fix unpinned address list during probing Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 122/155] ieee80211: fix HE SPR size calculation Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 123/155] mac80211: set IEEE80211_TX_CTRL_PORT_CTRL_PROTO for nl80211 TX Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 124/155] netfilter: flowtable: reload ip{v6}h in nf_flow_tuple_ip{v6} Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 125/155] netfilter: nft_fwd_netdev: validate family and chain type Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 126/155] netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 127/155] i2c: nvidia-gpu: Handle timeout correctly in gpu_i2c_check_status() Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 128/155] bpf, x32: Fix bug with JMP32 JSET BPF_X checking upper bits Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 129/155] bpf: Initialize storage pointers to NULL to prevent freeing garbage pointer Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 130/155] bpf/btf: Fix BTF verification of enum members in struct/union Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 131/155] bpf, sockmap: Remove bucket->lock from sock_{hash|map}_free Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 132/155] ARM: dts: sun8i-a83t-tbs-a711: Fix USB OTG mode detection Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 133/155] vti6: Fix memory leak of skb if input policy check fails Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 134/155] r8169: fix PHY driver check on platforms w/o module softdeps Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 135/155] clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources Greg Kroah-Hartman
2020-03-31  8:59 ` Greg Kroah-Hartman [this message]
2020-03-31  8:59 ` [PATCH 5.4 137/155] USB: serial: option: add support for ASKEY WWHC050 Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 138/155] USB: serial: option: add BroadMobi BM806U Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 139/155] USB: serial: option: add Wistron Neweb D19Q1 Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 140/155] USB: cdc-acm: restore capability check order Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 141/155] USB: serial: io_edgeport: fix slab-out-of-bounds read in edge_interrupt_callback Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 142/155] usb: musb: fix crash with highmen PIO and usbmon Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 143/155] media: flexcop-usb: fix endpoint sanity check Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 144/155] media: usbtv: fix control-message timeouts Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 145/155] staging: kpc2000: prevent underflow in cpld_reconfigure() Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 146/155] staging: rtl8188eu: Add ASUS USB-N10 Nano B1 to device table Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 147/155] staging: wlan-ng: fix ODEBUG bug in prism2sta_disconnect_usb Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 148/155] staging: wlan-ng: fix use-after-free Read in hfa384x_usbin_callback Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 149/155] ahci: Add Intel Comet Lake H RAID PCI ID Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 150/155] libfs: fix infoleak in simple_attr_read() Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 151/155] media: ov519: add missing endpoint sanity checks Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 152/155] media: dib0700: fix rc endpoint lookup Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 153/155] media: stv06xx: add missing descriptor sanity checks Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 154/155] media: xirlink_cit: " Greg Kroah-Hartman
2020-03-31  8:59 ` [PATCH 5.4 155/155] media: v4l2-core: fix a use-after-free bug of sd->devnode Greg Kroah-Hartman

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=20200331085433.485619539@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=anatoly.trosinenko@gmail.com \
    --cc=ast@kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).