diff options
author | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2022-05-14 20:24:12 -0700 |
---|---|---|
committer | jc_gargma <jc_gargma@iserlohn-fortress.net> | 2022-05-14 20:24:12 -0700 |
commit | 5aa3bb406b0c4c9b081ce586e394ba13a63c5da4 (patch) | |
tree | 1cf9243023a2fba4a632bc6ea4a394b01340efb4 | |
parent | Updated to 5.16.20 (diff) | |
download | linux-5aa3bb406b0c4c9b081ce586e394ba13a63c5da4.tar.xz |
Updated to 5.17.7
16 files changed, 766 insertions, 791 deletions
diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch index 40d4241..f74d97d 100644 --- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch +++ b/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch @@ -1,4 +1,4 @@ -From e640cb2990858fa20aba91e73ed4fc48c94ec201 Mon Sep 17 00:00:00 2001 +From af1be991f71b28e22fd079554c4f88e1911836a7 Mon Sep 17 00:00:00 2001 From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com> Date: Mon, 16 Sep 2019 04:53:20 +0200 Subject: [PATCH 1/8] ZEN: Add sysctl and CONFIG to disallow unprivileged @@ -36,10 +36,10 @@ index 33a4240e6a6f..82213f9c4c17 100644 { return &init_user_ns; diff --git a/init/Kconfig b/init/Kconfig -index 11f8a845f259..02b7a0e455a5 100644 +index e9119bf54b1f..a1a5a68aea07 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1226,6 +1226,22 @@ config USER_NS +@@ -1231,6 +1231,22 @@ config USER_NS If unsure, say N. @@ -63,7 +63,7 @@ index 11f8a845f259..02b7a0e455a5 100644 bool "PID Namespaces" default y diff --git a/kernel/fork.c b/kernel/fork.c -index 10885c649ca4..e0fe98e1afbd 100644 +index f1e89007f228..49144b49a3d1 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -98,6 +98,10 @@ @@ -77,7 +77,7 @@ index 10885c649ca4..e0fe98e1afbd 100644 #include <asm/pgalloc.h> #include <linux/uaccess.h> #include <asm/mmu_context.h> -@@ -1950,6 +1954,10 @@ static __latent_entropy struct task_struct *copy_process( +@@ -1922,6 +1926,10 @@ static __latent_entropy struct task_struct *copy_process( if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -88,7 +88,7 @@ index 10885c649ca4..e0fe98e1afbd 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -3056,6 +3064,12 @@ int ksys_unshare(unsigned long unshare_flags) +@@ -3036,6 +3044,12 @@ int ksys_unshare(unsigned long unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -102,12 +102,12 @@ index 10885c649ca4..e0fe98e1afbd 100644 if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 083be6af29d7..42aa3c7835b9 100644 +index 730ab56d9e92..6cf4e5c36ec9 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c -@@ -105,6 +105,9 @@ - #ifdef CONFIG_LOCKUP_DETECTOR - #include <linux/nmi.h> +@@ -91,6 +91,9 @@ + #if defined(CONFIG_PROVE_LOCKING) || defined(CONFIG_LOCK_STAT) + #include <linux/lockdep.h> #endif +#ifdef CONFIG_USER_NS +#include <linux/user_namespace.h> @@ -115,10 +115,10 @@ index 083be6af29d7..42aa3c7835b9 100644 #if defined(CONFIG_SYSCTL) -@@ -1949,6 +1952,15 @@ static struct ctl_table kern_table[] = { +@@ -1814,6 +1817,15 @@ static struct ctl_table kern_table[] = { + .mode = 0644, .proc_handler = proc_dointvec, }, - #endif +#ifdef CONFIG_USER_NS + { + .procname = "unprivileged_userns_clone", @@ -132,7 +132,7 @@ index 083be6af29d7..42aa3c7835b9 100644 { .procname = "tainted", diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index 6b2e3ca7ee99..0253002184f1 100644 +index 5481ba44a8d6..423ab2563ad7 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -21,6 +21,13 @@ @@ -150,5 +150,5 @@ index 6b2e3ca7ee99..0253002184f1 100644 static DEFINE_MUTEX(userns_state_mutex); -- -2.33.1 +2.35.1 diff --git a/0002-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch b/0002-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch deleted file mode 100644 index 7b891a9..0000000 --- a/0002-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 44e76e54009b9033fe9c98b9a6c32ce9c1cef59b Mon Sep 17 00:00:00 2001 -From: Kiran K <kiran.k@intel.com> -Date: Wed, 13 Oct 2021 13:35:11 +0530 -Subject: [PATCH 2/8] Bluetooth: btintel: Fix bdaddress comparison with garbage - value - -Intel Read Verision(TLV) data is parsed into a local structure variable -and it contains a field for bd address. Bd address is returned only in -bootloader mode and hence bd address in TLV structure needs to be validated -only if controller is present in boot loader mode. - -Signed-off-by: Kiran K <kiran.k@intel.com> -Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> -(cherry picked from commit 893505319c74cf3faa45a5ed9d5338ff03b66949) ---- - drivers/bluetooth/btintel.c | 22 ++++++++++++++-------- - 1 file changed, 14 insertions(+), 8 deletions(-) - -diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c -index 851a0c9b8fae..1a4f8b227eac 100644 ---- a/drivers/bluetooth/btintel.c -+++ b/drivers/bluetooth/btintel.c -@@ -2081,14 +2081,16 @@ static int btintel_prepare_fw_download_tlv(struct hci_dev *hdev, - if (ver->img_type == 0x03) { - btintel_clear_flag(hdev, INTEL_BOOTLOADER); - btintel_check_bdaddr(hdev); -- } -- -- /* If the OTP has no valid Bluetooth device address, then there will -- * also be no valid address for the operational firmware. -- */ -- if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { -- bt_dev_info(hdev, "No device address configured"); -- set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); -+ } else { -+ /* -+ * Check for valid bd address in boot loader mode. Device -+ * will be marked as unconfigured if empty bd address is -+ * found. -+ */ -+ if (!bacmp(&ver->otp_bd_addr, BDADDR_ANY)) { -+ bt_dev_info(hdev, "No device address configured"); -+ set_bit(HCI_QUIRK_INVALID_BDADDR, &hdev->quirks); -+ } - } - - btintel_get_fw_name_tlv(ver, fwname, sizeof(fwname), "sfi"); -@@ -2467,6 +2469,10 @@ static int btintel_setup_combined(struct hci_dev *hdev) - goto exit_error; - } - -+ /* memset ver_tlv to start with clean state as few fields are exclusive -+ * to bootloader mode and are not populated in operational mode -+ */ -+ memset(&ver_tlv, 0, sizeof(ver_tlv)); - /* For TLV type device, parse the tlv data */ - err = btintel_parse_version_tlv(hdev, &ver_tlv, skb); - if (err) { --- -2.35.1 - diff --git a/0002-random-treat-bootloader-trust-toggle-the-same-way-as.patch b/0002-random-treat-bootloader-trust-toggle-the-same-way-as.patch new file mode 100644 index 0000000..1d8d719 --- /dev/null +++ b/0002-random-treat-bootloader-trust-toggle-the-same-way-as.patch @@ -0,0 +1,94 @@ +From 448472bd240fb5a6c164cc60fd975f13785bfb08 Mon Sep 17 00:00:00 2001 +From: "Jason A. Donenfeld" <Jason@zx2c4.com> +Date: Wed, 23 Mar 2022 23:09:30 -0600 +Subject: [PATCH 2/8] random: treat bootloader trust toggle the same way as cpu + trust toggle + +If CONFIG_RANDOM_TRUST_CPU is set, the RNG initializes using RDRAND. +But, the user can disable (or enable) this behavior by setting +`random.trust_cpu=0/1` on the kernel command line. This allows system +builders to do reasonable things while avoiding howls from tinfoil +hatters. (Or vice versa.) + +CONFIG_RANDOM_TRUST_BOOTLOADER is basically the same thing, but regards +the seed passed via EFI or device tree, which might come from RDRAND or +a TPM or somewhere else. In order to allow distros to more easily enable +this while avoiding those same howls (or vice versa), this commit adds +the corresponding `random.trust_bootloader=0/1` toggle. + +Cc: Theodore Ts'o <tytso@mit.edu> +Cc: Graham Christensen <graham@grahamc.com> +Reviewed-by: Ard Biesheuvel <ardb@kernel.org> +Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net> +Link: https://github.com/NixOS/nixpkgs/pull/165355 +Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com> +--- + Documentation/admin-guide/kernel-parameters.txt | 6 ++++++ + drivers/char/Kconfig | 3 ++- + drivers/char/random.c | 8 +++++++- + 3 files changed, 15 insertions(+), 2 deletions(-) + +diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt +index 59f881f36779..bdc733c2561d 100644 +--- a/Documentation/admin-guide/kernel-parameters.txt ++++ b/Documentation/admin-guide/kernel-parameters.txt +@@ -4355,6 +4355,12 @@ + fully seed the kernel's CRNG. Default is controlled + by CONFIG_RANDOM_TRUST_CPU. + ++ random.trust_bootloader={on,off} ++ [KNL] Enable or disable trusting the use of the ++ a seed passed by the bootloader (if available) to ++ fully seed the kernel's CRNG. Default is controlled ++ by CONFIG_RANDOM_TRUST_BOOTLOADER. ++ + randomize_kstack_offset= + [KNL] Enable or disable kernel stack offset + randomization, which provides roughly 5 bits of +diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig +index 740811893c57..55f48375e3fe 100644 +--- a/drivers/char/Kconfig ++++ b/drivers/char/Kconfig +@@ -449,6 +449,7 @@ config RANDOM_TRUST_BOOTLOADER + device randomness. Say Y here to assume the entropy provided by the + booloader is trustworthy so it will be added to the kernel's entropy + pool. Otherwise, say N here so it will be regarded as device input that +- only mixes the entropy pool. ++ only mixes the entropy pool. This can also be configured at boot with ++ "random.trust_bootloader=on/off". + + endmenu +diff --git a/drivers/char/random.c b/drivers/char/random.c +index 3404a91edf29..19bf14e253f7 100644 +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -738,11 +738,17 @@ static void invalidate_batched_entropy(void); + static void numa_crng_init(void); + + static bool trust_cpu __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_CPU); ++static bool trust_bootloader __ro_after_init = IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER); + static int __init parse_trust_cpu(char *arg) + { + return kstrtobool(arg, &trust_cpu); + } ++static int __init parse_trust_bootloader(char *arg) ++{ ++ return kstrtobool(arg, &trust_bootloader); ++} + early_param("random.trust_cpu", parse_trust_cpu); ++early_param("random.trust_bootloader", parse_trust_bootloader); + + static bool crng_init_try_arch(struct crng_state *crng) + { +@@ -2229,7 +2235,7 @@ EXPORT_SYMBOL_GPL(add_hwgenerator_randomness); + */ + void add_bootloader_randomness(const void *buf, unsigned int size) + { +- if (IS_ENABLED(CONFIG_RANDOM_TRUST_BOOTLOADER)) ++ if (trust_bootloader) + add_hwgenerator_randomness(buf, size, size * 8); + else + add_device_randomness(buf, size); +-- +2.35.1 + diff --git a/0003-Bluetooth-Read-codec-capabilities-only-if-supported.patch b/0003-Bluetooth-Read-codec-capabilities-only-if-supported.patch deleted file mode 100644 index 57a23cc..0000000 --- a/0003-Bluetooth-Read-codec-capabilities-only-if-supported.patch +++ /dev/null @@ -1,56 +0,0 @@ -From f1ee8c1a0c5c57f5fa606c74e80d20514aa1b93d Mon Sep 17 00:00:00 2001 -From: Kiran K <kiran.k@intel.com> -Date: Tue, 5 Oct 2021 20:15:56 +0530 -Subject: [PATCH 3/8] Bluetooth: Read codec capabilities only if supported - -Read codec capabilities only if HCI_READ_LOCAL_CODEC_CAPABILITIES -command is supported. If capablities are not supported, then -cache codec data without caps. - -Signed-off-by: Kiran K <kiran.k@intel.com> -Signed-off-by: Marcel Holtmann <marcel@holtmann.org> -For: https://bugs.archlinux.org/task/73454 ---- - net/bluetooth/hci_codec.c | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git a/net/bluetooth/hci_codec.c b/net/bluetooth/hci_codec.c -index f0421d0edaa3..38201532f58e 100644 ---- a/net/bluetooth/hci_codec.c -+++ b/net/bluetooth/hci_codec.c -@@ -25,9 +25,11 @@ static int hci_codec_list_add(struct list_head *list, - } - entry->transport = sent->transport; - entry->len = len; -- entry->num_caps = rp->num_caps; -- if (rp->num_caps) -+ entry->num_caps = 0; -+ if (rp) { -+ entry->num_caps = rp->num_caps; - memcpy(entry->caps, caps, len); -+ } - list_add(&entry->list, list); - - return 0; -@@ -58,6 +60,18 @@ static void hci_read_codec_capabilities(struct hci_dev *hdev, __u8 transport, - __u32 len; - - cmd->transport = i; -+ -+ /* If Read_Codec_Capabilities command is not supported -+ * then just add codec to the list without caps -+ */ -+ if (!(hdev->commands[45] & 0x08)) { -+ hci_dev_lock(hdev); -+ hci_codec_list_add(&hdev->local_codecs, cmd, -+ NULL, NULL, 0); -+ hci_dev_unlock(hdev); -+ continue; -+ } -+ - skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_CODEC_CAPS, - sizeof(*cmd), cmd, - HCI_CMD_TIMEOUT); --- -2.35.1 - diff --git a/0003-tick-Detect-and-fix-jiffies-update-stall.patch b/0003-tick-Detect-and-fix-jiffies-update-stall.patch new file mode 100644 index 0000000..c561dd1 --- /dev/null +++ b/0003-tick-Detect-and-fix-jiffies-update-stall.patch @@ -0,0 +1,86 @@ +From 928032927d445c27a84a5698d14bcfc0d5d27af9 Mon Sep 17 00:00:00 2001 +From: Frederic Weisbecker <frederic@kernel.org> +Date: Wed, 2 Feb 2022 01:01:07 +0100 +Subject: [PATCH 3/8] tick: Detect and fix jiffies update stall + +On some rare cases, the timekeeper CPU may be delaying its jiffies +update duty for a while. Known causes include: + +* The timekeeper is waiting on stop_machine in a MULTI_STOP_DISABLE_IRQ + or MULTI_STOP_RUN state. Disabled interrupts prevent from timekeeping + updates while waiting for the target CPU to complete its + stop_machine() callback. + +* The timekeeper vcpu has VMEXIT'ed for a long while due to some overload + on the host. + +Detect and fix these situations with emergency timekeeping catchups. + +Original-patch-by: Paul E. McKenney <paulmck@kernel.org> +Signed-off-by: Frederic Weisbecker <frederic@kernel.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +--- + kernel/time/tick-sched.c | 17 +++++++++++++++++ + kernel/time/tick-sched.h | 4 ++++ + 2 files changed, 21 insertions(+) + +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index 5e80ee44c32a..0578c9301b17 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -169,6 +169,8 @@ static ktime_t tick_init_jiffy_update(void) + return period; + } + ++#define MAX_STALLED_JIFFIES 5 ++ + static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now) + { + int cpu = smp_processor_id(); +@@ -196,6 +198,21 @@ static void tick_sched_do_timer(struct tick_sched *ts, ktime_t now) + if (tick_do_timer_cpu == cpu) + tick_do_update_jiffies64(now); + ++ /* ++ * If jiffies update stalled for too long (timekeeper in stop_machine() ++ * or VMEXIT'ed for several msecs), force an update. ++ */ ++ if (ts->last_tick_jiffies != jiffies) { ++ ts->stalled_jiffies = 0; ++ ts->last_tick_jiffies = READ_ONCE(jiffies); ++ } else { ++ if (++ts->stalled_jiffies == MAX_STALLED_JIFFIES) { ++ tick_do_update_jiffies64(now); ++ ts->stalled_jiffies = 0; ++ ts->last_tick_jiffies = READ_ONCE(jiffies); ++ } ++ } ++ + if (ts->inidle) + ts->got_idle_tick = 1; + } +diff --git a/kernel/time/tick-sched.h b/kernel/time/tick-sched.h +index d952ae393423..504649513399 100644 +--- a/kernel/time/tick-sched.h ++++ b/kernel/time/tick-sched.h +@@ -49,6 +49,8 @@ enum tick_nohz_mode { + * @timer_expires_base: Base time clock monotonic for @timer_expires + * @next_timer: Expiry time of next expiring timer for debugging purpose only + * @tick_dep_mask: Tick dependency mask - is set, if someone needs the tick ++ * @last_tick_jiffies: Value of jiffies seen on last tick ++ * @stalled_jiffies: Number of stalled jiffies detected across ticks + */ + struct tick_sched { + struct hrtimer sched_timer; +@@ -77,6 +79,8 @@ struct tick_sched { + u64 next_timer; + ktime_t idle_expires; + atomic_t tick_dep_mask; ++ unsigned long last_tick_jiffies; ++ unsigned int stalled_jiffies; + }; + + extern struct tick_sched *tick_get_tick_sched(int cpu); +-- +2.35.1 + diff --git a/0004-Bluetooth-fix-deadlock-for-RFCOMM-sk-state-change.patch b/0004-Bluetooth-fix-deadlock-for-RFCOMM-sk-state-change.patch deleted file mode 100644 index 20e2674..0000000 --- a/0004-Bluetooth-fix-deadlock-for-RFCOMM-sk-state-change.patch +++ /dev/null @@ -1,231 +0,0 @@ -From a5ab2842cf12aad4c7691c100b38917f9f3b6770 Mon Sep 17 00:00:00 2001 -From: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> -Date: Mon, 4 Oct 2021 14:07:34 -0400 -Subject: [PATCH 4/8] Bluetooth: fix deadlock for RFCOMM sk state change - -Syzbot reports the following task hang [1]: - -INFO: task syz-executor255:8499 blocked for more than 143 seconds. - Not tainted 5.14.0-rc7-syzkaller #0 - -Call Trace: - context_switch kernel/sched/core.c:4681 [inline] - __schedule+0x93a/0x26f0 kernel/sched/core.c:5938 - schedule+0xd3/0x270 kernel/sched/core.c:6017 - __lock_sock+0x13d/0x260 net/core/sock.c:2644 - lock_sock_nested+0xf6/0x120 net/core/sock.c:3185 - lock_sock include/net/sock.h:1612 [inline] - rfcomm_sk_state_change+0xb4/0x390 net/bluetooth/rfcomm/sock.c:73 - __rfcomm_dlc_close+0x1b6/0x8a0 net/bluetooth/rfcomm/core.c:489 - rfcomm_dlc_close+0x1ea/0x240 net/bluetooth/rfcomm/core.c:520 - __rfcomm_sock_close+0xac/0x260 net/bluetooth/rfcomm/sock.c:220 - rfcomm_sock_shutdown+0xe9/0x210 net/bluetooth/rfcomm/sock.c:931 - rfcomm_sock_release+0x5f/0x140 net/bluetooth/rfcomm/sock.c:951 - __sock_release+0xcd/0x280 net/socket.c:649 - sock_close+0x18/0x20 net/socket.c:1314 - __fput+0x288/0x920 fs/file_table.c:280 - task_work_run+0xdd/0x1a0 kernel/task_work.c:164 - exit_task_work include/linux/task_work.h:32 [inline] - do_exit+0xbd4/0x2a60 kernel/exit.c:825 - do_group_exit+0x125/0x310 kernel/exit.c:922 - get_signal+0x47f/0x2160 kernel/signal.c:2808 - arch_do_signal_or_restart+0x2a9/0x1c40 arch/x86/kernel/signal.c:865 - handle_signal_work kernel/entry/common.c:148 [inline] - exit_to_user_mode_loop kernel/entry/common.c:172 [inline] - exit_to_user_mode_prepare+0x17d/0x290 kernel/entry/common.c:209 - __syscall_exit_to_user_mode_work kernel/entry/common.c:291 [inline] - syscall_exit_to_user_mode+0x19/0x60 kernel/entry/common.c:302 - do_syscall_64+0x42/0xb0 arch/x86/entry/common.c:86 - entry_SYSCALL_64_after_hwframe+0x44/0xae - -Showing all locks held in the system: -1 lock held by khungtaskd/1653: - #0: ffffffff8b97c280 (rcu_read_lock){....}-{1:2}, at: - debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6446 -1 lock held by krfcommd/4781: - #0: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at: - rfcomm_process_sessions net/bluetooth/rfcomm/core.c:1979 [inline] - #0: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at: - rfcomm_run+0x2ed/0x4a20 net/bluetooth/rfcomm/core.c:2086 -2 locks held by in:imklog/8206: - #0: ffff8880182ce5f0 (&f->f_pos_lock){+.+.}-{3:3}, at: - __fdget_pos+0xe9/0x100 fs/file.c:974 - #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: - raw_spin_rq_lock_nested kernel/sched/core.c:460 [inline] - #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: raw_spin_rq_lock - kernel/sched/sched.h:1307 [inline] - #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: rq_lock - kernel/sched/sched.h:1610 [inline] - #1: ffff8880b9c51a58 (&rq->__lock){-.-.}-{2:2}, at: - __schedule+0x233/0x26f0 kernel/sched/core.c:5852 -4 locks held by syz-executor255/8499: - #0: ffff888039a83690 (&sb->s_type->i_mutex_key#13){+.+.}-{3:3}, at: - inode_lock include/linux/fs.h:774 [inline] - #0: ffff888039a83690 (&sb->s_type->i_mutex_key#13){+.+.}-{3:3}, at: - __sock_release+0x86/0x280 net/socket.c:648 - #1: - ffff88802fa31120 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0}, - at: lock_sock include/net/sock.h:1612 [inline] - #1: - ffff88802fa31120 (sk_lock-AF_BLUETOOTH-BTPROTO_RFCOMM){+.+.}-{0:0}, - at: rfcomm_sock_shutdown+0x54/0x210 net/bluetooth/rfcomm/sock.c:928 - #2: ffffffff8d306528 (rfcomm_mutex){+.+.}-{3:3}, at: - rfcomm_dlc_close+0x34/0x240 net/bluetooth/rfcomm/core.c:507 - #3: ffff888141bd6d28 (&d->lock){+.+.}-{3:3}, at: - __rfcomm_dlc_close+0x162/0x8a0 net/bluetooth/rfcomm/core.c:487 -================================================================== - -The task hangs because of a deadlock that occurs when lock_sock() is -called in rfcomm_sk_state_change(). One such call stack is: - - rfcomm_sock_shutdown(): - lock_sock(); - __rfcomm_sock_close(): - rfcomm_dlc_close(): - __rfcomm_dlc_close(): - rfcomm_dlc_lock(); - rfcomm_sk_state_change(): - lock_sock(); - -lock_sock() has to be called when the sk state is changed because the -lock is not always held when rfcomm_sk_state_change() is -called. However, besides the recursive deadlock, there is also an -issue of a lock hierarchy inversion between rfcomm_dlc_lock() and -lock_sock() if the socket is locked in rfcomm_sk_state_change(). - -To avoid these issues, we can instead schedule the sk state change in -the global workqueue. This is already the implicit assumption about -how sk state changes happen. For example, in rfcomm_sock_shutdown(), -the call to __rfcomm_sock_close() is followed by -bt_sock_wait_state(). - -Additionally, the call to rfcomm_sock_kill() inside -rfcomm_sk_state_change() should be removed. The socket shouldn't be -killed here because only rfcomm_sock_release() calls sock_orphan(), -which it already follows up with a call to rfcomm_sock_kill(). - -Fixes: b7ce436a5d79 ("Bluetooth: switch to lock_sock in RFCOMM") -Link: https://syzkaller.appspot.com/bug?extid=7d51f807c81b190a127d [1] -Reported-by: syzbot+7d51f807c81b190a127d@syzkaller.appspotmail.com -Tested-by: syzbot+7d51f807c81b190a127d@syzkaller.appspotmail.com -Signed-off-by: Desmond Cheong Zhi Xi <desmondcheongzx@gmail.com> -Cc: Hillf Danton <hdanton@sina.com> ---- - include/net/bluetooth/rfcomm.h | 3 +++ - net/bluetooth/rfcomm/core.c | 2 ++ - net/bluetooth/rfcomm/sock.c | 34 ++++++++++++++++++++++------------ - 3 files changed, 27 insertions(+), 12 deletions(-) - -diff --git a/include/net/bluetooth/rfcomm.h b/include/net/bluetooth/rfcomm.h -index 99d26879b02a..a92799fc5e74 100644 ---- a/include/net/bluetooth/rfcomm.h -+++ b/include/net/bluetooth/rfcomm.h -@@ -171,6 +171,7 @@ struct rfcomm_dlc { - struct rfcomm_session *session; - struct sk_buff_head tx_queue; - struct timer_list timer; -+ struct work_struct state_change_work; - - struct mutex lock; - unsigned long state; -@@ -186,6 +187,7 @@ struct rfcomm_dlc { - u8 sec_level; - u8 role_switch; - u32 defer_setup; -+ int err; - - uint mtu; - uint cfc; -@@ -310,6 +312,7 @@ struct rfcomm_pinfo { - u8 role_switch; - }; - -+void __rfcomm_sk_state_change(struct work_struct *work); - int rfcomm_init_sockets(void); - void rfcomm_cleanup_sockets(void); - -diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c -index 7324764384b6..c6494e85cd68 100644 ---- a/net/bluetooth/rfcomm/core.c -+++ b/net/bluetooth/rfcomm/core.c -@@ -289,6 +289,7 @@ static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d) - d->flags = 0; - d->mscex = 0; - d->sec_level = BT_SECURITY_LOW; -+ d->err = 0; - d->mtu = RFCOMM_DEFAULT_MTU; - d->v24_sig = RFCOMM_V24_RTC | RFCOMM_V24_RTR | RFCOMM_V24_DV; - -@@ -306,6 +307,7 @@ struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio) - timer_setup(&d->timer, rfcomm_dlc_timeout, 0); - - skb_queue_head_init(&d->tx_queue); -+ INIT_WORK(&d->state_change_work, __rfcomm_sk_state_change); - mutex_init(&d->lock); - refcount_set(&d->refcnt, 1); - -diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c -index 4bf4ea6cbb5e..4850dafbaa05 100644 ---- a/net/bluetooth/rfcomm/sock.c -+++ b/net/bluetooth/rfcomm/sock.c -@@ -61,19 +61,22 @@ static void rfcomm_sk_data_ready(struct rfcomm_dlc *d, struct sk_buff *skb) - rfcomm_dlc_throttle(d); - } - --static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) -+void __rfcomm_sk_state_change(struct work_struct *work) - { -+ struct rfcomm_dlc *d = container_of(work, struct rfcomm_dlc, -+ state_change_work); - struct sock *sk = d->owner, *parent; - - if (!sk) - return; - -- BT_DBG("dlc %p state %ld err %d", d, d->state, err); -- - lock_sock(sk); -+ rfcomm_dlc_lock(d); - -- if (err) -- sk->sk_err = err; -+ BT_DBG("dlc %p state %ld err %d", d, d->state, d->err); -+ -+ if (d->err) -+ sk->sk_err = d->err; - - sk->sk_state = d->state; - -@@ -91,15 +94,22 @@ static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) - sk->sk_state_change(sk); - } - -+ rfcomm_dlc_unlock(d); - release_sock(sk); -+ sock_put(sk); -+} - -- if (parent && sock_flag(sk, SOCK_ZAPPED)) { -- /* We have to drop DLC lock here, otherwise -- * rfcomm_sock_destruct() will dead lock. */ -- rfcomm_dlc_unlock(d); -- rfcomm_sock_kill(sk); -- rfcomm_dlc_lock(d); -- } -+static void rfcomm_sk_state_change(struct rfcomm_dlc *d, int err) -+{ -+ struct sock *sk = d->owner; -+ -+ if (!sk) -+ return; -+ -+ d->err = err; -+ sock_hold(sk); -+ if (!schedule_work(&d->state_change_work)) -+ sock_put(sk); - } - - /* ---- Socket functions ---- */ --- -2.35.1 - diff --git a/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch b/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch new file mode 100644 index 0000000..ea7e3fd --- /dev/null +++ b/0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch @@ -0,0 +1,101 @@ +From 2085cf328b0c587bcfee52b1cb56a6b27c3249e3 Mon Sep 17 00:00:00 2001 +From: Frederic Weisbecker <frederic@kernel.org> +Date: Tue, 8 Feb 2022 17:16:33 +0100 +Subject: [PATCH 4/8] tick/rcu: Remove obsolete rcu_needs_cpu() parameters + +With the removal of CONFIG_RCU_FAST_NO_HZ, the parameters in +rcu_needs_cpu() are not necessary anymore. Simply remove them. + +Signed-off-by: Frederic Weisbecker <frederic@kernel.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Paul E. McKenney <paulmck@kernel.org> +Cc: Paul Menzel <pmenzel@molgen.mpg.de> +--- + include/linux/rcutiny.h | 3 +-- + include/linux/rcutree.h | 2 +- + kernel/rcu/tree.c | 3 +-- + kernel/time/tick-sched.c | 10 ++++------ + 4 files changed, 7 insertions(+), 11 deletions(-) + +diff --git a/include/linux/rcutiny.h b/include/linux/rcutiny.h +index 858f4d429946..5fed476f977f 100644 +--- a/include/linux/rcutiny.h ++++ b/include/linux/rcutiny.h +@@ -64,9 +64,8 @@ static inline void rcu_softirq_qs(void) + rcu_tasks_qs(current, (preempt)); \ + } while (0) + +-static inline int rcu_needs_cpu(u64 basemono, u64 *nextevt) ++static inline int rcu_needs_cpu(void) + { +- *nextevt = KTIME_MAX; + return 0; + } + +diff --git a/include/linux/rcutree.h b/include/linux/rcutree.h +index 53209d669400..6cc91291d078 100644 +--- a/include/linux/rcutree.h ++++ b/include/linux/rcutree.h +@@ -19,7 +19,7 @@ + + void rcu_softirq_qs(void); + void rcu_note_context_switch(bool preempt); +-int rcu_needs_cpu(u64 basem, u64 *nextevt); ++int rcu_needs_cpu(void); + void rcu_cpu_stall_reset(void); + + /* +diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c +index 73a4c9d07b86..5dae0da879ae 100644 +--- a/kernel/rcu/tree.c ++++ b/kernel/rcu/tree.c +@@ -1086,9 +1086,8 @@ void rcu_irq_enter_irqson(void) + * Just check whether or not this CPU has non-offloaded RCU callbacks + * queued. + */ +-int rcu_needs_cpu(u64 basemono, u64 *nextevt) ++int rcu_needs_cpu(void) + { +- *nextevt = KTIME_MAX; + return !rcu_segcblist_empty(&this_cpu_ptr(&rcu_data)->cblist) && + !rcu_rdp_is_offloaded(this_cpu_ptr(&rcu_data)); + } +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index 0578c9301b17..4c62fa0f70f1 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -785,7 +785,7 @@ static inline bool local_timer_softirq_pending(void) + + static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + { +- u64 basemono, next_tick, next_tmr, next_rcu, delta, expires; ++ u64 basemono, next_tick, delta, expires; + unsigned long basejiff; + unsigned int seq; + +@@ -808,7 +808,7 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + * minimal delta which brings us back to this place + * immediately. Lather, rinse and repeat... + */ +- if (rcu_needs_cpu(basemono, &next_rcu) || arch_needs_cpu() || ++ if (rcu_needs_cpu() || arch_needs_cpu() || + irq_work_needs_cpu() || local_timer_softirq_pending()) { + next_tick = basemono + TICK_NSEC; + } else { +@@ -819,10 +819,8 @@ static ktime_t tick_nohz_next_event(struct tick_sched *ts, int cpu) + * disabled this also looks at the next expiring + * hrtimer. + */ +- next_tmr = get_next_timer_interrupt(basejiff, basemono); +- ts->next_timer = next_tmr; +- /* Take the next rcu event into account */ +- next_tick = next_rcu < next_tmr ? next_rcu : next_tmr; ++ next_tick = get_next_timer_interrupt(basejiff, basemono); ++ ts->next_timer = next_tick; + } + + /* +-- +2.35.1 + diff --git a/0005-mt76-mt7921-add-support-for-PCIe-ID-0x0608-0x0616.patch b/0005-mt76-mt7921-add-support-for-PCIe-ID-0x0608-0x0616.patch deleted file mode 100644 index c818224..0000000 --- a/0005-mt76-mt7921-add-support-for-PCIe-ID-0x0608-0x0616.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f5d699ec84aff0f1f705c8a1ac4a5710054d1eff Mon Sep 17 00:00:00 2001 -From: Deren Wu <deren.wu@mediatek.com> -Date: Sun, 14 Nov 2021 10:46:57 +0800 -Subject: [PATCH 5/8] mt76: mt7921: add support for PCIe ID 0x0608/0x0616 - -New mt7921 serials chip support - -Signed-off-by: Deren Wu <deren.wu@mediatek.com> -Signed-off-by: Felix Fietkau <nbd@nbd.name> ---- - drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -index 40186e6cd865..1212b803b1c8 100644 ---- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -@@ -15,6 +15,8 @@ - static const struct pci_device_id mt7921_pci_device_table[] = { - { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7961) }, - { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x7922) }, -+ { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0608) }, -+ { PCI_DEVICE(PCI_VENDOR_ID_MEDIATEK, 0x0616) }, - { }, - }; - --- -2.35.1 - diff --git a/0005-tick-rcu-Stop-allowing-RCU_SOFTIRQ-in-idle.patch b/0005-tick-rcu-Stop-allowing-RCU_SOFTIRQ-in-idle.patch new file mode 100644 index 0000000..cf018ae --- /dev/null +++ b/0005-tick-rcu-Stop-allowing-RCU_SOFTIRQ-in-idle.patch @@ -0,0 +1,119 @@ +From 3decaa4b2af3d7365aa32411c6351626825ce397 Mon Sep 17 00:00:00 2001 +From: Frederic Weisbecker <frederic@kernel.org> +Date: Tue, 8 Feb 2022 17:16:34 +0100 +Subject: [PATCH 5/8] tick/rcu: Stop allowing RCU_SOFTIRQ in idle + +RCU_SOFTIRQ used to be special in that it could be raised on purpose +within the idle path to prevent from stopping the tick. Some code still +prevents from unnecessary warnings related to this specific behaviour +while entering in dynticks-idle mode. + +However the nohz layout has changed quite a bit in ten years, and the +removal of CONFIG_RCU_FAST_NO_HZ has been the final straw to this +safe-conduct. Now the RCU_SOFTIRQ vector is expected to be raised from +sane places. + +A remaining corner case is admitted though when the vector is invoked +in fragile hotplug path. + +Signed-off-by: Frederic Weisbecker <frederic@kernel.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Paul E. McKenney <paulmck@kernel.org> +Cc: Paul Menzel <pmenzel@molgen.mpg.de> +--- + include/linux/interrupt.h | 8 ++++++- + kernel/time/tick-sched.c | 50 +++++++++++++++++++++++++++++++-------- + 2 files changed, 47 insertions(+), 11 deletions(-) + +diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h +index 9367f1cb2e3c..9613326d2f8a 100644 +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -579,7 +579,13 @@ enum + NR_SOFTIRQS + }; + +-#define SOFTIRQ_STOP_IDLE_MASK (~(1 << RCU_SOFTIRQ)) ++/* ++ * Ignoring the RCU vector after ksoftirqd is parked is fine ++ * because: ++ * 1) rcutree_migrate_callbacks() takes care of the queue. ++ * 2) rcu_report_dead() reports the final quiescent states. ++ */ ++#define SOFTIRQ_HOTPLUG_SAFE_MASK (BIT(RCU_SOFTIRQ)) + + /* map softirq index to softirq name. update 'softirq_to_name' in + * kernel/softirq.c when adding a new softirq. +diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c +index 4c62fa0f70f1..3506f6ed790c 100644 +--- a/kernel/time/tick-sched.c ++++ b/kernel/time/tick-sched.c +@@ -999,6 +999,45 @@ static void tick_nohz_full_update_tick(struct tick_sched *ts) + __tick_nohz_full_update_tick(ts, ktime_get()); + } + ++/* ++ * A pending softirq outside an IRQ (or softirq disabled section) context ++ * should be waiting for ksoftirqd to handle it. Therefore we shouldn't ++ * reach here due to the need_resched() early check in can_stop_idle_tick(). ++ * ++ * However if we are between CPUHP_AP_SMPBOOT_THREADS and CPU_TEARDOWN_CPU on the ++ * cpu_down() process, softirqs can still be raised while ksoftirqd is parked, ++ * triggering the below since wakep_softirqd() is ignored. ++ * ++ */ ++static bool report_idle_softirq(void) ++{ ++ static int ratelimit; ++ unsigned int pending = local_softirq_pending(); ++ ++ if (likely(!pending)) ++ return false; ++ ++ /* Some softirqs claim to be safe against hotplug and ksoftirqd parking */ ++ if (!cpu_active(smp_processor_id())) { ++ pending &= ~SOFTIRQ_HOTPLUG_SAFE_MASK; ++ if (!pending) ++ return false; ++ } ++ ++ if (ratelimit < 10) ++ return false; ++ ++ /* On RT, softirqs handling may be waiting on some lock */ ++ if (!local_bh_blocked()) ++ return false; ++ ++ pr_warn("NOHZ tick-stop error: local softirq work is pending, handler #%02x!!!\n", ++ pending); ++ ratelimit++; ++ ++ return true; ++} ++ + static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) + { + /* +@@ -1025,17 +1064,8 @@ static bool can_stop_idle_tick(int cpu, struct tick_sched *ts) + if (need_resched()) + return false; + +- if (unlikely(local_softirq_pending())) { +- static int ratelimit; +- +- if (ratelimit < 10 && !local_bh_blocked() && +- (local_softirq_pending() & SOFTIRQ_STOP_IDLE_MASK)) { +- pr_warn("NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #%02x!!!\n", +- (unsigned int) local_softirq_pending()); +- ratelimit++; +- } ++ if (unlikely(report_idle_softirq())) + return false; +- } + + if (tick_nohz_full_enabled()) { + /* +-- +2.35.1 + diff --git a/0006-lib-irq_poll-Declare-IRQ_POLL-softirq-vector-as-ksof.patch b/0006-lib-irq_poll-Declare-IRQ_POLL-softirq-vector-as-ksof.patch new file mode 100644 index 0000000..b1eaa84 --- /dev/null +++ b/0006-lib-irq_poll-Declare-IRQ_POLL-softirq-vector-as-ksof.patch @@ -0,0 +1,55 @@ +From dfa7dabce4f075d5883f2b95ef925b6edc10ca29 Mon Sep 17 00:00:00 2001 +From: Frederic Weisbecker <frederic@kernel.org> +Date: Tue, 8 Feb 2022 17:16:35 +0100 +Subject: [PATCH 6/8] lib/irq_poll: Declare IRQ_POLL softirq vector as + ksoftirqd-parking safe + +The following warning may appear while setting a CPU down: + + NOHZ tick-stop error: Non-RCU local softirq work is pending, handler #20!!! + +The IRQ_POLL_SOFTIRQ vector can be raised during the hotplug cpu_down() +path after ksoftirqd is parked and before the CPU actually dies. However +this is handled afterward at the CPUHP_IRQ_POLL_DEAD stage where the +queue gets migrated. + +Hence this warning can be considered spurious and the vector can join +the "hotplug-safe" list. + +Reported-and-tested-by: Paul Menzel <pmenzel@molgen.mpg.de> +Signed-off-by: Frederic Weisbecker <frederic@kernel.org> +Cc: Thomas Gleixner <tglx@linutronix.de> +Cc: Peter Zijlstra <peterz@infradead.org> +Cc: Paul E. McKenney <paulmck@kernel.org> +Cc: Paul Menzel <pmenzel@molgen.mpg.de> +--- + include/linux/interrupt.h | 11 +++++++---- + 1 file changed, 7 insertions(+), 4 deletions(-) + +diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h +index 9613326d2f8a..f40754caaefa 100644 +--- a/include/linux/interrupt.h ++++ b/include/linux/interrupt.h +@@ -580,12 +580,15 @@ enum + }; + + /* +- * Ignoring the RCU vector after ksoftirqd is parked is fine +- * because: +- * 1) rcutree_migrate_callbacks() takes care of the queue. ++ * The following vectors can be safely ignored after ksoftirqd is parked: ++ * ++ * _ RCU: ++ * 1) rcutree_migrate_callbacks() migrates the queue. + * 2) rcu_report_dead() reports the final quiescent states. ++ * ++ * _ IRQ_POLL: irq_poll_cpu_dead() migrates the queue + */ +-#define SOFTIRQ_HOTPLUG_SAFE_MASK (BIT(RCU_SOFTIRQ)) ++#define SOFTIRQ_HOTPLUG_SAFE_MASK (BIT(RCU_SOFTIRQ) | BIT(IRQ_POLL_SOFTIRQ)) + + /* map softirq index to softirq name. update 'softirq_to_name' in + * kernel/softirq.c when adding a new softirq. +-- +2.35.1 + diff --git a/0006-mt76-mt7921-reduce-log-severity-levels-for-informati.patch b/0006-mt76-mt7921-reduce-log-severity-levels-for-informati.patch deleted file mode 100644 index eeffb6e..0000000 --- a/0006-mt76-mt7921-reduce-log-severity-levels-for-informati.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 180567f393d36b2f7367b044bfc409e984bb9e5a Mon Sep 17 00:00:00 2001 -From: Tzung-Bi Shih <tzungbi@google.com> -Date: Fri, 10 Dec 2021 17:17:46 +0800 -Subject: [PATCH 6/8] mt76: mt7921: reduce log severity levels for informative - messages - -"ASIC revision" and "Firmware init done" shouldn't be error messages. -Reduces the severity levels. - -Signed-off-by: Tzung-Bi Shih <tzungbi@google.com> -Signed-off-by: Felix Fietkau <nbd@nbd.name> ---- - drivers/net/wireless/mediatek/mt76/mt7921/mcu.c | 2 +- - drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c -index 4c6adbb96955..ea4edf187e0a 100644 ---- a/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7921/mcu.c -@@ -869,7 +869,7 @@ static int mt7921_load_firmware(struct mt7921_dev *dev) - dev->mt76.hw->wiphy->wowlan = &mt76_connac_wowlan_support; - #endif /* CONFIG_PM */ - -- dev_err(dev->mt76.dev, "Firmware init done\n"); -+ dev_dbg(dev->mt76.dev, "Firmware init done\n"); - - return 0; - } -diff --git a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -index 1212b803b1c8..9dae2f5972bf 100644 ---- a/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7921/pci.c -@@ -190,7 +190,7 @@ static int mt7921_pci_probe(struct pci_dev *pdev, - tasklet_init(&dev->irq_tasklet, mt7921_irq_tasklet, (unsigned long)dev); - mdev->rev = (mt7921_l1_rr(dev, MT_HW_CHIPID) << 16) | - (mt7921_l1_rr(dev, MT_HW_REV) & 0xff); -- dev_err(mdev->dev, "ASIC revision: %04x\n", mdev->rev); -+ dev_info(mdev->dev, "ASIC revision: %04x\n", mdev->rev); - - mt76_wr(dev, MT_WFDMA0_HOST_INT_ENA, 0); - --- -2.35.1 - diff --git a/0007-NFSv4.1-provide-mount-option-to-toggle-trunking-disc.patch b/0007-NFSv4.1-provide-mount-option-to-toggle-trunking-disc.patch new file mode 100644 index 0000000..a7c7e24 --- /dev/null +++ b/0007-NFSv4.1-provide-mount-option-to-toggle-trunking-disc.patch @@ -0,0 +1,81 @@ +From 70cd65db4081b480c5978d5bb60d681e784472b2 Mon Sep 17 00:00:00 2001 +From: Olga Kornievskaia <kolga@netapp.com> +Date: Wed, 16 Mar 2022 18:24:26 -0400 +Subject: [PATCH 7/8] NFSv4.1 provide mount option to toggle trunking discovery + +Introduce a new mount option -- trunkdiscovery,notrunkdiscovery -- to +toggle whether or not the client will engage in actively discovery +of trunking locations. + +v2 make notrunkdiscovery default + +Signed-off-by: Olga Kornievskaia <kolga@netapp.com> +Cherry-picked-for: https://bugs.archlinux.org/task/74272 +--- + fs/nfs/client.c | 3 ++- + fs/nfs/fs_context.c | 8 ++++++++ + include/linux/nfs_fs_sb.h | 1 + + 3 files changed, 11 insertions(+), 1 deletion(-) + +diff --git a/fs/nfs/client.c b/fs/nfs/client.c +index d1f34229e11a..e828504cc396 100644 +--- a/fs/nfs/client.c ++++ b/fs/nfs/client.c +@@ -857,7 +857,8 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str + } + + if (clp->rpc_ops->discover_trunking != NULL && +- (server->caps & NFS_CAP_FS_LOCATIONS)) { ++ (server->caps & NFS_CAP_FS_LOCATIONS && ++ (server->flags & NFS_MOUNT_TRUNK_DISCOVERY))) { + error = clp->rpc_ops->discover_trunking(server, mntfh); + if (error < 0) + return error; +diff --git a/fs/nfs/fs_context.c b/fs/nfs/fs_context.c +index ea17fa1f31ec..e2d59bb5e6bb 100644 +--- a/fs/nfs/fs_context.c ++++ b/fs/nfs/fs_context.c +@@ -80,6 +80,7 @@ enum nfs_param { + Opt_source, + Opt_tcp, + Opt_timeo, ++ Opt_trunkdiscovery, + Opt_udp, + Opt_v, + Opt_vers, +@@ -180,6 +181,7 @@ static const struct fs_parameter_spec nfs_fs_parameters[] = { + fsparam_string("source", Opt_source), + fsparam_flag ("tcp", Opt_tcp), + fsparam_u32 ("timeo", Opt_timeo), ++ fsparam_flag_no("trunkdiscovery", Opt_trunkdiscovery), + fsparam_flag ("udp", Opt_udp), + fsparam_flag ("v2", Opt_v), + fsparam_flag ("v3", Opt_v), +@@ -529,6 +531,12 @@ static int nfs_fs_context_parse_param(struct fs_context *fc, + else + ctx->flags &= ~NFS_MOUNT_NOCTO; + break; ++ case Opt_trunkdiscovery: ++ if (result.negated) ++ ctx->flags &= ~NFS_MOUNT_TRUNK_DISCOVERY; ++ else ++ ctx->flags |= NFS_MOUNT_TRUNK_DISCOVERY; ++ break; + case Opt_ac: + if (result.negated) + ctx->flags |= NFS_MOUNT_NOAC; +diff --git a/include/linux/nfs_fs_sb.h b/include/linux/nfs_fs_sb.h +index ca0959e51e81..b0e3fd550122 100644 +--- a/include/linux/nfs_fs_sb.h ++++ b/include/linux/nfs_fs_sb.h +@@ -151,6 +151,7 @@ struct nfs_server { + #define NFS_MOUNT_SOFTREVAL 0x800000 + #define NFS_MOUNT_WRITE_EAGER 0x01000000 + #define NFS_MOUNT_WRITE_WAIT 0x02000000 ++#define NFS_MOUNT_TRUNK_DISCOVERY 0x04000000 + + unsigned int fattr_valid; /* Valid attributes */ + unsigned int caps; /* server capabilities */ +-- +2.35.1 + diff --git a/0007-Revert-NFSv4.1-query-for-fs_location-attr-on-a-new-f.patch b/0007-Revert-NFSv4.1-query-for-fs_location-attr-on-a-new-f.patch deleted file mode 100644 index 6c7ed61..0000000 --- a/0007-Revert-NFSv4.1-query-for-fs_location-attr-on-a-new-f.patch +++ /dev/null @@ -1,236 +0,0 @@ -From 70ec06b389f1b35a0fae51ca1698034c00f994df Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Thu, 24 Feb 2022 03:14:51 +0100 -Subject: [PATCH 7/8] Revert "NFSv4.1 query for fs_location attr on a new file - system" - -This reverts commit 55b35b43a16ebed88df3ffac11e17ad0909bdf19. - -For: https://bugs.archlinux.org/task/73838 -For: https://bugs.archlinux.org/task/73860 ---- - fs/nfs/client.c | 7 ---- - fs/nfs/nfs4_fs.h | 9 +++-- - fs/nfs/nfs4proc.c | 76 ++++++----------------------------------- - fs/nfs/nfs4state.c | 3 +- - include/linux/nfs_xdr.h | 1 - - 5 files changed, 15 insertions(+), 81 deletions(-) - -diff --git a/fs/nfs/client.c b/fs/nfs/client.c -index a1e87419f3a4..2d2f2c091c65 100644 ---- a/fs/nfs/client.c -+++ b/fs/nfs/client.c -@@ -860,13 +860,6 @@ static int nfs_probe_fsinfo(struct nfs_server *server, struct nfs_fh *mntfh, str - server->namelen = pathinfo.max_namelen; - } - -- if (clp->rpc_ops->discover_trunking != NULL && -- (server->caps & NFS_CAP_FS_LOCATIONS)) { -- error = clp->rpc_ops->discover_trunking(server, mntfh); -- if (error < 0) -- return error; -- } -- - return 0; - } - -diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h -index 85c5d08dfa9c..2364661a6a08 100644 ---- a/fs/nfs/nfs4_fs.h -+++ b/fs/nfs/nfs4_fs.h -@@ -260,8 +260,8 @@ struct nfs4_state_maintenance_ops { - }; - - struct nfs4_mig_recovery_ops { -- int (*get_locations)(struct nfs_server *, struct nfs_fh *, -- struct nfs4_fs_locations *, struct page *, const struct cred *); -+ int (*get_locations)(struct inode *, struct nfs4_fs_locations *, -+ struct page *, const struct cred *); - int (*fsid_present)(struct inode *, const struct cred *); - }; - -@@ -303,9 +303,8 @@ extern int nfs4_do_close(struct nfs4_state *state, gfp_t gfp_mask, int wait); - extern int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle); - extern int nfs4_proc_fs_locations(struct rpc_clnt *, struct inode *, const struct qstr *, - struct nfs4_fs_locations *, struct page *); --extern int nfs4_proc_get_locations(struct nfs_server *, struct nfs_fh *, -- struct nfs4_fs_locations *, -- struct page *page, const struct cred *); -+extern int nfs4_proc_get_locations(struct inode *, struct nfs4_fs_locations *, -+ struct page *page, const struct cred *); - extern int nfs4_proc_fsid_present(struct inode *, const struct cred *); - extern struct rpc_clnt *nfs4_proc_lookup_mountpoint(struct inode *, - struct dentry *, -diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c -index 0abbbf5d2bdf..ba3aa4575d25 100644 ---- a/fs/nfs/nfs4proc.c -+++ b/fs/nfs/nfs4proc.c -@@ -3933,60 +3933,6 @@ int nfs4_server_capabilities(struct nfs_server *server, struct nfs_fh *fhandle) - return err; - } - --static int _nfs4_discover_trunking(struct nfs_server *server, -- struct nfs_fh *fhandle) --{ -- struct nfs4_fs_locations *locations = NULL; -- struct page *page; -- const struct cred *cred; -- struct nfs_client *clp = server->nfs_client; -- const struct nfs4_state_maintenance_ops *ops = -- clp->cl_mvops->state_renewal_ops; -- int status = -ENOMEM; -- -- cred = ops->get_state_renewal_cred(clp); -- if (cred == NULL) { -- cred = nfs4_get_clid_cred(clp); -- if (cred == NULL) -- return -ENOKEY; -- } -- -- page = alloc_page(GFP_KERNEL); -- locations = kmalloc(sizeof(struct nfs4_fs_locations), GFP_KERNEL); -- if (page == NULL || locations == NULL) -- goto out; -- -- status = nfs4_proc_get_locations(server, fhandle, locations, page, -- cred); -- if (status) -- goto out; --out: -- if (page) -- __free_page(page); -- kfree(locations); -- return status; --} -- --static int nfs4_discover_trunking(struct nfs_server *server, -- struct nfs_fh *fhandle) --{ -- struct nfs4_exception exception = { -- .interruptible = true, -- }; -- struct nfs_client *clp = server->nfs_client; -- int err = 0; -- -- if (!nfs4_has_session(clp)) -- goto out; -- do { -- err = nfs4_handle_exception(server, -- _nfs4_discover_trunking(server, fhandle), -- &exception); -- } while (exception.retry); --out: -- return err; --} -- - static int _nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle, - struct nfs_fsinfo *info) - { -@@ -7873,18 +7819,18 @@ int nfs4_proc_fs_locations(struct rpc_clnt *client, struct inode *dir, - * appended to this compound to identify the client ID which is - * performing recovery. - */ --static int _nfs40_proc_get_locations(struct nfs_server *server, -- struct nfs_fh *fhandle, -+static int _nfs40_proc_get_locations(struct inode *inode, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -+ struct nfs_server *server = NFS_SERVER(inode); - struct rpc_clnt *clnt = server->client; - u32 bitmask[2] = { - [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, - }; - struct nfs4_fs_locations_arg args = { - .clientid = server->nfs_client->cl_clientid, -- .fh = fhandle, -+ .fh = NFS_FH(inode), - .page = page, - .bitmask = bitmask, - .migration = 1, /* skip LOOKUP */ -@@ -7930,17 +7876,17 @@ static int _nfs40_proc_get_locations(struct nfs_server *server, - * When the client supports GETATTR(fs_locations_info), it can - * be plumbed in here. - */ --static int _nfs41_proc_get_locations(struct nfs_server *server, -- struct nfs_fh *fhandle, -+static int _nfs41_proc_get_locations(struct inode *inode, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -+ struct nfs_server *server = NFS_SERVER(inode); - struct rpc_clnt *clnt = server->client; - u32 bitmask[2] = { - [0] = FATTR4_WORD0_FSID | FATTR4_WORD0_FS_LOCATIONS, - }; - struct nfs4_fs_locations_arg args = { -- .fh = fhandle, -+ .fh = NFS_FH(inode), - .page = page, - .bitmask = bitmask, - .migration = 1, /* skip LOOKUP */ -@@ -7989,11 +7935,11 @@ static int _nfs41_proc_get_locations(struct nfs_server *server, - * -NFS4ERR_LEASE_MOVED is returned if the server still has leases - * from this client that require migration recovery. - */ --int nfs4_proc_get_locations(struct nfs_server *server, -- struct nfs_fh *fhandle, -+int nfs4_proc_get_locations(struct inode *inode, - struct nfs4_fs_locations *locations, - struct page *page, const struct cred *cred) - { -+ struct nfs_server *server = NFS_SERVER(inode); - struct nfs_client *clp = server->nfs_client; - const struct nfs4_mig_recovery_ops *ops = - clp->cl_mvops->mig_recovery_ops; -@@ -8006,11 +7952,10 @@ int nfs4_proc_get_locations(struct nfs_server *server, - (unsigned long long)server->fsid.major, - (unsigned long long)server->fsid.minor, - clp->cl_hostname); -- nfs_display_fhandle(fhandle, __func__); -+ nfs_display_fhandle(NFS_FH(inode), __func__); - - do { -- status = ops->get_locations(server, fhandle, locations, page, -- cred); -+ status = ops->get_locations(inode, locations, page, cred); - if (status != -NFS4ERR_DELAY) - break; - nfs4_handle_exception(server, status, &exception); -@@ -10479,7 +10424,6 @@ const struct nfs_rpc_ops nfs_v4_clientops = { - .free_client = nfs4_free_client, - .create_server = nfs4_create_server, - .clone_server = nfs_clone_server, -- .discover_trunking = nfs4_discover_trunking, - }; - - static const struct xattr_handler nfs4_xattr_nfs4_acl_handler = { -diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c -index 499bef9fe118..f3265575c28d 100644 ---- a/fs/nfs/nfs4state.c -+++ b/fs/nfs/nfs4state.c -@@ -2098,8 +2098,7 @@ static int nfs4_try_migration(struct nfs_server *server, const struct cred *cred - } - - inode = d_inode(server->super->s_root); -- result = nfs4_proc_get_locations(server, NFS_FH(inode), locations, -- page, cred); -+ result = nfs4_proc_get_locations(inode, locations, page, cred); - if (result) { - dprintk("<-- %s: failed to retrieve fs_locations: %d\n", - __func__, result); -diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h -index 695fa84611b6..967a0098f0a9 100644 ---- a/include/linux/nfs_xdr.h -+++ b/include/linux/nfs_xdr.h -@@ -1795,7 +1795,6 @@ struct nfs_rpc_ops { - struct nfs_server *(*create_server)(struct fs_context *); - struct nfs_server *(*clone_server)(struct nfs_server *, struct nfs_fh *, - struct nfs_fattr *, rpc_authflavor_t); -- int (*discover_trunking)(struct nfs_server *, struct nfs_fh *); - }; - - /* --- -2.35.1 - @@ -10,6 +10,7 @@ # Arch version does not disable lockdown eee # Arch version does not disable HDCP # Arch version does not disable IME/PSP and SGX/SEV and TXT/TEE and PXP +# Arch version does not disable /dev/random being directly filled by rdrand # Arch version uses git # set _custom to 0 when using mkchrootpkg @@ -17,10 +18,10 @@ _custom=0 pkgbase=linux _supver=5 -_majver=16 -_minver=20 +_majver=17 +_minver=7 _gccpatchver='20220315' -_gccpatchker='5.15-5.16' +_gccpatchker='5.17+' if [ "$_minver" == "0" ]; then pkgver=${_supver}.${_majver} else @@ -33,7 +34,7 @@ arch=(x86_64) license=(GPL2) makedepends=( bc kmod libelf pahole cpio perl tar xz - xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick + xmlto python-sphinx python-sphinx_rtd_theme graphviz imagemagick texlive-latexextra ) conflicts=('linux-libre') options=('!strip') @@ -42,12 +43,12 @@ source=( https://www.kernel.org/pub/linux/kernel/v${_supver}.x/${_srcname}.tar.{xz,sign} config # the main kernel config file 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - 0002-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch - 0003-Bluetooth-Read-codec-capabilities-only-if-supported.patch - 0004-Bluetooth-fix-deadlock-for-RFCOMM-sk-state-change.patch - 0005-mt76-mt7921-add-support-for-PCIe-ID-0x0608-0x0616.patch - 0006-mt76-mt7921-reduce-log-severity-levels-for-informati.patch - 0007-Revert-NFSv4.1-query-for-fs_location-attr-on-a-new-f.patch + 0002-random-treat-bootloader-trust-toggle-the-same-way-as.patch + 0003-tick-Detect-and-fix-jiffies-update-stall.patch + 0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch + 0005-tick-rcu-Stop-allowing-RCU_SOFTIRQ-in-idle.patch + 0006-lib-irq_poll-Declare-IRQ_POLL-softirq-vector-as-ksof.patch + 0007-NFSv4.1-provide-mount-option-to-toggle-trunking-disc.patch kernel_compiler_patch-${_gccpatchver}.tar.gz::https://github.com/graysky2/kernel_compiler_patch/archive/${_gccpatchver}.tar.gz ath9k-regdom-hack.patch raid6-default-algo.patch @@ -57,32 +58,32 @@ validpgpkeys=( '647F28654894E3BD457199BE38DBBDC86092693E' # Greg Kroah-Hartman ) # https://www.kernel.org/pub/linux/kernel/v5.x/sha256sums.asc -sha256sums=('d8060dc88f862baaae66b42a2dbc12298ed667c698eb5c55617a7786ee47bf25' +sha256sums=('22f67ef6b12ef6c0c0353be4b90b4bf4b9b18b858c16c346fa495b67ec718c99' 'SKIP' - '335cc2e5a617cf4dbd9973bd512cedeaa491718366395f97f3bd764e59a74cf8' - '0ea6013565896bf9c77a3edb89d88ab1f6751c65545e1a0b28e2a895ae7a291d' - 'f101077e6b6196eefc187218c0c11308c87bdf779fd6fcf7e42111aa4d348ce7' - '558e1e3426db12ac3ae6b9afdc361fe415d235e306e08e587b91a74b371c1002' - 'c8801d00c7f179730169b1065581cce89a3c9ddd553c4a813f039582e1bbe6be' - '9a291b74a838a26b737e52415e4fb4fa27a69a252f94971208375cd02712f42f' - 'a918ccc4b339720679ca262fa08fbd1ad3f5a2c071cb06250e8ea8ed7d52acaa' - '0953dcf941e3b979ab35551e670598dbfde098503e97925738bcb730892b90de' + 'c603b522eaf21f9a4e937645798bec4d6939eb5149b55fd487b87ca41454e108' + 'f1a5d1b1830c630313e3283c6dcc870be0f4f23cbdfe514c435dfdbc705b615e' + '6ab72cc873bb00b8719435b370a2f4af6d9d22c83e59e84595021f39780b73f3' + '10d85461ff413b7df600c9a4715e84fe7aa0515dfbc1e1dcecf43c3a642405c8' + '4d539c730b90be03cf1ee2cdfcec9801b3ffcff571b3bf8f5d7f711bc6c6026e' + '4a52a207f7183f4a2f59457896fff09bd2ec4e3be9207ecd281a98926dbcb455' + '132393d3dfc185d3bb1d5c9b92e77222cec73c0314aa8f09da186a6622aa2d6d' + '24790cf2e78dbed5cef3c8be275b4c564573b8f22a1b05014d29c0b1cf3f37eb' '5a29d172d442a3f31a402d7d306aaa292b0b5ea29139d05080a55e2425f48c5c' 'e9e0d289170b7fb598b572d9c892ae8d1420952034aa415e8b3334f20a58edcc' - '0f81d6e4158b7beeb0eb514f1b9401f7e23699cb0f7b0d513e25dae1815daaeb') -b2sums=('798baf7051b3f20d34741067769c6a59a04ba922468789e61ce5a6c4d0c3d336a0f3bacc9f482827722e7577828140772e5cbd76b844cc836d4d6b26e0c154ec' + '6ab863c8cfe6e0dd53a9d6455872fd4391508a8b97ab92e3f13558a6617b12a6') +b2sums=('1c1b1f59404becef201c28d6677a2a52a828a51903d0fe5b38a931fa25694d766eeb222b02f674d95ea8c67c29e0f3420b88f94bdccfc2f9bd575c2605e8f229' 'SKIP' - '1051ee98791aee9b9ea1ca5c5de35ce4863a2b10ba5af0b55b444e53abb010a9bd1ee0414598d0c6cdd55e4b258d8c63edc019abafe500bba92b5dddebdb055b' - 'f1e7205c4033abe680c5ddc9542a677f27b725f2d8b9b84133d877b1d60d5c373ed2873445202bdd7e15b6f56c96ffa2427fc1e36b485c25ae69907f486c4603' - '1a2f35736e6066f20ee299cf1cc2efa9c76a9ebf3c17f0bc23b2852fe5618a82f87397187e3e0aa0b09ca9bea35ec0db8fbf28a6f6194d73a573a522ed4ce10d' - '2a40fbad8386519b35397269cfb3a8f7dca3e7742e31f79553a129b3de478c89ea09684ea70cbbced3e157bd5df921e6712195e477e12467e729759232a4ebcc' - '29bbe0deb754d03160690533229498f943cc542ef002035640950fa51d778c9188817f63d888fd07b45c6e24b4eec867fff3d8f81d1e3d766f240494ac88d3dd' - '5272cfe0453d9ac59d3a5b092af66621f558b0137c3710b20a95c14ac58a7e260de906c3b265b427026fd1ed6e2bfdb54729883dbe183551b7e7243059945098' - '2b9711e2085ed8b5d9fa440a751a7e31ec097383aeded739dbd8985c799b8a62e1e562f8af96692e33970fd2e463b87483af50a00adb1b98085210d080871fcf' - '9a3f8a69dbd27d5e97c187362c6c8bfc9c4b8a7b60cca8d710ff93a0996e3e0d3dffe2e698a3bf430b57a9c83dc05ed4dedbd7b4fde440c1ab0eccfadf2ba16a' + 'f9b876591ae41bf7d92f610d8b9a29bd6ec53b2a3b88aa1bb5e51df9debc244b9a98c4c9b917e463be517c8e10675a46866604e19b3dbc415b779cf7428b3415' + '086702550147990472eb990fa8d5aac0f1e89ec592d66f12ba146a7b8a78438835a247d13986252f2b1356727e48075276729bc33787a10d451b7afae2dc0d3c' + 'fc2484c417e237d531833158deca0a82e40cc660122bd19d1dd326719d5e216390074de502fd01d2d26913978bb8175188de59ceb76b62c19eb7079ea8c898b0' + 'dd32268ebe42108f487e1aff7d762d60fa192d4b5827a1f55c6d7bc0fa5020981e5fc76a979296e1c11caf077b4203fb0892c0e383079f646dbba4b3a4604fe1' + 'f0b96a0c38519b6a761a67fde8174f884a493722198b82c5b8fb7627fec86cc5438191b4a267f24315bc29515942d6b138a70ae5eedf5e705486f89892ec6b57' + 'e2757b7dd92835a987e83aa3d94091d977d5d8d58cb666ef0439d91f22a8b8de8cd8d48bbfa07ed91c01300781e8808e2c2a8a962977d53e927c2c7b381595ee' + 'e9e3fa451a9c8a65a4fb0d42ae463b08f1092e3d8e11b0449291fe7a355dd75ee474e0eccc9538ccddbd173cdcba4afec5dfad2f3aa4c7f8babe093171f3beb8' + '514580d351d616b0ca8d134e501c8920ad753a028cf986e525f993460ce593e7f7ec53e4c52f39ed2a0b19e0df8409ebd289cdfb91afcf95dd77c04197351e17' '20674a8fcc0a85726e06460a7dbccfe731c46bf377cc3bf511b7591175e7df892f271bc1909e77d9a02913c753d241493502c5ab15d9f78e95f31aa4399c2c27' 'b6ef77035611139fa9a6d5b8d30570e2781bb4da483bb569884b0bd0129b62e0b82a5a6776fefe43fee801c70d39de1ea4d4c177f7cedd5ac135e3c64f7b895a' - 'fde132f3705d908e6f2147c78a2193289916d72304ca5efa2229d79fc3e57a857314ce94e71425caef2f7f7b6cf87f05ef86335dc8bd4be78e7035afe608005a') + 'e94aa35d92cec92f4b0d487e0569790f3b712b9eaa5107f14a4200578e398ca740bf369f30f070c8beb56a72d1a6d0fc06beb650d798a64f44abe5e3af327728') export KBUILD_BUILD_HOST=arc4linux export KBUILD_BUILD_USER=$pkgbase @@ -102,12 +103,12 @@ prepare() { # Hotfixes echo "Applying hotfixes" patch -p1 -i ../0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-C.patch - patch -p1 -i ../0002-Bluetooth-btintel-Fix-bdaddress-comparison-with-garb.patch - patch -p1 -i ../0003-Bluetooth-Read-codec-capabilities-only-if-supported.patch - patch -p1 -i ../0004-Bluetooth-fix-deadlock-for-RFCOMM-sk-state-change.patch - patch -p1 -i ../0005-mt76-mt7921-add-support-for-PCIe-ID-0x0608-0x0616.patch - patch -p1 -i ../0006-mt76-mt7921-reduce-log-severity-levels-for-informati.patch - patch -p1 -i ../0007-Revert-NFSv4.1-query-for-fs_location-attr-on-a-new-f.patch + patch -p1 -i ../0002-random-treat-bootloader-trust-toggle-the-same-way-as.patch + patch -p1 -i ../0003-tick-Detect-and-fix-jiffies-update-stall.patch + patch -p1 -i ../0004-tick-rcu-Remove-obsolete-rcu_needs_cpu-parameters.patch + patch -p1 -i ../0005-tick-rcu-Stop-allowing-RCU_SOFTIRQ-in-idle.patch + patch -p1 -i ../0006-lib-irq_poll-Declare-IRQ_POLL-softirq-vector-as-ksof.patch + patch -p1 -i ../0007-NFSv4.1-provide-mount-option-to-toggle-trunking-disc.patch # graysky gcc patch @@ -210,7 +211,8 @@ _package() { echo "$pkgbase" | install -Dm644 /dev/stdin "$modulesdir/pkgbase" echo "Installing modules..." - make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 modules_install + make INSTALL_MOD_PATH="$pkgdir/usr" INSTALL_MOD_STRIP=1 \ + DEPMOD=/doesnt/exist modules_install # Suppress depmod # remove build and source links rm "$modulesdir"/{source,build} @@ -1,10 +1,10 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.17 Kernel Configuration +# Linux/x86 5.17.7 Kernel Configuration # -CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" +CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.1.0" CONFIG_CC_IS_GCC=y -CONFIG_GCC_VERSION=110200 +CONFIG_GCC_VERSION=120100 CONFIG_CLANG_VERSION=0 CONFIG_AS_IS_GNU=y CONFIG_AS_VERSION=23800 @@ -167,7 +167,6 @@ CONFIG_RCU_STALL_COMMON=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_FANOUT=64 CONFIG_RCU_FANOUT_LEAF=16 -CONFIG_RCU_FAST_NO_HZ=y CONFIG_RCU_BOOST=y CONFIG_RCU_BOOST_DELAY=500 # CONFIG_RCU_NOCB_CPU is not set @@ -288,6 +287,7 @@ CONFIG_RSEQ=y # CONFIG_DEBUG_RSEQ is not set # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +CONFIG_GUEST_PERF_EVENTS=y # CONFIG_PC104 is not set # @@ -332,15 +332,12 @@ CONFIG_ARCH_MAY_HAVE_PC_FDC=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_FILTER_PGPROT=y -CONFIG_HAVE_SETUP_PER_CPU_AREA=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_NR_GPIO=1024 CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ARCH_WANT_GENERAL_HUGETLB=y CONFIG_AUDIT_ARCH=y -# CONFIG_HAVE_INTEL_TXT is not set +CONFIG_HAVE_INTEL_TXT=y CONFIG_X86_64_SMP=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_FIX_EARLYCON_MEM=y @@ -357,6 +354,8 @@ CONFIG_X86_X2APIC=y CONFIG_X86_MPPARSE=y # CONFIG_GOLDFISH is not set CONFIG_RETPOLINE=y +CONFIG_CC_HAS_SLS=y +CONFIG_SLS=y CONFIG_X86_CPU_RESCTRL=y # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_INTEL_LPSS=y @@ -493,6 +492,7 @@ CONFIG_X86_CPUID=y CONFIG_X86_5LEVEL=y CONFIG_X86_DIRECT_GBPAGES=y CONFIG_X86_CPA_STATISTICS=y +CONFIG_X86_MEM_ENCRYPT=y CONFIG_AMD_MEM_ENCRYPT=y # CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT is not set CONFIG_NUMA=y @@ -522,7 +522,7 @@ CONFIG_X86_UMIP=y CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y # CONFIG_X86_INTEL_TSX_MODE_OFF is not set # CONFIG_X86_INTEL_TSX_MODE_ON is not set -CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +CONFIG_X86_INTEL_TSX_MODE_AUTO=y # CONFIG_X86_SGX is not set CONFIG_EFI=y CONFIG_EFI_STUB=y @@ -563,7 +563,6 @@ CONFIG_HAVE_LIVEPATCH=y CONFIG_ARCH_HAS_ADD_PAGES=y CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_USE_PERCPU_NUMA_NODE_ID=y # # Power management and ACPI options @@ -598,6 +597,7 @@ CONFIG_ACPI=y CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +CONFIG_ACPI_TABLE_LIB=y # CONFIG_ACPI_DEBUGGER is not set CONFIG_ACPI_SPCR_TABLE=y CONFIG_ACPI_FPDT=y @@ -653,6 +653,8 @@ CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m CONFIG_ACPI_ADXL=y CONFIG_ACPI_CONFIGFS=m +CONFIG_ACPI_PFRUT=m +CONFIG_ACPI_PCC=y CONFIG_PMIC_OPREGION=y CONFIG_BYTCRC_PMIC_OPREGION=y CONFIG_CHTCRC_PMIC_OPREGION=y @@ -688,6 +690,7 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_AMD_PSTATE=m CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=m @@ -740,9 +743,11 @@ CONFIG_SYSVIPC_COMPAT=y # end of Binary Emulations CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_PFNCACHE=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_IRQFD=y CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_DIRTY_RING=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y @@ -862,6 +867,7 @@ CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_PAGE_SIZE_LESS_THAN_64KB=y +CONFIG_PAGE_SIZE_LESS_THAN_256KB=y CONFIG_HAVE_STACK_VALIDATION=y CONFIG_HAVE_RELIABLE_STACKTRACE=y CONFIG_ISA_BUS_API=y @@ -880,11 +886,13 @@ CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y CONFIG_ARCH_USE_MEMREMAP_PROT=y CONFIG_LOCK_EVENT_COUNTS=y CONFIG_ARCH_HAS_MEM_ENCRYPT=y +CONFIG_ARCH_HAS_CC_PLATFORM=y CONFIG_HAVE_STATIC_CALL=y CONFIG_HAVE_STATIC_CALL_INLINE=y CONFIG_HAVE_PREEMPT_DYNAMIC=y CONFIG_ARCH_WANT_LD_ORPHAN_WARN=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_PAGE_TABLE_CHECK=y CONFIG_ARCH_HAS_ELFCORE_COMPAT=y CONFIG_ARCH_HAS_PARANOID_L1D_FLUSH=y CONFIG_DYNAMIC_SIGFRAME=y @@ -898,7 +906,6 @@ CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y CONFIG_HAVE_GCC_PLUGINS=y CONFIG_GCC_PLUGINS=y -# CONFIG_GCC_PLUGIN_CYC_COMPLEXITY is not set # CONFIG_GCC_PLUGIN_LATENT_ENTROPY is not set # CONFIG_GCC_PLUGIN_RANDSTRUCT is not set # end of General architecture-dependent options @@ -933,6 +940,7 @@ CONFIG_BLOCK=y CONFIG_BLK_RQ_ALLOC_TIME=y CONFIG_BLK_CGROUP_RWSTAT=y CONFIG_BLK_DEV_BSG_COMMON=y +CONFIG_BLK_ICQ=y CONFIG_BLK_DEV_BSGLIB=y CONFIG_BLK_DEV_INTEGRITY=y CONFIG_BLK_DEV_INTEGRITY_T10=y @@ -1066,7 +1074,10 @@ CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y CONFIG_ARCH_WANTS_THP_SWAP=y CONFIG_THP_SWAP=y -CONFIG_CLEANCACHE=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_FRONTSWAP=y CONFIG_CMA=y # CONFIG_CMA_DEBUG is not set @@ -1114,6 +1125,7 @@ CONFIG_READ_ONLY_THP_FOR_FS=y CONFIG_ARCH_HAS_PTE_SPECIAL=y CONFIG_MAPPING_DIRTY_HELPERS=y CONFIG_SECRETMEM=y +CONFIG_ANON_VMA_NAME=y # # Data Access Monitoring @@ -1322,7 +1334,6 @@ CONFIG_NF_TABLES_NETDEV=y CONFIG_NFT_NUMGEN=m CONFIG_NFT_CT=m CONFIG_NFT_FLOW_OFFLOAD=m -CONFIG_NFT_COUNTER=m CONFIG_NFT_CONNLIMIT=m CONFIG_NFT_LOG=m CONFIG_NFT_LIMIT=m @@ -1522,7 +1533,6 @@ CONFIG_NFT_REJECT_IPV4=m CONFIG_NFT_DUP_IPV4=m CONFIG_NFT_FIB_IPV4=m CONFIG_NF_TABLES_ARP=y -CONFIG_NF_FLOW_TABLE_IPV4=m CONFIG_NF_DUP_IPV4=m CONFIG_NF_LOG_ARP=m CONFIG_NF_LOG_IPV4=m @@ -1562,7 +1572,6 @@ CONFIG_NF_TABLES_IPV6=y CONFIG_NFT_REJECT_IPV6=m CONFIG_NFT_DUP_IPV6=m CONFIG_NFT_FIB_IPV6=m -CONFIG_NF_FLOW_TABLE_IPV6=m CONFIG_NF_DUP_IPV6=m CONFIG_NF_REJECT_IPV6=m CONFIG_NF_LOG_IPV6=m @@ -1984,6 +1993,7 @@ CONFIG_BT_INTEL=m CONFIG_BT_BCM=m CONFIG_BT_RTL=m CONFIG_BT_QCA=m +CONFIG_BT_MTK=m CONFIG_BT_HCIBTUSB=m CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y CONFIG_BT_HCIBTUSB_BCM=y @@ -2067,6 +2077,7 @@ CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_GPIO=m CONFIG_NET_9P=m +CONFIG_NET_9P_FD=m CONFIG_NET_9P_VIRTIO=m CONFIG_NET_9P_XEN=m CONFIG_NET_9P_RDMA=m @@ -2253,6 +2264,7 @@ CONFIG_AUXILIARY_BUS=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DEVTMPFS_SAFE=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y @@ -2324,7 +2336,7 @@ CONFIG_ISCSI_IBFT=m CONFIG_FW_CFG_SYSFS=m # CONFIG_FW_CFG_SYSFS_CMDLINE is not set CONFIG_SYSFB=y -CONFIG_SYSFB_SIMPLEFB=y +# CONFIG_SYSFB_SIMPLEFB is not set CONFIG_CS_DSP=m CONFIG_GOOGLE_FIRMWARE=y # CONFIG_GOOGLE_SMI is not set @@ -2373,6 +2385,7 @@ CONFIG_GNSS_SERIAL=m CONFIG_GNSS_MTK_SERIAL=m CONFIG_GNSS_SIRF_SERIAL=m CONFIG_GNSS_UBX_SERIAL=m +CONFIG_GNSS_USB=m CONFIG_MTD=m # CONFIG_MTD_TESTS is not set @@ -2527,6 +2540,7 @@ CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_NULL_BLK=m CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_FD_RAWCMD is not set CONFIG_CDROM=m # CONFIG_PARIDE is not set CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m @@ -2557,7 +2571,6 @@ CONFIG_XEN_BLKDEV_FRONTEND=m CONFIG_XEN_BLKDEV_BACKEND=m CONFIG_VIRTIO_BLK=m CONFIG_BLK_DEV_RBD=m -CONFIG_BLK_DEV_RSXX=m CONFIG_BLK_DEV_RNBD=y CONFIG_BLK_DEV_RNBD_CLIENT=m CONFIG_BLK_DEV_RNBD_SERVER=m @@ -2565,8 +2578,8 @@ CONFIG_BLK_DEV_RNBD_SERVER=m # # NVME Support # -CONFIG_NVME_CORE=y -CONFIG_BLK_DEV_NVME=y +CONFIG_NVME_CORE=m +CONFIG_BLK_DEV_NVME=m CONFIG_NVME_MULTIPATH=y CONFIG_NVME_HWMON=y CONFIG_NVME_FABRICS=m @@ -2644,6 +2657,7 @@ CONFIG_ALTERA_STAPL=m # CONFIG_INTEL_MEI_ME is not set # CONFIG_INTEL_MEI_TXE is not set # CONFIG_INTEL_MEI_HDCP is not set +# CONFIG_INTEL_MEI_PXP is not set CONFIG_VMWARE_VMCI=m CONFIG_GENWQE=m CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=0 @@ -2854,7 +2868,6 @@ CONFIG_ATA_BMDMA=y CONFIG_ATA_PIIX=m CONFIG_SATA_DWC=m # CONFIG_SATA_DWC_OLD_DMA is not set -# CONFIG_SATA_DWC_DEBUG is not set CONFIG_SATA_MV=m CONFIG_SATA_NV=m CONFIG_SATA_PROMISE=m @@ -3113,7 +3126,7 @@ CONFIG_NET_DSA_XRS700X=m CONFIG_NET_DSA_XRS700X_I2C=m CONFIG_NET_DSA_XRS700X_MDIO=m CONFIG_NET_DSA_QCA8K=m -CONFIG_NET_DSA_REALTEK_SMI=m +CONFIG_NET_DSA_REALTEK=m CONFIG_NET_DSA_SMSC_LAN9303=m CONFIG_NET_DSA_SMSC_LAN9303_I2C=m CONFIG_NET_DSA_SMSC_LAN9303_MDIO=m @@ -3160,6 +3173,7 @@ CONFIG_ATL1=m CONFIG_ATL1E=m CONFIG_ATL1C=m CONFIG_ALX=m +CONFIG_CX_ECAT=m CONFIG_NET_VENDOR_BROADCOM=y CONFIG_B44=m CONFIG_B44_PCI_AUTOSELECT=y @@ -3178,8 +3192,6 @@ CONFIG_BNXT_SRIOV=y CONFIG_BNXT_FLOWER_OFFLOAD=y CONFIG_BNXT_DCB=y CONFIG_BNXT_HWMON=y -CONFIG_NET_VENDOR_BROCADE=y -CONFIG_BNA=m CONFIG_NET_VENDOR_CADENCE=y CONFIG_MACB=m CONFIG_MACB_USE_HWSTAMP=y @@ -3207,7 +3219,6 @@ CONFIG_CHELSIO_TLS_DEVICE=m CONFIG_NET_VENDOR_CISCO=y CONFIG_ENIC=m CONFIG_NET_VENDOR_CORTINA=y -CONFIG_CX_ECAT=m CONFIG_DNET=m CONFIG_NET_VENDOR_DEC=y CONFIG_NET_TULIP=y @@ -3234,6 +3245,9 @@ CONFIG_BE2NET_BE2=y CONFIG_BE2NET_BE3=y CONFIG_BE2NET_LANCER=y CONFIG_BE2NET_SKYHAWK=y +CONFIG_NET_VENDOR_ENGLEDER=y +CONFIG_TSNEP=m +# CONFIG_TSNEP_SELFTESTS is not set CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_FUJITSU=y CONFIG_PCMCIA_FMVJ18X=m @@ -3268,8 +3282,6 @@ CONFIG_ICE_SWITCHDEV=y CONFIG_ICE_HWTS=y CONFIG_FM10K=m CONFIG_IGC=m -CONFIG_NET_VENDOR_MICROSOFT=y -CONFIG_MICROSOFT_MANA=m CONFIG_JME=m CONFIG_NET_VENDOR_LITEX=y CONFIG_NET_VENDOR_MARVELL=y @@ -3331,10 +3343,14 @@ CONFIG_ENCX24J600=m CONFIG_LAN743X=m CONFIG_NET_VENDOR_MICROSEMI=y CONFIG_MSCC_OCELOT_SWITCH_LIB=m +CONFIG_NET_VENDOR_MICROSOFT=y +CONFIG_MICROSOFT_MANA=m CONFIG_NET_VENDOR_MYRI=y CONFIG_MYRI10GE=m CONFIG_MYRI10GE_DCA=y CONFIG_FEALNX=m +CONFIG_NET_VENDOR_NI=y +CONFIG_NI_XGE_MANAGEMENT_ENET=m CONFIG_NET_VENDOR_NATSEMI=y CONFIG_NATSEMI=m CONFIG_NS83820=m @@ -3347,8 +3363,6 @@ CONFIG_NFP=m CONFIG_NFP_APP_FLOWER=y CONFIG_NFP_APP_ABM_NIC=y # CONFIG_NFP_DEBUG is not set -CONFIG_NET_VENDOR_NI=y -CONFIG_NI_XGE_MANAGEMENT_ENET=m CONFIG_NET_VENDOR_8390=y CONFIG_PCMCIA_AXNET=m CONFIG_NE2K_PCI=m @@ -3377,6 +3391,8 @@ CONFIG_QED_RDMA=y CONFIG_QED_ISCSI=y CONFIG_QED_FCOE=y CONFIG_QED_OOO=y +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_BNA=m CONFIG_NET_VENDOR_QUALCOMM=y CONFIG_QCOM_EMAC=m CONFIG_RMNET=m @@ -3397,6 +3413,11 @@ CONFIG_ROCKER=m CONFIG_NET_VENDOR_SAMSUNG=y CONFIG_SXGBE_ETH=m CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +CONFIG_SC92031=m +CONFIG_NET_VENDOR_SIS=y +CONFIG_SIS900=m +CONFIG_SIS190=m CONFIG_NET_VENDOR_SOLARFLARE=y CONFIG_SFC=m CONFIG_SFC_MTD=y @@ -3405,11 +3426,6 @@ CONFIG_SFC_SRIOV=y CONFIG_SFC_MCDI_LOGGING=y CONFIG_SFC_FALCON=m CONFIG_SFC_FALCON_MTD=y -CONFIG_NET_VENDOR_SILAN=y -CONFIG_SC92031=m -CONFIG_NET_VENDOR_SIS=y -CONFIG_SIS900=m -CONFIG_SIS190=m CONFIG_NET_VENDOR_SMSC=y CONFIG_PCMCIA_SMC91C92=m CONFIG_EPIC100=m @@ -3437,6 +3453,8 @@ CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_PHY_SEL is not set CONFIG_TLAN=m +CONFIG_NET_VENDOR_VERTEXCOM=y +CONFIG_MSE102X=m CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -3519,6 +3537,9 @@ CONFIG_MICREL_KS8995MA=m # # MCTP Device Drivers # +CONFIG_MCTP_SERIAL=m +# end of MCTP Device Drivers + CONFIG_MDIO_DEVICE=m CONFIG_MDIO_BUS=m CONFIG_FWNODE_MDIO=m @@ -3748,7 +3769,6 @@ CONFIG_IWLWIFI_LEDS=y CONFIG_IWLDVM=m CONFIG_IWLMVM=m CONFIG_IWLWIFI_OPMODE_MODULAR=y -# CONFIG_IWLWIFI_BCAST_FILTERING is not set # # Debugging Options @@ -3758,6 +3778,7 @@ CONFIG_IWLWIFI_DEBUGFS=y CONFIG_IWLWIFI_DEVICE_TRACING=y # end of Debugging Options +# CONFIG_IWLMEI is not set CONFIG_WLAN_VENDOR_INTERSIL=y CONFIG_HOSTAP=m CONFIG_HOSTAP_FIRMWARE=y @@ -3949,6 +3970,7 @@ CONFIG_IEEE802154_HWSIM=m # Wireless WAN # CONFIG_WWAN=y +CONFIG_WWAN_DEBUGFS=y CONFIG_WWAN_HWSIM=m CONFIG_MHI_WWAN_CTRL=m CONFIG_MHI_WWAN_MBIM=m @@ -4364,6 +4386,7 @@ CONFIG_SERIAL_8250_DW=m CONFIG_SERIAL_8250_RT288X=y CONFIG_SERIAL_8250_LPSS=y CONFIG_SERIAL_8250_MID=y +CONFIG_SERIAL_8250_PERICOM=y # # Non-8250 serial port support @@ -4723,6 +4746,7 @@ CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y CONFIG_GPIOLIB_IRQCHIP=y # CONFIG_DEBUG_GPIO is not set +# CONFIG_GPIO_SYSFS is not set CONFIG_GPIO_CDEV=y CONFIG_GPIO_CDEV_V1=y CONFIG_GPIO_GENERIC=m @@ -4831,6 +4855,7 @@ CONFIG_GPIO_VIPERBOARD=m CONFIG_GPIO_AGGREGATOR=m CONFIG_GPIO_MOCKUP=m CONFIG_GPIO_VIRTIO=m +CONFIG_GPIO_SIM=m # end of Virtual GPIO drivers CONFIG_W1=m @@ -4927,6 +4952,7 @@ CONFIG_CHARGER_LT3651=m CONFIG_CHARGER_LTC4162L=m CONFIG_CHARGER_MAX14577=m CONFIG_CHARGER_MAX77693=m +CONFIG_CHARGER_MAX77976=m CONFIG_CHARGER_MAX8997=m CONFIG_CHARGER_MAX8998=m CONFIG_CHARGER_MP2629=m @@ -5038,6 +5064,7 @@ CONFIG_SENSORS_MAX1668=m CONFIG_SENSORS_MAX197=m CONFIG_SENSORS_MAX31722=m CONFIG_SENSORS_MAX31730=m +# CONFIG_SENSORS_MAX6620 is not set CONFIG_SENSORS_MAX6621=m CONFIG_SENSORS_MAX6639=m CONFIG_SENSORS_MAX6642=m @@ -5076,6 +5103,7 @@ CONFIG_SENSORS_NCT7802=m CONFIG_SENSORS_NCT7904=m CONFIG_SENSORS_NPCM7XX=m CONFIG_SENSORS_NZXT_KRAKEN2=m +CONFIG_SENSORS_NZXT_SMART2=m CONFIG_SENSORS_PCF8591=m CONFIG_PMBUS=m CONFIG_SENSORS_PMBUS=m @@ -5083,6 +5111,7 @@ CONFIG_SENSORS_ADM1266=m CONFIG_SENSORS_ADM1275=m CONFIG_SENSORS_BEL_PFE=m CONFIG_SENSORS_BPA_RS600=m +CONFIG_SENSORS_DELTA_AHE50DC_FAN=m CONFIG_SENSORS_FSP_3Y=m CONFIG_SENSORS_IBM_CFFPS=m CONFIG_SENSORS_DPS920AB=m @@ -5090,6 +5119,7 @@ CONFIG_SENSORS_INSPUR_IPSPS=m CONFIG_SENSORS_IR35221=m CONFIG_SENSORS_IR36021=m CONFIG_SENSORS_IR38064=m +CONFIG_SENSORS_IR38064_REGULATOR=y CONFIG_SENSORS_IRPS5401=m CONFIG_SENSORS_ISL68137=m CONFIG_SENSORS_LM25066=m @@ -5106,6 +5136,7 @@ CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +CONFIG_SENSORS_MP5023=m CONFIG_SENSORS_PIM4328=m CONFIG_SENSORS_PM6764TR=m CONFIG_SENSORS_PXE1610=m @@ -5143,6 +5174,7 @@ CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_INA238=m CONFIG_SENSORS_INA3221=m CONFIG_SENSORS_TC74=m CONFIG_SENSORS_THMC50=m @@ -5177,6 +5209,8 @@ CONFIG_SENSORS_INTEL_M10_BMC_HWMON=m # CONFIG_SENSORS_ACPI_POWER=m CONFIG_SENSORS_ATK0110=m +CONFIG_SENSORS_ASUS_WMI=m +CONFIG_SENSORS_ASUS_WMI_EC=m CONFIG_THERMAL=y CONFIG_THERMAL_NETLINK=y # CONFIG_THERMAL_STATISTICS is not set @@ -5296,8 +5330,10 @@ CONFIG_W83877F_WDT=m CONFIG_W83977F_WDT=m CONFIG_MACHZ_WDT=m CONFIG_SBC_EPX_C3_WATCHDOG=m +# CONFIG_INTEL_MEI_WDT is not set CONFIG_NI903X_WDT=m CONFIG_NIC7018_WDT=m +CONFIG_SIEMENS_SIMATIC_IPC_WDT=m CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -5383,7 +5419,6 @@ CONFIG_MFD_INTEL_LPSS=m CONFIG_MFD_INTEL_LPSS_ACPI=m CONFIG_MFD_INTEL_LPSS_PCI=m CONFIG_MFD_INTEL_PMC_BXT=m -CONFIG_MFD_INTEL_PMT=m CONFIG_MFD_IQS62X=m CONFIG_MFD_JANZ_CMODIO=m CONFIG_MFD_KEMPLD=m @@ -5432,7 +5467,6 @@ CONFIG_MFD_TPS65910=y CONFIG_MFD_TPS65912=m CONFIG_MFD_TPS65912_I2C=m CONFIG_MFD_TPS65912_SPI=m -CONFIG_MFD_TPS80031=y CONFIG_TWL4030_CORE=y CONFIG_MFD_TWL4030_AUDIO=y CONFIG_TWL6040_CORE=y @@ -5508,6 +5542,7 @@ CONFIG_REGULATOR_MAX8925=m CONFIG_REGULATOR_MAX8952=m CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MAX20086=m CONFIG_REGULATOR_MAX77693=m CONFIG_REGULATOR_MAX77826=m CONFIG_REGULATOR_MC13XXX_CORE=m @@ -5552,7 +5587,7 @@ CONFIG_REGULATOR_TPS6524X=m CONFIG_REGULATOR_TPS6586X=m CONFIG_REGULATOR_TPS65910=m CONFIG_REGULATOR_TPS65912=m -CONFIG_REGULATOR_TPS80031=m +CONFIG_REGULATOR_TPS68470=m CONFIG_REGULATOR_TWL4030=m CONFIG_REGULATOR_WM831X=m CONFIG_REGULATOR_WM8350=m @@ -6418,6 +6453,7 @@ CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_SELFTEST is not set CONFIG_DRM_KMS_HELPER=y # CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set +# CONFIG_DRM_DEBUG_MODESET_LOCK is not set CONFIG_DRM_FBDEV_EMULATION=y CONFIG_DRM_FBDEV_OVERALLOC=100 # CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set @@ -6426,8 +6462,7 @@ CONFIG_DRM_DP_CEC=y CONFIG_DRM_TTM=m CONFIG_DRM_VRAM_HELPER=m CONFIG_DRM_TTM_HELPER=m -CONFIG_DRM_GEM_CMA_HELPER=y -CONFIG_DRM_KMS_CMA_HELPER=y +CONFIG_DRM_GEM_CMA_HELPER=m CONFIG_DRM_GEM_SHMEM_HELPER=y CONFIG_DRM_SCHED=m @@ -6551,6 +6586,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_GM12U320=m CONFIG_DRM_SIMPLEDRM=y CONFIG_TINYDRM_HX8357D=m +CONFIG_TINYDRM_ILI9163=m CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m CONFIG_TINYDRM_ILI9486=m @@ -6565,6 +6601,8 @@ CONFIG_DRM_GUD=m CONFIG_DRM_HYPERV=m # CONFIG_DRM_LEGACY is not set CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y +CONFIG_DRM_NOMODESET=y +CONFIG_DRM_PRIVACY_SCREEN=y # # Frame buffer Devices @@ -6572,7 +6610,7 @@ CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y CONFIG_FB_CMDLINE=y CONFIG_FB_NOTIFY=y CONFIG_FB=y -CONFIG_FIRMWARE_EDID=y +# CONFIG_FIRMWARE_EDID is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y @@ -6583,8 +6621,8 @@ CONFIG_FB_SYS_IMAGEBLIT=y # CONFIG_FB_FOREIGN_ENDIAN is not set CONFIG_FB_SYS_FOPS=y CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_TILEBLITTING=y +# CONFIG_FB_MODE_HELPERS is not set +# CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers @@ -6852,6 +6890,9 @@ CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=0 CONFIG_SND_HDA_PATCH_LOADER=y +CONFIG_SND_HDA_SCODEC_CS35L41=m +CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m +CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m CONFIG_SND_HDA_CODEC_REALTEK=m CONFIG_SND_HDA_CODEC_ANALOG=m CONFIG_SND_HDA_CODEC_SIGMATEL=m @@ -7046,6 +7087,9 @@ CONFIG_SND_SOC_SOF_ACPI_DEV=m # CONFIG_SND_SOC_SOF_DEVELOPER_SUPPORT is not set CONFIG_SND_SOC_SOF=m CONFIG_SND_SOC_SOF_PROBE_WORK_QUEUE=y +CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m +CONFIG_SND_SOC_SOF_AMD_COMMON=m +CONFIG_SND_SOC_SOF_AMD_RENOIR=m CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y CONFIG_SND_SOC_SOF_INTEL_HIFI_EP_IPC=m CONFIG_SND_SOC_SOF_INTEL_ATOM_HIFI_EP=m @@ -7108,6 +7152,7 @@ CONFIG_SND_SOC_ADAU7118_HW=m CONFIG_SND_SOC_ADAU7118_I2C=m CONFIG_SND_SOC_AK4104=m CONFIG_SND_SOC_AK4118=m +CONFIG_SND_SOC_AK4375=m CONFIG_SND_SOC_AK4458=m CONFIG_SND_SOC_AK4554=m CONFIG_SND_SOC_AK4613=m @@ -7399,6 +7444,7 @@ CONFIG_HID_KENSINGTON=m CONFIG_HID_LCPOWER=m CONFIG_HID_LED=m CONFIG_HID_LENOVO=m +CONFIG_HID_LETSKETCH=m CONFIG_HID_LOGITECH=m CONFIG_HID_LOGITECH_DJ=m CONFIG_HID_LOGITECH_HIDPP=m @@ -7569,6 +7615,7 @@ CONFIG_USB_R8A66597_HCD=m CONFIG_USB_HCD_BCMA=m CONFIG_USB_HCD_SSB=m # CONFIG_USB_HCD_TEST_MODE is not set +CONFIG_USB_XEN_HCD=m # # USB Device Class drivers @@ -8064,6 +8111,11 @@ CONFIG_LEDS_TRIGGER_NETDEV=m CONFIG_LEDS_TRIGGER_PATTERN=m CONFIG_LEDS_TRIGGER_AUDIO=m CONFIG_LEDS_TRIGGER_TTY=m + +# +# Simple LED drivers +# +CONFIG_LEDS_SIEMENS_SIMATIC_IPC=m CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y @@ -8581,6 +8633,7 @@ CONFIG_PEAQ_WMI=m CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m CONFIG_XIAOMI_WMI=m CONFIG_GIGABYTE_WMI=m +CONFIG_YOGABOOK_WMI=m CONFIG_ACERHDF=m CONFIG_ACER_WIRELESS=m CONFIG_ACER_WMI=m @@ -8591,6 +8644,7 @@ CONFIG_ASUS_LAPTOP=m CONFIG_ASUS_WIRELESS=m CONFIG_ASUS_WMI=m CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_TF103C_DOCK=m CONFIG_MERAKI_MX100=m CONFIG_EEEPC_LAPTOP=m CONFIG_EEEPC_WMI=m @@ -8661,6 +8715,7 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +CONFIG_INTEL_VSEC=m CONFIG_MSI_LAPTOP=m CONFIG_MSI_WMI=m CONFIG_PCENGINES_APU2=m @@ -8682,6 +8737,7 @@ CONFIG_TOPSTAR_LAPTOP=m CONFIG_I2C_MULTI_INSTANTIATE=m CONFIG_MLX_PLATFORM=m CONFIG_TOUCHSCREEN_DMI=y +CONFIG_X86_ANDROID_TABLETS=m CONFIG_FW_ATTR_CLASS=m CONFIG_INTEL_IPS=m CONFIG_INTEL_SCU_IPC=y @@ -8689,6 +8745,7 @@ CONFIG_INTEL_SCU=y CONFIG_INTEL_SCU_PCI=y CONFIG_INTEL_SCU_PLATFORM=m CONFIG_INTEL_SCU_IPC_UTIL=m +CONFIG_SIEMENS_SIMATIC_IPC=m CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m @@ -8742,6 +8799,7 @@ CONFIG_COMMON_CLK_SI5341=m CONFIG_COMMON_CLK_SI5351=m CONFIG_COMMON_CLK_SI544=m CONFIG_COMMON_CLK_CDCE706=m +CONFIG_COMMON_CLK_TPS68470=m CONFIG_COMMON_CLK_CS2000_CP=m CONFIG_CLK_TWL6040=m CONFIG_COMMON_CLK_PALMAS=m @@ -9033,6 +9091,9 @@ CONFIG_TI_ADC128S052=m CONFIG_TI_ADC161S626=m CONFIG_TI_ADS1015=m CONFIG_TI_ADS7950=m +CONFIG_TI_ADS8344=m +CONFIG_TI_ADS8688=m +CONFIG_TI_ADS124S08=m CONFIG_TI_ADS131E08=m CONFIG_TI_AM335X_ADC=m CONFIG_TI_TLC4541=m @@ -9044,6 +9105,12 @@ CONFIG_XILINX_XADC=m # end of Analog to digital converters # +# Analog to digital and digital to analog converters +# +CONFIG_AD74413R=m +# end of Analog to digital and digital to analog converters + +# # Analog Front Ends # # end of Analog Front Ends @@ -9139,6 +9206,7 @@ CONFIG_AD5764=m CONFIG_AD5766=m CONFIG_AD5770R=m CONFIG_AD5791=m +CONFIG_AD7293=m CONFIG_AD7303=m CONFIG_AD8801=m CONFIG_DS4424=m @@ -9162,6 +9230,12 @@ CONFIG_TI_DAC7612=m # end of IIO dummy driver # +# Filters +# +CONFIG_ADMV8818=m +# end of Filters + +# # Frequency Synthesizers DDS/PLL # @@ -9176,6 +9250,8 @@ CONFIG_AD9523=m # CONFIG_ADF4350=m CONFIG_ADF4371=m +CONFIG_ADMV1013=m +CONFIG_ADRF6780=m # end of Phase-Locked Loop (PLL) frequency synthesizers # end of Frequency Synthesizers DDS/PLL @@ -9471,6 +9547,7 @@ CONFIG_TMP117=m CONFIG_TSYS01=m CONFIG_TSYS02D=m CONFIG_MAX31856=m +# CONFIG_MAX31865 is not set # end of Temperature sensors CONFIG_NTB=m @@ -9573,14 +9650,12 @@ CONFIG_BTT=y CONFIG_ND_PFN=m CONFIG_NVDIMM_PFN=y CONFIG_NVDIMM_DAX=y -CONFIG_DAX_DRIVER=y CONFIG_DAX=y CONFIG_DEV_DAX=m CONFIG_DEV_DAX_PMEM=m CONFIG_DEV_DAX_HMEM=m CONFIG_DEV_DAX_HMEM_DEVICES=y CONFIG_DEV_DAX_KMEM=m -CONFIG_DEV_DAX_PMEM_COMPAT=m CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y CONFIG_RAVE_SP_EEPROM=m @@ -9625,6 +9700,13 @@ CONFIG_FPGA_DFL_AFU=m CONFIG_FPGA_DFL_NIOS_INTEL_PAC_N3000=m CONFIG_FPGA_DFL_PCI=m # CONFIG_TEE is not set + +# +# TEE drivers +# +# CONFIG_AMDTEE is not set +# end of TEE drivers + CONFIG_MULTIPLEXER=m # @@ -9766,6 +9848,7 @@ CONFIG_FSCACHE_STATS=y # CONFIG_FSCACHE_DEBUG is not set CONFIG_CACHEFILES=m # CONFIG_CACHEFILES_DEBUG is not set +# CONFIG_CACHEFILES_ERROR_INJECTION is not set # end of Caches # @@ -10121,16 +10204,15 @@ CONFIG_LSM="landlock,yama,bpf" # # Kernel hardening options # -CONFIG_GCC_PLUGIN_STRUCTLEAK=y # # Memory initialization # +CONFIG_CC_HAS_AUTO_VAR_INIT_PATTERN=y +CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO=y # CONFIG_INIT_STACK_NONE is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_USER is not set -# CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF is not set -CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL=y -# CONFIG_GCC_PLUGIN_STRUCTLEAK_VERBOSE is not set +# CONFIG_INIT_STACK_ALL_PATTERN is not set +CONFIG_INIT_STACK_ALL_ZERO=y # CONFIG_GCC_PLUGIN_STACKLEAK is not set CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y # CONFIG_INIT_ON_FREE_DEFAULT_ON is not set @@ -10161,7 +10243,7 @@ CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=y CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=m +CONFIG_CRYPTO_RNG_DEFAULT=y CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_AKCIPHER=y CONFIG_CRYPTO_KPP2=y @@ -10314,12 +10396,13 @@ CONFIG_CRYPTO_ZSTD=y # Random Number Generation # CONFIG_CRYPTO_ANSI_CPRNG=m -CONFIG_CRYPTO_DRBG_MENU=m +CONFIG_CRYPTO_DRBG_MENU=y CONFIG_CRYPTO_DRBG_HMAC=y CONFIG_CRYPTO_DRBG_HASH=y CONFIG_CRYPTO_DRBG_CTR=y -CONFIG_CRYPTO_DRBG=m +CONFIG_CRYPTO_DRBG=y CONFIG_CRYPTO_JITTERENTROPY=y +CONFIG_CRYPTO_KDF800108_CTR=y CONFIG_CRYPTO_USER_API=m CONFIG_CRYPTO_USER_API_HASH=m CONFIG_CRYPTO_USER_API_SKCIPHER=m @@ -10329,29 +10412,6 @@ CONFIG_CRYPTO_USER_API_AEAD=m # CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set CONFIG_CRYPTO_STATS=y CONFIG_CRYPTO_HASH_INFO=y - -# -# Crypto library routines -# -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=m -CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=m -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=m -CONFIG_CRYPTO_LIB_BLAKE2S=m -CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m -CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m -CONFIG_CRYPTO_LIB_CHACHA=m -CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m -CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m -CONFIG_CRYPTO_LIB_CURVE25519=m -CONFIG_CRYPTO_LIB_DES=m -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m -CONFIG_CRYPTO_LIB_POLY1305=m -CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LIB_SM4=m CONFIG_CRYPTO_HW=y CONFIG_CRYPTO_DEV_PADLOCK=m CONFIG_CRYPTO_DEV_PADLOCK_AES=m @@ -10421,7 +10481,6 @@ CONFIG_BITREVERSE=y CONFIG_GENERIC_STRNCPY_FROM_USER=y CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GENERIC_NET_UTILS=y -CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_CORDIC=m # CONFIG_PRIME_NUMBERS is not set CONFIG_RATIONAL=y @@ -10430,6 +10489,30 @@ CONFIG_GENERIC_IOMAP=y CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y CONFIG_ARCH_HAS_FAST_MULTIPLIER=y CONFIG_ARCH_USE_SYM_ANNOTATIONS=y + +# +# Crypto library routines +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_LIB_ARC4=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_BLAKE2S=y +CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y +CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=m +CONFIG_CRYPTO_LIB_CHACHA_GENERIC=m +CONFIG_CRYPTO_LIB_CHACHA=m +CONFIG_CRYPTO_ARCH_HAVE_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_CURVE25519_GENERIC=m +CONFIG_CRYPTO_LIB_CURVE25519=m +CONFIG_CRYPTO_LIB_DES=m +CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 +CONFIG_CRYPTO_ARCH_HAVE_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_POLY1305_GENERIC=m +CONFIG_CRYPTO_LIB_POLY1305=m +CONFIG_CRYPTO_LIB_CHACHA20POLY1305=m +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_LIB_SM4=m +# end of Crypto library routines + CONFIG_CRC_CCITT=y CONFIG_CRC16=m CONFIG_CRC_T10DIF=y @@ -10618,11 +10701,19 @@ CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_MISC is not set # +# Networking Debugging +# +# CONFIG_NET_DEV_REFCNT_TRACKER is not set +# CONFIG_NET_NS_REFCNT_TRACKER is not set +# end of Networking Debugging + +# # Memory Debugging # # CONFIG_PAGE_EXTENSION is not set # CONFIG_DEBUG_PAGEALLOC is not set # CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_TABLE_CHECK is not set CONFIG_PAGE_POISONING=y # CONFIG_DEBUG_PAGE_REF is not set CONFIG_DEBUG_RODATA_TEST=y @@ -10656,6 +10747,7 @@ CONFIG_HAVE_ARCH_KFENCE=y CONFIG_KFENCE=y CONFIG_KFENCE_SAMPLE_INTERVAL=100 CONFIG_KFENCE_NUM_OBJECTS=255 +# CONFIG_KFENCE_STATIC_KEYS is not set CONFIG_KFENCE_STRESS_TEST_FAULTS=0 # end of Memory Debugging @@ -10759,6 +10851,8 @@ CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_FENTRY=y CONFIG_HAVE_OBJTOOL_MCOUNT=y CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_BUILDTIME_MCOUNT_SORT=y +CONFIG_BUILDTIME_MCOUNT_SORT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_TRACE_CLOCK=y CONFIG_RING_BUFFER=y @@ -10808,6 +10902,7 @@ CONFIG_HIST_TRIGGERS=y # CONFIG_TRACE_EVAL_MAP_FILE is not set # CONFIG_FTRACE_RECORD_RECURSION is not set # CONFIG_FTRACE_STARTUP_TEST is not set +# CONFIG_FTRACE_SORT_STARTUP_TEST is not set # CONFIG_RING_BUFFER_STARTUP_TEST is not set # CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set # CONFIG_MMIOTRACE_TEST is not set @@ -10866,6 +10961,7 @@ CONFIG_RUNTIME_TESTING_MENU=y # CONFIG_TEST_MIN_HEAP is not set # CONFIG_TEST_DIV64 is not set # CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_TEST_REF_TRACKER is not set # CONFIG_RBTREE_TEST is not set # CONFIG_REED_SOLOMON_TEST is not set # CONFIG_INTERVAL_TREE_TEST is not set @@ -10884,7 +10980,7 @@ CONFIG_ASYNC_RAID6_TEST=m # CONFIG_TEST_XARRAY is not set # CONFIG_TEST_OVERFLOW is not set # CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_HASH is not set +# CONFIG_TEST_SIPHASH is not set # CONFIG_TEST_IDA is not set # CONFIG_TEST_PARMAN is not set # CONFIG_TEST_LKM is not set diff --git a/raid6-default-algo.patch b/raid6-default-algo.patch index 98bfd54..77e13f4 100644 --- a/raid6-default-algo.patch +++ b/raid6-default-algo.patch @@ -41,7 +41,7 @@ index d3b16f43c39f..480cbfbe293f 100644 struct raid6_calls raid6_call; EXPORT_SYMBOL_GPL(raid6_call); -@@ -157,6 +163,26 @@ static inline const struct raid6_calls *raid6_choose_gen( +@@ -157,6 +163,26 @@ int start = (disks>>1)-1, stop = disks-3; /* work on the second half of the disks */ const struct raid6_calls *const *algo; const struct raid6_calls *best; @@ -65,6 +65,6 @@ index d3b16f43c39f..480cbfbe293f 100644 + } +#endif + - for (bestgenperf = 0, bestxorperf = 0, best = NULL, algo = raid6_algos; *algo; algo++) { - if (!best || (*algo)->prefer >= best->prefer) { - /* 2 ^ (RAID6_TIME_JIFFIES_LG2 - 0.5) */ + for (bestgenperf = 0, best = NULL, algo = raid6_algos; *algo; algo++) { + if (!best || (*algo)->priority >= best->priority) { + if ((*algo)->valid && !(*algo)->valid()) |