From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
David Sterba <dsterba@suse.com>, Sasha Levin <sashal@kernel.org>,
davem@davemloft.net, viro@zeniv.linux.org.uk,
linux-crypto@vger.kernel.org
Subject: [PATCH AUTOSEL 5.15 055/153] crypto: lzo - Fix compression buffer overrun
Date: Mon, 5 May 2025 19:11:42 -0400 [thread overview]
Message-ID: <20250505231320.2695319-55-sashal@kernel.org> (raw)
In-Reply-To: <20250505231320.2695319-1-sashal@kernel.org>
From: Herbert Xu <herbert@gondor.apana.org.au>
[ Upstream commit cc47f07234f72cbd8e2c973cdbf2a6730660a463 ]
Unlike the decompression code, the compression code in LZO never
checked for output overruns. It instead assumes that the caller
always provides enough buffer space, disregarding the buffer length
provided by the caller.
Add a safe compression interface that checks for the end of buffer
before each write. Use the safe interface in crypto/lzo.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
crypto/lzo-rle.c | 2 +-
crypto/lzo.c | 2 +-
include/linux/lzo.h | 8 +++
lib/lzo/Makefile | 2 +-
lib/lzo/lzo1x_compress.c | 102 +++++++++++++++++++++++++---------
lib/lzo/lzo1x_compress_safe.c | 18 ++++++
6 files changed, 106 insertions(+), 28 deletions(-)
create mode 100644 lib/lzo/lzo1x_compress_safe.c
diff --git a/crypto/lzo-rle.c b/crypto/lzo-rle.c
index 0631d975bfac1..0abc2d87f0420 100644
--- a/crypto/lzo-rle.c
+++ b/crypto/lzo-rle.c
@@ -55,7 +55,7 @@ static int __lzorle_compress(const u8 *src, unsigned int slen,
size_t tmp_len = *dlen; /* size_t(ulong) <-> uint on 64 bit */
int err;
- err = lzorle1x_1_compress(src, slen, dst, &tmp_len, ctx);
+ err = lzorle1x_1_compress_safe(src, slen, dst, &tmp_len, ctx);
if (err != LZO_E_OK)
return -EINVAL;
diff --git a/crypto/lzo.c b/crypto/lzo.c
index ebda132dd22bf..8338851c7406a 100644
--- a/crypto/lzo.c
+++ b/crypto/lzo.c
@@ -55,7 +55,7 @@ static int __lzo_compress(const u8 *src, unsigned int slen,
size_t tmp_len = *dlen; /* size_t(ulong) <-> uint on 64 bit */
int err;
- err = lzo1x_1_compress(src, slen, dst, &tmp_len, ctx);
+ err = lzo1x_1_compress_safe(src, slen, dst, &tmp_len, ctx);
if (err != LZO_E_OK)
return -EINVAL;
diff --git a/include/linux/lzo.h b/include/linux/lzo.h
index e95c7d1092b28..4d30e3624acd2 100644
--- a/include/linux/lzo.h
+++ b/include/linux/lzo.h
@@ -24,10 +24,18 @@
int lzo1x_1_compress(const unsigned char *src, size_t src_len,
unsigned char *dst, size_t *dst_len, void *wrkmem);
+/* Same as above but does not write more than dst_len to dst. */
+int lzo1x_1_compress_safe(const unsigned char *src, size_t src_len,
+ unsigned char *dst, size_t *dst_len, void *wrkmem);
+
/* This requires 'wrkmem' of size LZO1X_1_MEM_COMPRESS */
int lzorle1x_1_compress(const unsigned char *src, size_t src_len,
unsigned char *dst, size_t *dst_len, void *wrkmem);
+/* Same as above but does not write more than dst_len to dst. */
+int lzorle1x_1_compress_safe(const unsigned char *src, size_t src_len,
+ unsigned char *dst, size_t *dst_len, void *wrkmem);
+
/* safe decompression with overrun testing */
int lzo1x_decompress_safe(const unsigned char *src, size_t src_len,
unsigned char *dst, size_t *dst_len);
diff --git a/lib/lzo/Makefile b/lib/lzo/Makefile
index 2f58fafbbdddc..fc7b2b7ef4b20 100644
--- a/lib/lzo/Makefile
+++ b/lib/lzo/Makefile
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
-lzo_compress-objs := lzo1x_compress.o
+lzo_compress-objs := lzo1x_compress.o lzo1x_compress_safe.o
lzo_decompress-objs := lzo1x_decompress_safe.o
obj-$(CONFIG_LZO_COMPRESS) += lzo_compress.o
diff --git a/lib/lzo/lzo1x_compress.c b/lib/lzo/lzo1x_compress.c
index 76758e9296ba6..469c143f75852 100644
--- a/lib/lzo/lzo1x_compress.c
+++ b/lib/lzo/lzo1x_compress.c
@@ -18,11 +18,22 @@
#include <linux/lzo.h>
#include "lzodefs.h"
-static noinline size_t
-lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
- unsigned char *out, size_t *out_len,
- size_t ti, void *wrkmem, signed char *state_offset,
- const unsigned char bitstream_version)
+#undef LZO_UNSAFE
+
+#ifndef LZO_SAFE
+#define LZO_UNSAFE 1
+#define LZO_SAFE(name) name
+#define HAVE_OP(x) 1
+#endif
+
+#define NEED_OP(x) if (!HAVE_OP(x)) goto output_overrun
+
+static noinline int
+LZO_SAFE(lzo1x_1_do_compress)(const unsigned char *in, size_t in_len,
+ unsigned char **out, unsigned char *op_end,
+ size_t *tp, void *wrkmem,
+ signed char *state_offset,
+ const unsigned char bitstream_version)
{
const unsigned char *ip;
unsigned char *op;
@@ -30,8 +41,9 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
const unsigned char * const ip_end = in + in_len - 20;
const unsigned char *ii;
lzo_dict_t * const dict = (lzo_dict_t *) wrkmem;
+ size_t ti = *tp;
- op = out;
+ op = *out;
ip = in;
ii = ip;
ip += ti < 4 ? 4 - ti : 0;
@@ -118,25 +130,32 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
if (t != 0) {
if (t <= 3) {
op[*state_offset] |= t;
+ NEED_OP(4);
COPY4(op, ii);
op += t;
} else if (t <= 16) {
+ NEED_OP(17);
*op++ = (t - 3);
COPY8(op, ii);
COPY8(op + 8, ii + 8);
op += t;
} else {
if (t <= 18) {
+ NEED_OP(1);
*op++ = (t - 3);
} else {
size_t tt = t - 18;
+ NEED_OP(1);
*op++ = 0;
while (unlikely(tt > 255)) {
tt -= 255;
+ NEED_OP(1);
*op++ = 0;
}
+ NEED_OP(1);
*op++ = tt;
}
+ NEED_OP(t);
do {
COPY8(op, ii);
COPY8(op + 8, ii + 8);
@@ -153,6 +172,7 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
if (unlikely(run_length)) {
ip += run_length;
run_length -= MIN_ZERO_RUN_LENGTH;
+ NEED_OP(4);
put_unaligned_le32((run_length << 21) | 0xfffc18
| (run_length & 0x7), op);
op += 4;
@@ -245,10 +265,12 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
ip += m_len;
if (m_len <= M2_MAX_LEN && m_off <= M2_MAX_OFFSET) {
m_off -= 1;
+ NEED_OP(2);
*op++ = (((m_len - 1) << 5) | ((m_off & 7) << 2));
*op++ = (m_off >> 3);
} else if (m_off <= M3_MAX_OFFSET) {
m_off -= 1;
+ NEED_OP(1);
if (m_len <= M3_MAX_LEN)
*op++ = (M3_MARKER | (m_len - 2));
else {
@@ -256,14 +278,18 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
*op++ = M3_MARKER | 0;
while (unlikely(m_len > 255)) {
m_len -= 255;
+ NEED_OP(1);
*op++ = 0;
}
+ NEED_OP(1);
*op++ = (m_len);
}
+ NEED_OP(2);
*op++ = (m_off << 2);
*op++ = (m_off >> 6);
} else {
m_off -= 0x4000;
+ NEED_OP(1);
if (m_len <= M4_MAX_LEN)
*op++ = (M4_MARKER | ((m_off >> 11) & 8)
| (m_len - 2));
@@ -284,11 +310,14 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
m_len -= M4_MAX_LEN;
*op++ = (M4_MARKER | ((m_off >> 11) & 8));
while (unlikely(m_len > 255)) {
+ NEED_OP(1);
m_len -= 255;
*op++ = 0;
}
+ NEED_OP(1);
*op++ = (m_len);
}
+ NEED_OP(2);
*op++ = (m_off << 2);
*op++ = (m_off >> 6);
}
@@ -297,14 +326,20 @@ lzo1x_1_do_compress(const unsigned char *in, size_t in_len,
ii = ip;
goto next;
}
- *out_len = op - out;
- return in_end - (ii - ti);
+ *out = op;
+ *tp = in_end - (ii - ti);
+ return LZO_E_OK;
+
+output_overrun:
+ return LZO_E_OUTPUT_OVERRUN;
}
-static int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
- unsigned char *out, size_t *out_len,
- void *wrkmem, const unsigned char bitstream_version)
+static int LZO_SAFE(lzogeneric1x_1_compress)(
+ const unsigned char *in, size_t in_len,
+ unsigned char *out, size_t *out_len,
+ void *wrkmem, const unsigned char bitstream_version)
{
+ unsigned char * const op_end = out + *out_len;
const unsigned char *ip = in;
unsigned char *op = out;
unsigned char *data_start;
@@ -328,14 +363,18 @@ static int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
while (l > 20) {
size_t ll = l <= (m4_max_offset + 1) ? l : (m4_max_offset + 1);
uintptr_t ll_end = (uintptr_t) ip + ll;
+ int err;
+
if ((ll_end + ((t + ll) >> 5)) <= ll_end)
break;
BUILD_BUG_ON(D_SIZE * sizeof(lzo_dict_t) > LZO1X_1_MEM_COMPRESS);
memset(wrkmem, 0, D_SIZE * sizeof(lzo_dict_t));
- t = lzo1x_1_do_compress(ip, ll, op, out_len, t, wrkmem,
- &state_offset, bitstream_version);
+ err = LZO_SAFE(lzo1x_1_do_compress)(
+ ip, ll, &op, op_end, &t, wrkmem,
+ &state_offset, bitstream_version);
+ if (err != LZO_E_OK)
+ return err;
ip += ll;
- op += *out_len;
l -= ll;
}
t += l;
@@ -344,20 +383,26 @@ static int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
const unsigned char *ii = in + in_len - t;
if (op == data_start && t <= 238) {
+ NEED_OP(1);
*op++ = (17 + t);
} else if (t <= 3) {
op[state_offset] |= t;
} else if (t <= 18) {
+ NEED_OP(1);
*op++ = (t - 3);
} else {
size_t tt = t - 18;
+ NEED_OP(1);
*op++ = 0;
while (tt > 255) {
tt -= 255;
+ NEED_OP(1);
*op++ = 0;
}
+ NEED_OP(1);
*op++ = tt;
}
+ NEED_OP(t);
if (t >= 16) do {
COPY8(op, ii);
COPY8(op + 8, ii + 8);
@@ -370,31 +415,38 @@ static int lzogeneric1x_1_compress(const unsigned char *in, size_t in_len,
} while (--t > 0);
}
+ NEED_OP(3);
*op++ = M4_MARKER | 1;
*op++ = 0;
*op++ = 0;
*out_len = op - out;
return LZO_E_OK;
+
+output_overrun:
+ return LZO_E_OUTPUT_OVERRUN;
}
-int lzo1x_1_compress(const unsigned char *in, size_t in_len,
- unsigned char *out, size_t *out_len,
- void *wrkmem)
+int LZO_SAFE(lzo1x_1_compress)(const unsigned char *in, size_t in_len,
+ unsigned char *out, size_t *out_len,
+ void *wrkmem)
{
- return lzogeneric1x_1_compress(in, in_len, out, out_len, wrkmem, 0);
+ return LZO_SAFE(lzogeneric1x_1_compress)(
+ in, in_len, out, out_len, wrkmem, 0);
}
-int lzorle1x_1_compress(const unsigned char *in, size_t in_len,
- unsigned char *out, size_t *out_len,
- void *wrkmem)
+int LZO_SAFE(lzorle1x_1_compress)(const unsigned char *in, size_t in_len,
+ unsigned char *out, size_t *out_len,
+ void *wrkmem)
{
- return lzogeneric1x_1_compress(in, in_len, out, out_len,
- wrkmem, LZO_VERSION);
+ return LZO_SAFE(lzogeneric1x_1_compress)(
+ in, in_len, out, out_len, wrkmem, LZO_VERSION);
}
-EXPORT_SYMBOL_GPL(lzo1x_1_compress);
-EXPORT_SYMBOL_GPL(lzorle1x_1_compress);
+EXPORT_SYMBOL_GPL(LZO_SAFE(lzo1x_1_compress));
+EXPORT_SYMBOL_GPL(LZO_SAFE(lzorle1x_1_compress));
+#ifndef LZO_UNSAFE
MODULE_LICENSE("GPL");
MODULE_DESCRIPTION("LZO1X-1 Compressor");
+#endif
diff --git a/lib/lzo/lzo1x_compress_safe.c b/lib/lzo/lzo1x_compress_safe.c
new file mode 100644
index 0000000000000..371c9f8494928
--- /dev/null
+++ b/lib/lzo/lzo1x_compress_safe.c
@@ -0,0 +1,18 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * LZO1X Compressor from LZO
+ *
+ * Copyright (C) 1996-2012 Markus F.X.J. Oberhumer <markus@oberhumer.com>
+ *
+ * The full LZO package can be found at:
+ * http://www.oberhumer.com/opensource/lzo/
+ *
+ * Changed for Linux kernel use by:
+ * Nitin Gupta <nitingupta910@gmail.com>
+ * Richard Purdie <rpurdie@openedhand.com>
+ */
+
+#define LZO_SAFE(name) name##_safe
+#define HAVE_OP(x) ((size_t)(op_end - op) >= (size_t)(x))
+
+#include "lzo1x_compress.c"
--
2.39.5
next prev parent reply other threads:[~2025-05-05 23:15 UTC|newest]
Thread overview: 155+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-05 23:10 [PATCH AUTOSEL 5.15 001/153] kconfig: merge_config: use an empty file as initfile Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 002/153] NFSv4: Check for delegation validity in nfs_start_delegation_return_locked() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 003/153] tracing: Mark binary printing functions with __printf() attribute Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 004/153] mailbox: use error ret code of of_parse_phandle_with_args() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 005/153] fbdev: fsl-diu-fb: add missing device_remove_file() Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 006/153] fbcon: Use correct erase colour for clearing in fbcon Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 007/153] fbdev: core: tileblit: Implement missing margin clearing for tileblit Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 008/153] NFSv4: Treat ENETUNREACH errors as fatal for state recovery Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 009/153] SUNRPC: rpc_clnt_set_transport() must not change the autobind setting Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 010/153] SUNRPC: rpcbind should never reset the port to the value '0' Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 011/153] thermal/drivers/qoriq: Power down TMU on system suspend Sasha Levin
2025-05-05 23:10 ` [PATCH AUTOSEL 5.15 012/153] exit: fix the usage of delay_group_leader->exit_code in do_notify_parent() and pidfs_exit() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 013/153] dql: Fix dql->limit value when reset Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 014/153] lockdep: Fix wait context check on softirq for PREEMPT_RT Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 015/153] PCI: dwc: ep: Ensure proper iteration over outbound map windows Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 016/153] tools/build: Don't pass test log files to linker Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 017/153] pNFS/flexfiles: Report ENETDOWN as a connection error Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 018/153] PCI: vmd: Disable MSI remapping bypass under Xen Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 019/153] libnvdimm/labels: Fix divide error in nd_label_data_init() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 020/153] mmc: host: Wait for Vdd to settle on card power off Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 021/153] wifi: mt76: only mark tx-status-failed frames as ACKed on mt76x0/2 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 022/153] i2c: qup: Vote for interconnect bandwidth to DRAM Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 023/153] i2c: pxa: fix call balance of i2c->clk handling routines Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 024/153] btrfs: make btrfs_discard_workfn() block_group ref explicit Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 025/153] btrfs: avoid linker error in btrfs_find_create_tree_block() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 026/153] btrfs: get zone unusable bytes while holding lock at btrfs_reclaim_bgs_work() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 027/153] btrfs: send: return -ENAMETOOLONG when attempting a path that is too long Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 028/153] i3c: master: svc: Fix missing STOP for master request Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 029/153] dlm: make tcp still work in multi-link env Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 030/153] clocksource/drivers/timer-riscv: Stop stimecmp when cpu hotplug Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 031/153] um: Store full CSGSFS and SS register from mcontext Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 032/153] um: Update min_low_pfn to match changes in uml_reserved Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 033/153] ext4: reorder capability check last Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 034/153] scsi: st: Tighten the page format heuristics with MODE SELECT Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 035/153] scsi: st: ERASE does not change tape location Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 036/153] vfio/pci: Handle INTx IRQ_NOTCONNECTED Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 037/153] tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 038/153] rtc: rv3032: fix EERD location Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 039/153] ASoC: mediatek: mt6359: Add stub for mt6359_accdet_enable_jack_detect Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 040/153] kbuild: fix argument parsing in scripts/config Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 041/153] crypto: octeontx2 - suppress auth failure screaming due to negative tests Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 042/153] dm: restrict dm device size to 2^63-512 bytes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 043/153] xen: Add support for XenServer 6.1 platform device Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 044/153] f2fs: defer readonly check vs norecovery Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 045/153] RDMA/uverbs: Propagate errors from rdma_lookup_get_uobject() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 046/153] posix-timers: Add cond_resched() to posix_timer_add() search loop Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 047/153] timer_list: Don't use %pK through printk() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 048/153] netfilter: conntrack: Bound nf_conntrack sysctl writes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 049/153] arm64/mm: Check PUD_TYPE_TABLE in pud_bad() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 050/153] mmc: sdhci: Disable SD card clock before changing parameters Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 051/153] ipv6: save dontfrag in cork Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 052/153] auxdisplay: charlcd: Partially revert "Move hwidth and bwidth to struct hd44780_common" Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 053/153] ASoC: qcom: sm8250: explicitly set format in sm8250_be_hw_params_fixup() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 054/153] cpufreq: tegra186: Share policy per cluster Sasha Levin
2025-05-05 23:11 ` Sasha Levin [this message]
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 056/153] arm64: tegra: p2597: Fix gpio for vdd-1v8-dis regulator Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 057/153] powerpc/prom_init: Fixup missing #size-cells on PowerBook6,7 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 058/153] tcp: bring back NUMA dispersion in inet_ehash_locks_alloc() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 059/153] rtc: ds1307: stop disabling alarms on probe Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 060/153] ieee802154: ca8210: Use proper setters and getters for bitwise types Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 061/153] ARM: tegra: Switch DSI-B clock parent to PLLD on Tegra114 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 062/153] media: c8sectpfe: Call of_node_put(i2c_bus) only once in c8sectpfe_probe() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 063/153] dm cache: prevent BUG_ON by blocking retries on failed device resumes Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 064/153] orangefs: Do not truncate file size Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 065/153] remoteproc: qcom_wcnss: Handle platforms with only single power domain Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 066/153] drm/amdgpu: Do not program AGP BAR regs under SRIOV in gfxhub_v1_0.c Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 067/153] media: cx231xx: set device_caps for 417 Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 068/153] pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 069/153] net: ethernet: ti: cpsw_new: populate netdev of_node Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 070/153] net: pktgen: fix mpls maximum labels list parsing Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 071/153] ipv4: fib: Move fib_valid_key_len() to rtm_to_fib_config() Sasha Levin
2025-05-05 23:11 ` [PATCH AUTOSEL 5.15 072/153] media: uvcvideo: Add sanity check to uvc_ioctl_xu_ctrl_map Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 073/153] clk: imx8mp: inform CCF of maximum frequency of clocks Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 074/153] x86/bugs: Make spectre user default depend on MITIGATION_SPECTRE_V2 Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 075/153] hwmon: (gpio-fan) Add missing mutex locks Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 076/153] ARM: at91: pm: fix at91_suspend_finish for ZQ calibration Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 077/153] drm/mediatek: mtk_dpi: Add checks for reg_h_fre_con existence Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 078/153] fpga: altera-cvp: Increase credit timeout Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 079/153] PCI: brcmstb: Expand inbound window size up to 64GB Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 080/153] PCI: brcmstb: Add a softdep to MIP MSI-X driver Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 081/153] firmware: arm_ffa: Set dma_mask for ffa devices Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 082/153] net/mlx5: Avoid report two health errors on same syndrome Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 083/153] selftests/net: have `gro.sh -t` return a correct exit code Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 084/153] drm/amdkfd: KFD release_work possible circular locking Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 085/153] net: xgene-v2: remove incorrect ACPI_PTR annotation Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 086/153] bonding: report duplicate MAC address in all situations Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 087/153] soc: ti: k3-socinfo: Do not use syscon helper to build regmap Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 088/153] x86/build: Fix broken copy command in genimage.sh when making isoimage Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 089/153] drm/amd/display: handle max_downscale_src_width fail check Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 090/153] drm/amd/display: fix dcn4x init failed Sasha Levin
2025-05-06 15:00 ` Alex Deucher
2025-05-20 14:06 ` Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 091/153] x86/nmi: Add an emergency handler in nmi_desc & use it in nmi_shootdown_cpus() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 092/153] cpuidle: menu: Avoid discarding useful information Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 093/153] libbpf: Fix out-of-bound read Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 094/153] x86/kaslr: Reduce KASLR entropy on most x86 systems Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 095/153] MIPS: Use arch specific syscall name match function Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 096/153] MIPS: pm-cps: Use per-CPU variables as per-CPU, not per-core Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 097/153] clocksource: mips-gic-timer: Enable counter when CPUs start Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 098/153] scsi: mpt3sas: Send a diag reset if target reset fails Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 099/153] wifi: rtw88: Fix rtw_init_vht_cap() for RTL8814AU Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 100/153] wifi: rtw88: Fix rtw_init_ht_cap() " Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 101/153] wifi: rtw88: Fix rtw_desc_to_mcsrate() to handle MCS16-31 Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 102/153] net: pktgen: fix access outside of user given buffer in pktgen_thread_write() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 103/153] EDAC/ie31200: work around false positive build warning Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 104/153] bpf: Prevent unsafe access to the sock fields in the BPF timestamping callback Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 105/153] RDMA/core: Fix best page size finding when it can cross SG entries Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 106/153] can: c_can: Use of_property_present() to test existence of DT property Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 107/153] eth: mlx4: don't try to complete XDP frames in netpoll Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 108/153] PCI: Fix old_size lower bound in calculate_iosize() too Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 109/153] ACPI: HED: Always initialize before evged Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 110/153] net/mlx5: Modify LSB bitmask in temperature event to include only the first bit Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 111/153] net/mlx5: Apply rate-limiting to high temperature warning Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 112/153] ASoC: ops: Enforce platform maximum on initial value Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 113/153] ASoC: tas2764: Power up/down amp on mute ops Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 114/153] ASoC: soc-dai: check return value at snd_soc_dai_set_tdm_slot() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 115/153] pinctrl: devicetree: do not goto err when probing hogs in pinctrl_dt_to_map Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 116/153] smack: recognize ipv4 CIPSO w/o categories Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 117/153] media: v4l: Memset argument to 0 before calling get_mbus_config pad op Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 118/153] libbpf: fix LDX/STX/ST CO-RE relocation size adjustment logic Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 119/153] net/mlx4_core: Avoid impossible mlx4_db_alloc() order value Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 120/153] phy: core: don't require set_mode() callback for phy_get_mode() to work Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 121/153] drm/amdgpu: reset psp->cmd to NULL after releasing the buffer Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 122/153] drm/amd/display: Initial psr_version with correct setting Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 123/153] net/mlx5: Extend Ethtool loopback selftest to support non-linear SKB Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 124/153] net/mlx5e: set the tx_queue_len for pfifo_fast Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 125/153] net/mlx5e: reduce rep rxq depth to 256 for ECPF Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 126/153] wifi: mac80211: don't unconditionally call drv_mgd_complete_tx() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 127/153] wifi: mac80211: remove misplaced drv_mgd_complete_tx() call Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 128/153] arch/powerpc/perf: Check the instruction type before creating sample with perf_mem_data_src Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 129/153] ip: fib_rules: Fetch net from fib_rule in fib[46]_rule_configure() Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 130/153] r8152: add vendor/device ID pair for Dell Alienware AW1022z Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 131/153] wifi: rtw88: Fix download_firmware_validate() for RTL8814AU Sasha Levin
2025-05-05 23:12 ` [PATCH AUTOSEL 5.15 132/153] clk: qcom: camcc-sm8250: Use clk_rcg2_shared_ops for some RCGs Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 133/153] exit: change the release_task() paths to call flush_sigqueue() lockless Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 134/153] hwmon: (xgene-hwmon) use appropriate type for the latency value Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 135/153] media: qcom: camss: csid: Only add TPG v4l2 ctrl if TPG hardware is available Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 136/153] vxlan: Annotate FDB data races Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 137/153] r8169: don't scan PHY addresses > 0 Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 138/153] net-sysfs: prevent uncleared queues from being re-added Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 139/153] rcu: handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 140/153] rcu: fix header guard for rcu_all_qs() Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 141/153] net/mana: fix warning in the writer of client oob Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 142/153] scsi: lpfc: Handle duplicate D_IDs in ndlp search-by D_ID routine Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 143/153] scsi: st: Restore some drive settings after reset Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 144/153] HID: usbkbd: Fix the bit shift number for LED_KANA Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 145/153] drm/ast: Find VBIOS mode from regular display size Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 146/153] bpftool: Fix readlink usage in get_fd_type Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 147/153] perf/amd/ibs: Fix perf_ibs_op.cnt_mask for CurCnt Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 148/153] wifi: rtw88: Don't use static local variable in rtw8822b_set_tx_power_index_by_rate Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 149/153] spi: zynqmp-gqspi: Always acknowledge interrupts Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 150/153] regulator: ad5398: Add device tree support Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 151/153] wifi: ath9k: return by of_get_mac_address Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 152/153] drm/atomic: clarify the rules around drm_atomic_state->allow_modeset Sasha Levin
2025-05-05 23:13 ` [PATCH AUTOSEL 5.15 153/153] drm: Add valid clones check Sasha Levin
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=20250505231320.2695319-55-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=davem@davemloft.net \
--cc=dsterba@suse.com \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=viro@zeniv.linux.org.uk \
/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