--- /dev/null
+From 44b3834b2eed595af07021b1c64e6f9bc396398b Mon Sep 17 00:00:00 2001
+From: James Morse <james.morse@arm.com>
+Date: Thu, 14 Jul 2022 17:15:23 +0100
+Subject: arm64: errata: Remove AES hwcap for COMPAT tasks
+
+From: James Morse <james.morse@arm.com>
+
+commit 44b3834b2eed595af07021b1c64e6f9bc396398b upstream.
+
+Cortex-A57 and Cortex-A72 have an erratum where an interrupt that
+occurs between a pair of AES instructions in aarch32 mode may corrupt
+the ELR. The task will subsequently produce the wrong AES result.
+
+The AES instructions are part of the cryptographic extensions, which are
+optional. User-space software will detect the support for these
+instructions from the hwcaps. If the platform doesn't support these
+instructions a software implementation should be used.
+
+Remove the hwcap bits on affected parts to indicate user-space should
+not use the AES instructions.
+
+Acked-by: Ard Biesheuvel <ardb@kernel.org>
+Signed-off-by: James Morse <james.morse@arm.com>
+Link: https://lore.kernel.org/r/20220714161523.279570-3-james.morse@arm.com
+Signed-off-by: Will Deacon <will@kernel.org>
+[florian: removed arch/arm64/tools/cpucaps and fixup cpufeature.c]
+Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Documentation/arm64/silicon-errata.rst | 4 ++++
+ arch/arm64/Kconfig | 16 ++++++++++++++++
+ arch/arm64/include/asm/cpucaps.h | 3 ++-
+ arch/arm64/kernel/cpu_errata.c | 16 ++++++++++++++++
+ arch/arm64/kernel/cpufeature.c | 13 ++++++++++++-
+ 5 files changed, 50 insertions(+), 2 deletions(-)
+
+--- a/Documentation/arm64/silicon-errata.rst
++++ b/Documentation/arm64/silicon-errata.rst
+@@ -76,10 +76,14 @@ stable kernels.
+ +----------------+-----------------+-----------------+-----------------------------+
+ | ARM | Cortex-A57 | #1319537 | ARM64_ERRATUM_1319367 |
+ +----------------+-----------------+-----------------+-----------------------------+
++| ARM | Cortex-A57 | #1742098 | ARM64_ERRATUM_1742098 |
+++----------------+-----------------+-----------------+-----------------------------+
+ | ARM | Cortex-A72 | #853709 | N/A |
+ +----------------+-----------------+-----------------+-----------------------------+
+ | ARM | Cortex-A72 | #1319367 | ARM64_ERRATUM_1319367 |
+ +----------------+-----------------+-----------------+-----------------------------+
++| ARM | Cortex-A72 | #1655431 | ARM64_ERRATUM_1742098 |
+++----------------+-----------------+-----------------+-----------------------------+
+ | ARM | Cortex-A73 | #858921 | ARM64_ERRATUM_858921 |
+ +----------------+-----------------+-----------------+-----------------------------+
+ | ARM | Cortex-A76 | #1188873,1418040| ARM64_ERRATUM_1418040 |
+--- a/arch/arm64/Kconfig
++++ b/arch/arm64/Kconfig
+@@ -481,6 +481,22 @@ config ARM64_ERRATUM_834220
+
+ If unsure, say Y.
+
++config ARM64_ERRATUM_1742098
++ bool "Cortex-A57/A72: 1742098: ELR recorded incorrectly on interrupt taken between cryptographic instructions in a sequence"
++ depends on COMPAT
++ default y
++ help
++ This option removes the AES hwcap for aarch32 user-space to
++ workaround erratum 1742098 on Cortex-A57 and Cortex-A72.
++
++ Affected parts may corrupt the AES state if an interrupt is
++ taken between a pair of AES instructions. These instructions
++ are only present if the cryptography extensions are present.
++ All software should have a fallback implementation for CPUs
++ that don't implement the cryptography extensions.
++
++ If unsure, say Y.
++
+ config ARM64_ERRATUM_845719
+ bool "Cortex-A53: 845719: a load might read incorrect data"
+ depends on COMPAT
+--- a/arch/arm64/include/asm/cpucaps.h
++++ b/arch/arm64/include/asm/cpucaps.h
+@@ -68,7 +68,8 @@
+ #define ARM64_WORKAROUND_1508412 58
+ #define ARM64_SPECTRE_BHB 59
+ #define ARM64_WORKAROUND_2457168 60
++#define ARM64_WORKAROUND_1742098 61
+
+-#define ARM64_NCAPS 61
++#define ARM64_NCAPS 62
+
+ #endif /* __ASM_CPUCAPS_H */
+--- a/arch/arm64/kernel/cpu_errata.c
++++ b/arch/arm64/kernel/cpu_errata.c
+@@ -356,6 +356,14 @@ static const struct midr_range erratum_1
+ };
+ #endif
+
++#ifdef CONFIG_ARM64_ERRATUM_1742098
++static struct midr_range broken_aarch32_aes[] = {
++ MIDR_RANGE(MIDR_CORTEX_A57, 0, 1, 0xf, 0xf),
++ MIDR_ALL_VERSIONS(MIDR_CORTEX_A72),
++ {},
++};
++#endif
++
+ const struct arm64_cpu_capabilities arm64_errata[] = {
+ #ifdef CONFIG_ARM64_WORKAROUND_CLEAN_CACHE
+ {
+@@ -555,6 +563,14 @@ const struct arm64_cpu_capabilities arm6
+ CAP_MIDR_RANGE(MIDR_CORTEX_A510, 0, 0, 1, 1)
+ },
+ #endif
++#ifdef CONFIG_ARM64_ERRATUM_1742098
++ {
++ .desc = "ARM erratum 1742098",
++ .capability = ARM64_WORKAROUND_1742098,
++ CAP_MIDR_RANGE_LIST(broken_aarch32_aes),
++ .type = ARM64_CPUCAP_LOCAL_CPU_ERRATUM,
++ },
++#endif
+ {
+ }
+ };
+--- a/arch/arm64/kernel/cpufeature.c
++++ b/arch/arm64/kernel/cpufeature.c
+@@ -76,6 +76,7 @@
+ #include <asm/cpufeature.h>
+ #include <asm/cpu_ops.h>
+ #include <asm/fpsimd.h>
++#include <asm/hwcap.h>
+ #include <asm/mmu_context.h>
+ #include <asm/mte.h>
+ #include <asm/processor.h>
+@@ -1730,6 +1731,14 @@ static void cpu_enable_mte(struct arm64_
+ }
+ #endif /* CONFIG_ARM64_MTE */
+
++static void elf_hwcap_fixup(void)
++{
++#ifdef CONFIG_ARM64_ERRATUM_1742098
++ if (cpus_have_const_cap(ARM64_WORKAROUND_1742098))
++ compat_elf_hwcap2 &= ~COMPAT_HWCAP2_AES;
++#endif /* ARM64_ERRATUM_1742098 */
++}
++
+ /* Internal helper functions to match cpu capability type */
+ static bool
+ cpucap_late_cpu_optional(const struct arm64_cpu_capabilities *cap)
+@@ -2735,8 +2744,10 @@ void __init setup_cpu_features(void)
+ setup_system_capabilities();
+ setup_elf_hwcaps(arm64_elf_hwcaps);
+
+- if (system_supports_32bit_el0())
++ if (system_supports_32bit_el0()) {
+ setup_elf_hwcaps(compat_elf_hwcaps);
++ elf_hwcap_fixup();
++ }
+
+ if (system_uses_ttbr0_pan())
+ pr_info("emulated: Privileged Access Never (PAN) using TTBR0_EL1 switching\n");
--- /dev/null
+From 8c5035dfbb9475b67c82b3fdb7351236525bf52b Mon Sep 17 00:00:00 2001
+From: Yu Kuai <yukuai3@huawei.com>
+Date: Tue, 13 Sep 2022 18:57:49 +0800
+Subject: blk-wbt: call rq_qos_add() after wb_normal is initialized
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Yu Kuai <yukuai3@huawei.com>
+
+commit 8c5035dfbb9475b67c82b3fdb7351236525bf52b upstream.
+
+Our test found a problem that wbt inflight counter is negative, which
+will cause io hang(noted that this problem doesn't exist in mainline):
+
+t1: device create t2: issue io
+add_disk
+ blk_register_queue
+ wbt_enable_default
+ wbt_init
+ rq_qos_add
+ // wb_normal is still 0
+ /*
+ * in mainline, disk can't be opened before
+ * bdev_add(), however, in old kernels, disk
+ * can be opened before blk_register_queue().
+ */
+ blkdev_issue_flush
+ // disk size is 0, however, it's not checked
+ submit_bio_wait
+ submit_bio
+ blk_mq_submit_bio
+ rq_qos_throttle
+ wbt_wait
+ bio_to_wbt_flags
+ rwb_enabled
+ // wb_normal is 0, inflight is not increased
+
+ wbt_queue_depth_changed(&rwb->rqos);
+ wbt_update_limits
+ // wb_normal is initialized
+ rq_qos_track
+ wbt_track
+ rq->wbt_flags |= bio_to_wbt_flags(rwb, bio);
+ // wb_normal is not 0,wbt_flags will be set
+t3: io completion
+blk_mq_free_request
+ rq_qos_done
+ wbt_done
+ wbt_is_tracked
+ // return true
+ __wbt_done
+ wbt_rqw_done
+ atomic_dec_return(&rqw->inflight);
+ // inflight is decreased
+
+commit 8235b5c1e8c1 ("block: call bdev_add later in device_add_disk") can
+avoid this problem, however it's better to fix this problem in wbt:
+
+1) Lower kernel can't backport this patch due to lots of refactor.
+2) Root cause is that wbt call rq_qos_add() before wb_normal is
+initialized.
+
+Fixes: e34cbd307477 ("blk-wbt: add general throttling mechanism")
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Yu Kuai <yukuai3@huawei.com>
+Link: https://lore.kernel.org/r/20220913105749.3086243-1-yukuai1@huaweicloud.com
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ block/blk-wbt.c | 9 ++++-----
+ 1 file changed, 4 insertions(+), 5 deletions(-)
+
+--- a/block/blk-wbt.c
++++ b/block/blk-wbt.c
+@@ -840,6 +840,10 @@ int wbt_init(struct request_queue *q)
+ rwb->enable_state = WBT_STATE_ON_DEFAULT;
+ rwb->wc = 1;
+ rwb->rq_depth.default_depth = RWB_DEF_DEPTH;
++ rwb->min_lat_nsec = wbt_default_latency_nsec(q);
++
++ wbt_queue_depth_changed(&rwb->rqos);
++ wbt_set_write_cache(q, test_bit(QUEUE_FLAG_WC, &q->queue_flags));
+
+ /*
+ * Assign rwb and add the stats callback.
+@@ -847,10 +851,5 @@ int wbt_init(struct request_queue *q)
+ rq_qos_add(q, &rwb->rqos);
+ blk_stat_add_callback(q, rwb->cb);
+
+- rwb->min_lat_nsec = wbt_default_latency_nsec(q);
+-
+- wbt_queue_depth_changed(&rwb->rqos);
+- wbt_set_write_cache(q, test_bit(QUEUE_FLAG_WC, &q->queue_flags));
+-
+ return 0;
+ }
--- /dev/null
+From 5a20d073ec54a72d9a732fa44bfe14954eb6332f Mon Sep 17 00:00:00 2001
+From: Lei Chen <lennychen@tencent.com>
+Date: Mon, 30 Nov 2020 10:20:52 +0800
+Subject: block: wbt: Remove unnecessary invoking of wbt_update_limits in wbt_init
+
+From: Lei Chen <lennychen@tencent.com>
+
+commit 5a20d073ec54a72d9a732fa44bfe14954eb6332f upstream.
+
+It's unnecessary to call wbt_update_limits explicitly within wbt_init,
+because it will be called in the following function wbt_queue_depth_changed.
+
+Signed-off-by: Lei Chen <lennychen@tencent.com>
+Signed-off-by: Jens Axboe <axboe@kernel.dk>
+Signed-off-by: Yu Kuai <yukuai3@huawei.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ block/blk-wbt.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/block/blk-wbt.c
++++ b/block/blk-wbt.c
+@@ -840,7 +840,6 @@ int wbt_init(struct request_queue *q)
+ rwb->enable_state = WBT_STATE_ON_DEFAULT;
+ rwb->wc = 1;
+ rwb->rq_depth.default_depth = RWB_DEF_DEPTH;
+- wbt_update_limits(rwb);
+
+ /*
+ * Assign rwb and add the stats callback.
--- /dev/null
+From foo@baz Wed Oct 26 06:44:13 PM CEST 2022
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Wed, 19 Oct 2022 10:56:00 +0200
+Subject: bpf: Generate BTF_KIND_FLOAT when linking vmlinux
+To: stable@vger.kernel.org
+Cc: "Andrii Nakryiko" <andrii@kernel.org>, bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Daniel Borkmann" <daniel@iogearbox.net>, "Martin Rodriguez Reboredo" <yakoyoku@gmail.com>, "Javier Martinez Canillas" <javierm@redhat.com>, "Ilya Leoshkevich" <iii@linux.ibm.com>, "Nathan Chancellor" <nathan@kernel.org>, "Philip Müller" <philm@manjaro.org>
+Message-ID: <20221019085604.1017583-2-jolsa@kernel.org>
+
+From: Ilya Leoshkevich <iii@linux.ibm.com>
+
+commit db16c1fe92d7ba7d39061faef897842baee2c887 upstream.
+
+[backported for dependency only extra_paholeopt variable setup and
+usage, we don't want floats generated in 5.10]
+
+pahole v1.21 supports the --btf_gen_floats flag, which makes it
+generate the information about the floating-point types [1].
+
+Adjust link-vmlinux.sh to pass this flag to pahole in case it's
+supported, which is determined using a simple version check.
+
+[1] https://lore.kernel.org/dwarves/YHRiXNX1JUF2Az0A@kernel.org/
+
+Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Andrii Nakryiko <andrii@kernel.org>
+Link: https://lore.kernel.org/bpf/20210413190043.21918-1-iii@linux.ibm.com
+Signed-off-by: Jiri Olsa <jolsa@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/link-vmlinux.sh | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/scripts/link-vmlinux.sh
++++ b/scripts/link-vmlinux.sh
+@@ -146,6 +146,7 @@ vmlinux_link()
+ gen_btf()
+ {
+ local pahole_ver
++ local extra_paholeopt=
+
+ if ! [ -x "$(command -v ${PAHOLE})" ]; then
+ echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available"
+@@ -161,7 +162,7 @@ gen_btf()
+ vmlinux_link ${1}
+
+ info "BTF" ${2}
+- LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${1}
++ LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${extra_paholeopt} ${1}
+
+ # Create ${2} which contains just .BTF section but no symbols. Add
+ # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all
--- /dev/null
+From foo@baz Wed Oct 26 06:44:13 PM CEST 2022
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Wed, 19 Oct 2022 10:56:04 +0200
+Subject: kbuild: Add skip_encoding_btf_enum64 option to pahole
+To: stable@vger.kernel.org
+Cc: bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Daniel Borkmann" <daniel@iogearbox.net>, "Martin Rodriguez Reboredo" <yakoyoku@gmail.com>, "Andrii Nakryiko" <andrii@kernel.org>, "Javier Martinez Canillas" <javierm@redhat.com>, "Ilya Leoshkevich" <iii@linux.ibm.com>, "Nathan Chancellor" <nathan@kernel.org>, "Philip Müller" <philm@manjaro.org>
+Message-ID: <20221019085604.1017583-6-jolsa@kernel.org>
+
+From: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
+
+New pahole (version 1.24) generates by default new BTF_KIND_ENUM64 BTF tag,
+which is not supported by stable kernel.
+
+As a result the kernel with CONFIG_DEBUG_INFO_BTF option will fail to
+compile with following error:
+
+ BTFIDS vmlinux
+FAILED: load BTF from vmlinux: Invalid argument
+
+New pahole provides --skip_encoding_btf_enum64 option to skip BTF_KIND_ENUM64
+generation and produce BTF supported by stable kernel.
+
+Adding this option to scripts/pahole-flags.sh.
+
+This change does not have equivalent commit in linus tree, because linus tree
+has support for BTF_KIND_ENUM64 tag, so it does not need to be disabled.
+
+Signed-off-by: Martin Rodriguez Reboredo <yakoyoku@gmail.com>
+Signed-off-by: Jiri Olsa <jolsa@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/pahole-flags.sh | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/scripts/pahole-flags.sh
++++ b/scripts/pahole-flags.sh
+@@ -14,4 +14,8 @@ if [ "${pahole_ver}" -ge "118" ] && [ "$
+ extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
+ fi
+
++if [ "${pahole_ver}" -ge "124" ]; then
++ extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_enum64"
++fi
++
+ echo ${extra_paholeopt}
--- /dev/null
+From foo@baz Wed Oct 26 06:44:13 PM CEST 2022
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Wed, 19 Oct 2022 10:56:01 +0200
+Subject: kbuild: Quote OBJCOPY var to avoid a pahole call break the build
+To: stable@vger.kernel.org
+Cc: "Andrii Nakryiko" <andrii@kernel.org>, "Arnaldo Carvalho de Melo" <acme@redhat.com>, bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Daniel Borkmann" <daniel@iogearbox.net>, "Martin Rodriguez Reboredo" <yakoyoku@gmail.com>, "Javier Martinez Canillas" <javierm@redhat.com>, "Ilya Leoshkevich" <iii@linux.ibm.com>, "Nathan Chancellor" <nathan@kernel.org>, "Philip Müller" <philm@manjaro.org>
+Message-ID: <20221019085604.1017583-3-jolsa@kernel.org>
+
+From: Javier Martinez Canillas <javierm@redhat.com>
+
+commit ff2e6efda0d5c51b33e2bcc0b0b981ac0a0ef214 upstream.
+
+[backported for dependency, skipped Makefile.modfinal change,
+because module BTF is not supported in 5.10]
+
+The ccache tool can be used to speed up cross-compilation, by calling the
+compiler and binutils through ccache. For example, following should work:
+
+ $ export ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-"
+
+ $ make M=drivers/gpu/drm/rockchip/
+
+but pahole fails to extract the BTF info from DWARF, breaking the build:
+
+ CC [M] drivers/gpu/drm/rockchip//rockchipdrm.mod.o
+ LD [M] drivers/gpu/drm/rockchip//rockchipdrm.ko
+ BTF [M] drivers/gpu/drm/rockchip//rockchipdrm.ko
+ aarch64-linux-gnu-objcopy: invalid option -- 'J'
+ Usage: aarch64-linux-gnu-objcopy [option(s)] in-file [out-file]
+ Copies a binary file, possibly transforming it in the process
+ ...
+ make[1]: *** [scripts/Makefile.modpost:156: __modpost] Error 2
+ make: *** [Makefile:1866: modules] Error 2
+
+this fails because OBJCOPY is set to "ccache aarch64-linux-gnu-copy" and
+later pahole is executed with the following command line:
+
+ LLVM_OBJCOPY=$(OBJCOPY) $(PAHOLE) -J --btf_base vmlinux $@
+
+which gets expanded to:
+
+ LLVM_OBJCOPY=ccache aarch64-linux-gnu-objcopy pahole -J ...
+
+instead of:
+
+ LLVM_OBJCOPY="ccache aarch64-linux-gnu-objcopy" pahole -J ...
+
+Fixes: 5f9ae91f7c0d ("kbuild: Build kernel module BTFs if BTF is enabled and pahole supports it")
+Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+Link: https://lore.kernel.org/bpf/20210526215228.3729875-1-javierm@redhat.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/link-vmlinux.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/scripts/link-vmlinux.sh
++++ b/scripts/link-vmlinux.sh
+@@ -162,7 +162,7 @@ gen_btf()
+ vmlinux_link ${1}
+
+ info "BTF" ${2}
+- LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${extra_paholeopt} ${1}
++ LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1}
+
+ # Create ${2} which contains just .BTF section but no symbols. Add
+ # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all
--- /dev/null
+From foo@baz Wed Oct 26 06:44:13 PM CEST 2022
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Wed, 19 Oct 2022 10:56:02 +0200
+Subject: kbuild: skip per-CPU BTF generation for pahole v1.18-v1.21
+To: stable@vger.kernel.org
+Cc: "Mel Gorman" <mgorman@techsingularity.net>, "Arnaldo Carvalho de Melo" <acme@redhat.com>, "Hao Luo" <haoluo@google.com>, "Michal Suchanek" <msuchanek@suse.de>, bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Daniel Borkmann" <daniel@iogearbox.net>, "Martin Rodriguez Reboredo" <yakoyoku@gmail.com>, "Andrii Nakryiko" <andrii@kernel.org>, "Javier Martinez Canillas" <javierm@redhat.com>, "Ilya Leoshkevich" <iii@linux.ibm.com>, "Nathan Chancellor" <nathan@kernel.org>, "Philip Müller" <philm@manjaro.org>
+Message-ID: <20221019085604.1017583-4-jolsa@kernel.org>
+
+From: Andrii Nakryiko <andrii@kernel.org>
+
+commit a0b8200d06ad6450c179407baa5f0f52f8cfcc97 upstream.
+
+[small context changes due to missing floats support in 5.10]
+
+Commit "mm/page_alloc: convert per-cpu list protection to local_lock" will
+introduce a zero-sized per-CPU variable, which causes pahole to generate
+invalid BTF. Only pahole versions 1.18 through 1.21 are impacted, as
+before 1.18 pahole doesn't know anything about per-CPU variables, and 1.22
+contains the proper fix for the issue.
+
+Luckily, pahole 1.18 got --skip_encoding_btf_vars option disabling BTF
+generation for per-CPU variables in anticipation of some unanticipated
+problems. So use this escape hatch to disable per-CPU var BTF info on
+those problematic pahole versions. Users relying on availability of
+per-CPU var BTFs would need to upgrade to pahole 1.22+, but everyone won't
+notice any regressions.
+
+Link: https://lkml.kernel.org/r/20210530002536.3193829-1-andrii@kernel.org
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Mel Gorman <mgorman@techsingularity.net>
+Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
+Cc: Hao Luo <haoluo@google.com>
+Cc: Michal Suchanek <msuchanek@suse.de>
+Cc: Jiri Olsa <jolsa@kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Jiri Olsa <jolsa@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ scripts/link-vmlinux.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/scripts/link-vmlinux.sh
++++ b/scripts/link-vmlinux.sh
+@@ -161,6 +161,11 @@ gen_btf()
+
+ vmlinux_link ${1}
+
++ if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
++ # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
++ extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
++ fi
++
+ info "BTF" ${2}
+ LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1}
+
--- /dev/null
+From foo@baz Wed Oct 26 06:44:13 PM CEST 2022
+From: Jiri Olsa <jolsa@kernel.org>
+Date: Wed, 19 Oct 2022 10:56:03 +0200
+Subject: kbuild: Unify options for BTF generation for vmlinux and modules
+To: stable@vger.kernel.org
+Cc: "Andrii Nakryiko" <andrii@kernel.org>, bpf@vger.kernel.org, "Arnaldo Carvalho de Melo" <acme@kernel.org>, "Daniel Borkmann" <daniel@iogearbox.net>, "Martin Rodriguez Reboredo" <yakoyoku@gmail.com>, "Javier Martinez Canillas" <javierm@redhat.com>, "Ilya Leoshkevich" <iii@linux.ibm.com>, "Nathan Chancellor" <nathan@kernel.org>, "Philip Müller" <philm@manjaro.org>
+Message-ID: <20221019085604.1017583-5-jolsa@kernel.org>
+
+From: Jiri Olsa <jolsa@redhat.com>
+
+commit 9741e07ece7c247dd65e1aa01e16b683f01c05a8 upstream.
+
+[skipped --btf_gen_floats option in pahole-flags.sh, skipped
+Makefile.modfinal change, because there's no BTF kmod support,
+squashing in 'exit 0' change from merge commit fc02cb2b37fe]
+
+Using new PAHOLE_FLAGS variable to pass extra arguments to
+pahole for both vmlinux and modules BTF data generation.
+
+Adding new scripts/pahole-flags.sh script that detect and
+prints pahole options.
+
+[ fixed issues found by kernel test robot ]
+
+Signed-off-by: Jiri Olsa <jolsa@kernel.org>
+Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
+Acked-by: Andrii Nakryiko <andrii@kernel.org>
+Link: https://lore.kernel.org/bpf/20211029125729.70002-1-jolsa@kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ Makefile | 3 +++
+ scripts/link-vmlinux.sh | 8 +-------
+ scripts/pahole-flags.sh | 17 +++++++++++++++++
+ 3 files changed, 21 insertions(+), 7 deletions(-)
+ create mode 100755 scripts/pahole-flags.sh
+
+--- a/Makefile
++++ b/Makefile
+@@ -465,6 +465,8 @@ LZ4 = lz4c
+ XZ = xz
+ ZSTD = zstd
+
++PAHOLE_FLAGS = $(shell PAHOLE=$(PAHOLE) $(srctree)/scripts/pahole-flags.sh)
++
+ CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
+ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
+ NOSTDINC_FLAGS :=
+@@ -518,6 +520,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAG
+ export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
+ export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
+ export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
++export PAHOLE_FLAGS
+
+ # Files to ignore in find ... statements
+
+--- a/scripts/link-vmlinux.sh
++++ b/scripts/link-vmlinux.sh
+@@ -146,7 +146,6 @@ vmlinux_link()
+ gen_btf()
+ {
+ local pahole_ver
+- local extra_paholeopt=
+
+ if ! [ -x "$(command -v ${PAHOLE})" ]; then
+ echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available"
+@@ -161,13 +160,8 @@ gen_btf()
+
+ vmlinux_link ${1}
+
+- if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
+- # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
+- extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
+- fi
+-
+ info "BTF" ${2}
+- LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1}
++ LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${PAHOLE_FLAGS} ${1}
+
+ # Create ${2} which contains just .BTF section but no symbols. Add
+ # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all
+--- /dev/null
++++ b/scripts/pahole-flags.sh
+@@ -0,0 +1,17 @@
++#!/bin/sh
++# SPDX-License-Identifier: GPL-2.0
++
++extra_paholeopt=
++
++if ! [ -x "$(command -v ${PAHOLE})" ]; then
++ exit 0
++fi
++
++pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/')
++
++if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then
++ # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars
++ extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars"
++fi
++
++echo ${extra_paholeopt}
--- /dev/null
+From 1bd3a383075c64d638e65d263c9267b08ee7733c Mon Sep 17 00:00:00 2001
+From: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
+Date: Wed, 24 Aug 2022 21:14:36 +0200
+Subject: r8152: add PID for the Lenovo OneLink+ Dock
+
+From: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
+
+commit 1bd3a383075c64d638e65d263c9267b08ee7733c upstream.
+
+The Lenovo OneLink+ Dock contains an RTL8153 controller that behaves as
+a broken CDC device by default. Add the custom Lenovo PID to the r8152
+driver to support it properly.
+
+Also, systems compatible with this dock provide a BIOS option to enable
+MAC address passthrough (as per Lenovo document "ThinkPad Docking
+Solutions 2017"). Add the custom PID to the MAC passthrough list too.
+
+Tested on a ThinkPad 13 1st gen with the expected results:
+
+passthrough disabled: Invalid header when reading pass-thru MAC addr
+passthrough enabled: Using pass-thru MAC addr XX:XX:XX:XX:XX:XX
+
+Signed-off-by: Jean-Francois Le Fillatre <jflf_kernel@gmx.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/net/usb/cdc_ether.c | 7 +++++++
+ drivers/net/usb/r8152.c | 1 +
+ 2 files changed, 8 insertions(+)
+
+--- a/drivers/net/usb/cdc_ether.c
++++ b/drivers/net/usb/cdc_ether.c
+@@ -763,6 +763,13 @@ static const struct usb_device_id produc
+ },
+ #endif
+
++/* Lenovo ThinkPad OneLink+ Dock (based on Realtek RTL8153) */
++{
++ USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3054, USB_CLASS_COMM,
++ USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE),
++ .driver_info = 0,
++},
++
+ /* ThinkPad USB-C Dock (based on Realtek RTL8153) */
+ {
+ USB_DEVICE_AND_INTERFACE_INFO(LENOVO_VENDOR_ID, 0x3062, USB_CLASS_COMM,
+--- a/drivers/net/usb/r8152.c
++++ b/drivers/net/usb/r8152.c
+@@ -6870,6 +6870,7 @@ static const struct usb_device_id rtl815
+ {REALTEK_USB_DEVICE(VENDOR_ID_MICROSOFT, 0x0927)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_SAMSUNG, 0xa101)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x304f)},
++ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3054)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3062)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3069)},
+ {REALTEK_USB_DEVICE(VENDOR_ID_LENOVO, 0x3082)},
kvm-arm64-vgic-fix-exit-condition-in-scan_its_table.patch
media-mceusb-set-timeout-to-at-least-timeout-provided.patch
media-venus-dec-handle-the-case-where-find_format-fails.patch
+bpf-generate-btf_kind_float-when-linking-vmlinux.patch
+kbuild-quote-objcopy-var-to-avoid-a-pahole-call-break-the-build.patch
+kbuild-skip-per-cpu-btf-generation-for-pahole-v1.18-v1.21.patch
+kbuild-unify-options-for-btf-generation-for-vmlinux-and-modules.patch
+kbuild-add-skip_encoding_btf_enum64-option-to-pahole.patch
+block-wbt-remove-unnecessary-invoking-of-wbt_update_limits-in-wbt_init.patch
+blk-wbt-call-rq_qos_add-after-wb_normal-is-initialized.patch
+arm64-errata-remove-aes-hwcap-for-compat-tasks.patch
+r8152-add-pid-for-the-lenovo-onelink-dock.patch