diff options
author | Evgeny Myandin | 2022-04-07 08:26:06 +0300 |
---|---|---|
committer | Evgeny Myandin | 2022-04-07 08:26:06 +0300 |
commit | 161ed61a0dcca5ec8007c5126dd07e766f589abf (patch) | |
tree | 7a169ae257aa93edbf6a6be189ca4eebf474f376 | |
parent | 6fe36e5d1d776bd2025cd3ad56454bf93f43db21 (diff) | |
download | aur-161ed61a0dcca5ec8007c5126dd07e766f589abf.tar.gz |
release kernel 5.17.1
15 files changed, 506 insertions, 1534 deletions
@@ -20,15 +20,9 @@ pkgbase = linux-acs-manjaro source = https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.16.tar.xz source = https://www.kernel.org/pub/linux/kernel/v5.x/patch-5.16.18.xz source = config - source = 0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch - source = 0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch - source = 0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch - source = 0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch - source = 0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch - source = 0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch - source = 0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch - source = 0101-i2c-nuvoton-nc677x-hwmon-driver.patch - source = 0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch + source = 0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch + source = 0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch + source = 0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch source = 0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch source = 0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch source = 0303-revert-fbcon-remove-soft-scrollback-code.patch @@ -46,18 +40,12 @@ pkgbase = linux-acs-manjaro source = 0412-bootsplash.patch source = 0413-bootsplash.gitpatch source = 0999-acs.gitpatch - sha256sums = 027d7e8988bb69ac12ee92406c3be1fe13f990b1ca2249e226225cd1573308bb - sha256sums = 3bb88aa87c3f7788ad84ca5cbf3946ed9fbb3fddb9fca2458944fba5ebd2ab16 - sha256sums = 67ea8810d3e58c1b661ff1372886aa8b560f97938ff62a3d12a6ff60784aeccf - sha256sums = 986f8d802f37b72a54256f0ab84da83cb229388d58c0b6750f7c770818a18421 - sha256sums = b89188b1bc3516d54965dd36def6a2af3d81379e53ff7e527bbd91f77c6f191b - sha256sums = adfabecb2e23cfaebe1d493a54119a967a97930dac677e20f26d4bcaa1b80f3c - sha256sums = 7aa2293dff32463665c2a35054c5164470e24075ddda181715d4079ca126cbbd - sha256sums = 9c67c62e9e744eaeae43c80d83c9eb61b486406cf18cd057427bdbc44f8e4e10 - sha256sums = f8fc51c0c644ae743154c37b77ade50fa5a950980c9dd56d8752e4d6b5dfb153 - sha256sums = 24fc6f087aa82a72905f0fb6b9f3f5f18741187d5a425f5ec845dab436ab1c58 - sha256sums = 7823d7488f42bc4ed7dfae6d1014dbde679d8b862c9a3697a39ba0dae5918978 - sha256sums = 5e804e1f241ce542f3f0e83d274ede6aa4b0539e510fb9376f8106e8732ce69b + sha256sums = 555fef61dddb591a83d62dd04e252792f9af4ba9ef14683f64840e46fa20b1b1 + sha256sums = 24c982d6b7b704b31a6b4bc0a59cbf2135697a58d5d6030532ae07856da36944 + sha256sums = a94d5d374f4cdb439f3958b50f7af0f4e024fa17d7df3f30e548f40314e210c0 + sha256sums = f85b07d73b2f4ad8bb6b59ee6624b2dd06a03824fc7b00131a01df36c8d899fe + sha256sums = fc9223bf2d430ab1c122daada4f51d835a74f56c007c82842eeca3acd2d788be + sha256sums = edd40fa0d23e9cbbf5ed7f37b2e0ed8e84798701b08a0dc262afd751acf17e04 sha256sums = 2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326 sha256sums = 94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc sha256sums = 1f18c5c10a3c63e41ecd05ad34cd9f6653ba96e9f1049ce2b7bb6da2578ae710 diff --git a/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch b/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch deleted file mode 100644 index 80cd663cd131..000000000000 --- a/0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.patch +++ /dev/null @@ -1,58 +0,0 @@ -From efbb86e8bf678eb5a376deaa3b693fb7a21b8e41 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] 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> ---- - 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 9359bff4729659..8f9109b40961f4 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"); -@@ -2466,6 +2468,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) { - 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 2eb057be96a5..000000000000 --- a/0003_Bluetooth_Read_codec_capabilities_only_if_supported.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 002d105f8a78b19624fc5e3eccbb77af8b1a3a77 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] 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 f0421d0edaa377..38201532f58e82 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); - 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 2959cfbb03f1..000000000000 --- a/0004_Bluetooth_fix_deadlock_for_RFCOMM_sk_state_change.patch +++ /dev/null @@ -1,229 +0,0 @@ - -From 57146857cb0f54f36038f7270ac4ab5d2f3f9ed8 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] 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 99d26879b02a53..a92799fc5e74d0 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 7324764384b677..c6494e85cd68b2 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 4bf4ea6cbb5eee..4850dafbaa05fb 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 ---- */ 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 3abc9e31c623..000000000000 --- a/0005_mt76_mt7921_add_support_for_PCIe_ID_0x0608-0x0616.patch +++ /dev/null @@ -1,27 +0,0 @@ - -From 5c3de90cea9024359e4c78d2dc52b4b8043e9ee3 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] 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 40186e6cd865e9..1212b803b1c8d7 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) }, - { }, - }; - diff --git a/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch b/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch deleted file mode 100644 index 70e2f2bbb2d2..000000000000 --- a/0006_mt76_mt7921_reduce_log_severity_levels_for_informative_messages.patch +++ /dev/null @@ -1,43 +0,0 @@ - -From 3f214da518342648eee58bb01645d5e768f8120c 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] 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 4c6adbb9695503..ea4edf187e0a12 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 1212b803b1c8d7..9dae2f5972bf98 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); - diff --git a/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch b/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch deleted file mode 100644 index 64459571f9b9..000000000000 --- a/0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch +++ /dev/null @@ -1,234 +0,0 @@ - -From 546ff90cf9e006e9b08d93159b4883ff877654ed 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] 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 a1e87419f3a42d..2d2f2c091c65a6 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 85c5d08dfa9ccd..2364661a6a081c 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 0abbbf5d2bdf18..ba3aa4575d2510 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 499bef9fe11863..f3265575c28d20 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 695fa84611b667..967a0098f0a979 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 *); - }; - - /* diff --git a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch index 5301464f63c0..cc7b28782422 100644 --- a/0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch +++ b/0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch @@ -1,25 +1,48 @@ ---- a/include/linux/sysctl.h 2020-06-12 19:27:22.382363840 +0200 -+++ b/include/linux/sysctl.h 2020-06-12 19:27:04.715697333 +0200 -@@ -204,6 +204,10 @@ extern int unaligned_enabled; - extern int unaligned_dump_stack; - extern int no_unaligned_warning; - -+#ifdef CONFIG_USER_NS +From ba9638ad03df373965160a5bdb4173b544381767 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] ZEN: Add sysctl and CONFIG to disallow unprivileged + CLONE_NEWUSER + +Our default behavior continues to match the vanilla kernel. +--- + include/linux/user_namespace.h | 4 ++++ + init/Kconfig | 16 ++++++++++++++++ + kernel/fork.c | 14 ++++++++++++++ + kernel/sysctl.c | 12 ++++++++++++ + kernel/user_namespace.c | 7 +++++++ + 5 files changed, 53 insertions(+) + +diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h +index 33a4240e6a6f17..82213f9c4c17fb 100644 +--- a/include/linux/user_namespace.h ++++ b/include/linux/user_namespace.h +@@ -139,6 +139,8 @@ static inline void set_rlimit_ucount_max(struct user_namespace *ns, + + #ifdef CONFIG_USER_NS + +extern int unprivileged_userns_clone; -+#endif + - extern struct ctl_table sysctl_mount_point[]; - extern struct ctl_table random_table[]; - extern struct ctl_table firmware_config_table[]; + static inline struct user_namespace *get_user_ns(struct user_namespace *ns) + { + if (ns) +@@ -172,6 +174,8 @@ extern bool current_in_userns(const struct user_namespace *target_ns); + struct ns_common *ns_get_owner(struct ns_common *ns); + #else ++#define unprivileged_userns_clone 0 ++ + static inline struct user_namespace *get_user_ns(struct user_namespace *ns) + { + return &init_user_ns; diff --git a/init/Kconfig b/init/Kconfig -index bd7d650d4a99..658f9c052151 100644 +index e9119bf54b1f32..a1a5a68aea0708 100644 --- a/init/Kconfig +++ b/init/Kconfig -@@ -1091,6 +1091,22 @@ config USER_NS - +@@ -1231,6 +1231,22 @@ config USER_NS + If unsure, say N. - + +config USER_NS_UNPRIVILEGED + bool "Allow unprivileged users to create namespaces" + default y @@ -40,25 +63,24 @@ index bd7d650d4a99..658f9c052151 100644 bool "PID Namespaces" default y diff --git a/kernel/fork.c b/kernel/fork.c -index 541fd805fb88..ffd57c812153 100644 +index f1e89007f22889..49144b49a3d128 100644 --- a/kernel/fork.c +++ b/kernel/fork.c -@@ -106,6 +106,11 @@ - - #define CREATE_TRACE_POINTS - #include <trace/events/task.h> +@@ -98,6 +98,10 @@ + #include <linux/io_uring.h> + #include <linux/bpf.h> + +#ifdef CONFIG_USER_NS -+extern int unprivileged_userns_clone; -+#else -+#define unprivileged_userns_clone 0 ++#include <linux/user_namespace.h> +#endif - - /* - * Minimum number of threads to boot the kernel -@@ -1788,6 +1793,10 @@ static __latent_entropy struct task_struct *copy_process( ++ + #include <asm/pgalloc.h> + #include <linux/uaccess.h> + #include <asm/mmu_context.h> +@@ -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); - + + if ((clone_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) + if (!capable(CAP_SYS_ADMIN)) + return ERR_PTR(-EPERM); @@ -66,10 +88,10 @@ index 541fd805fb88..ffd57c812153 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2819,6 +2828,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; - + + if ((unshare_flags & CLONE_NEWUSER) && !unprivileged_userns_clone) { + err = -EPERM; + if (!capable(CAP_SYS_ADMIN)) @@ -80,13 +102,23 @@ index 541fd805fb88..ffd57c812153 100644 if (err) goto bad_unshare_out; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 078950d9605b..baead3605bbe 100644 +index 730ab56d9e92e6..6cf4e5c36ec925 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c -@@ -545,6 +548,15 @@ static struct ctl_table kern_table[] = { +@@ -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> ++#endif + + #if defined(CONFIG_SYSCTL) + +@@ -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", @@ -100,13 +132,13 @@ index 078950d9605b..baead3605bbe 100644 { .procname = "tainted", diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index 8eadadc478f9..c36ecd19562c 100644 +index 5481ba44a8d684..423ab2563ad757 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -21,6 +21,13 @@ #include <linux/bsearch.h> #include <linux/sort.h> - + +/* sysctl */ +#ifdef CONFIG_USER_NS_UNPRIVILEGED +int unprivileged_userns_clone = 1; @@ -116,7 +148,3 @@ index 8eadadc478f9..c36ecd19562c 100644 + static struct kmem_cache *user_ns_cachep __read_mostly; static DEFINE_MUTEX(userns_state_mutex); - --- -cgit v1.2.1-1-g437b - diff --git a/0101-i2c-nuvoton-nc677x-hwmon-driver.patch b/0101-i2c-nuvoton-nc677x-hwmon-driver.patch deleted file mode 100644 index 85f86d0da22d..000000000000 --- a/0101-i2c-nuvoton-nc677x-hwmon-driver.patch +++ /dev/null @@ -1,745 +0,0 @@ -From 994279ebfc0d19e185792fb11cacb63e6750e22e Mon Sep 17 00:00:00 2001 -From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org> -Date: Mon, 3 Aug 2020 21:18:53 +0200 -Subject: [PATCH] ZEN: Add OpenRGB patches - -Squashed commit of the following: - -commit 942ded8f8652a4b4e6b46d04938bb66f1eac4c78 -Author: Steven Barrett <steven@liquorix.net> -Date: Sat Jul 4 21:28:54 2020 -0500 - - openrgb: Deduplicate piix4 setup for HUDSON2/KERNCZ SMBUS - - In the original OpenRGB patches, the initialization code for CZ - secondary SMBus controllers was copied. Later, an upstream commit - landed in 5.7 stable that combined the initialization code for both - primary/secondary smbus channels. - - Combine the initialization code ahead of time so upstream merges - correctly with OpenRGB. - - Fixes: https://github.com/zen-kernel/zen-kernel/issues/176 - -commit a65e3ecf90b24fd44689cc0713af602965ffaf4e -Author: Steven Barrett <steven@liquorix.net> -Date: Wed Jun 17 14:24:20 2020 -0500 - - Add OpenRGB patch - 0c45e26c - - Source: - https://gitlab.com/CalcProgrammer1/OpenRGB/-/raw/master/OpenRGB.patch - - History: - https://gitlab.com/CalcProgrammer1/OpenRGB/-/commits/master/OpenRGB.patch ---- - drivers/i2c/busses/Kconfig | 9 + - drivers/i2c/busses/Makefile | 1 + - drivers/i2c/busses/i2c-nct6775.c | 647 +++++++++++++++++++++++++++++++ - drivers/i2c/busses/i2c-piix4.c | 4 +- - 4 files changed, 659 insertions(+), 2 deletions(-) - create mode 100644 drivers/i2c/busses/i2c-nct6775.c - -diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig -index 735bf31a3fdff..3bf00363cd769 100644 ---- a/drivers/i2c/busses/Kconfig -+++ b/drivers/i2c/busses/Kconfig -@@ -217,6 +217,15 @@ config I2C_CHT_WC - combined with a FUSB302 Type-C port-controller as such it is advised - to also select CONFIG_TYPEC_FUSB302=m. - -+config I2C_NCT6775 -+ tristate "Nuvoton NCT6775 and compatible SMBus controller" -+ help -+ If you say yes to this option, support will be included for the -+ Nuvoton NCT6775 and compatible SMBus controllers. -+ -+ This driver can also be built as a module. If so, the module -+ will be called i2c-nct6775. -+ - config I2C_NFORCE2 - tristate "Nvidia nForce2, nForce3 and nForce4" - depends on PCI -diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile -index 306d5dc3f417f..7e75d45c64e5b 100644 ---- a/drivers/i2c/busses/Makefile -+++ b/drivers/i2c/busses/Makefile -@@ -17,6 +17,7 @@ obj-$(CONFIG_I2C_CHT_WC) += i2c-cht-wc.o - obj-$(CONFIG_I2C_I801) += i2c-i801.o - obj-$(CONFIG_I2C_ISCH) += i2c-isch.o - obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o -+obj-$(CONFIG_I2C_NCT6775) += i2c-nct6775.o - obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o - obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o - obj-$(CONFIG_I2C_NVIDIA_GPU) += i2c-nvidia-gpu.o -diff --git a/drivers/i2c/busses/i2c-nct6775.c b/drivers/i2c/busses/i2c-nct6775.c -new file mode 100644 -index 0000000000000..0462f09520431 ---- /dev/null -+++ b/drivers/i2c/busses/i2c-nct6775.c -@@ -0,0 +1,647 @@ -+/* -+ * i2c-nct6775 - Driver for the SMBus master functionality of -+ * Nuvoton NCT677x Super-I/O chips -+ * -+ * Copyright (C) 2019 Adam Honse <calcprogrammer1@gmail.com> -+ * -+ * Derived from nct6775 hwmon driver -+ * Copyright (C) 2012 Guenter Roeck <linux@roeck-us.net> -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -+ * -+ */ -+ -+#include <linux/module.h> -+#include <linux/init.h> -+#include <linux/slab.h> -+#include <linux/jiffies.h> -+#include <linux/platform_device.h> -+#include <linux/hwmon.h> -+#include <linux/hwmon-sysfs.h> -+#include <linux/hwmon-vid.h> -+#include <linux/err.h> -+#include <linux/mutex.h> -+#include <linux/delay.h> -+#include <linux/ioport.h> -+#include <linux/i2c.h> -+#include <linux/acpi.h> -+#include <linux/bitops.h> -+#include <linux/dmi.h> -+#include <linux/io.h> -+#include <linux/nospec.h> -+ -+#define DRVNAME "i2c-nct6775" -+ -+/* Nuvoton SMBus address offsets */ -+#define SMBHSTDAT (0 + nuvoton_nct6793d_smba) -+#define SMBBLKSZ (1 + nuvoton_nct6793d_smba) -+#define SMBHSTCMD (2 + nuvoton_nct6793d_smba) -+#define SMBHSTIDX (3 + nuvoton_nct6793d_smba) //Index field is the Command field on other controllers -+#define SMBHSTCTL (4 + nuvoton_nct6793d_smba) -+#define SMBHSTADD (5 + nuvoton_nct6793d_smba) -+#define SMBHSTERR (9 + nuvoton_nct6793d_smba) -+#define SMBHSTSTS (0xE + nuvoton_nct6793d_smba) -+ -+/* Command register */ -+#define NCT6793D_READ_BYTE 0 -+#define NCT6793D_READ_WORD 1 -+#define NCT6793D_READ_BLOCK 2 -+#define NCT6793D_BLOCK_WRITE_READ_PROC_CALL 3 -+#define NCT6793D_PROC_CALL 4 -+#define NCT6793D_WRITE_BYTE 8 -+#define NCT6793D_WRITE_WORD 9 -+#define NCT6793D_WRITE_BLOCK 10 -+ -+/* Control register */ -+#define NCT6793D_MANUAL_START 128 -+#define NCT6793D_SOFT_RESET 64 -+ -+/* Error register */ -+#define NCT6793D_NO_ACK 32 -+ -+/* Status register */ -+#define NCT6793D_FIFO_EMPTY 1 -+#define NCT6793D_FIFO_FULL 2 -+#define NCT6793D_MANUAL_ACTIVE 4 -+ -+#define NCT6775_LD_SMBUS 0x0B -+ -+/* Other settings */ -+#define MAX_RETRIES 400 -+ -+enum kinds { nct6106, nct6775, nct6776, nct6779, nct6791, nct6792, nct6793, -+ nct6795, nct6796, nct6798 }; -+ -+struct nct6775_sio_data { -+ int sioreg; -+ enum kinds kind; -+}; -+ -+/* used to set data->name = nct6775_device_names[data->sio_kind] */ -+static const char * const nct6775_device_names[] = { -+ "nct6106", -+ "nct6775", -+ "nct6776", -+ "nct6779", -+ "nct6791", -+ "nct6792", -+ "nct6793", -+ "nct6795", -+ "nct6796", -+ "nct6798", -+}; -+ -+static const char * const nct6775_sio_names[] __initconst = { -+ "NCT6106D", -+ "NCT6775F", -+ "NCT6776D/F", -+ "NCT6779D", -+ "NCT6791D", -+ "NCT6792D", -+ "NCT6793D", -+ "NCT6795D", -+ "NCT6796D", -+ "NCT6798D", -+}; -+ -+#define SIO_REG_LDSEL 0x07 /* Logical device select */ -+#define SIO_REG_DEVID 0x20 /* Device ID (2 bytes) */ -+#define SIO_REG_SMBA 0x62 /* SMBus base address register */ -+ -+#define SIO_NCT6106_ID 0xc450 -+#define SIO_NCT6775_ID 0xb470 -+#define SIO_NCT6776_ID 0xc330 -+#define SIO_NCT6779_ID 0xc560 -+#define SIO_NCT6791_ID 0xc800 -+#define SIO_NCT6792_ID 0xc910 -+#define SIO_NCT6793_ID 0xd120 -+#define SIO_NCT6795_ID 0xd350 -+#define SIO_NCT6796_ID 0xd420 -+#define SIO_NCT6798_ID 0xd428 -+#define SIO_ID_MASK 0xFFF0 -+ -+static inline void -+superio_outb(int ioreg, int reg, int val) -+{ -+ outb(reg, ioreg); -+ outb(val, ioreg + 1); -+} -+ -+static inline int -+superio_inb(int ioreg, int reg) -+{ -+ outb(reg, ioreg); -+ return inb(ioreg + 1); -+} -+ -+static inline void -+superio_select(int ioreg, int ld) -+{ -+ outb(SIO_REG_LDSEL, ioreg); -+ outb(ld, ioreg + 1); -+} -+ -+static inline int -+superio_enter(int ioreg) -+{ -+ /* -+ * Try to reserve <ioreg> and <ioreg + 1> for exclusive access. -+ */ -+ if (!request_muxed_region(ioreg, 2, DRVNAME)) -+ return -EBUSY; -+ -+ outb(0x87, ioreg); -+ outb(0x87, ioreg); -+ -+ return 0; -+} -+ -+static inline void -+superio_exit(int ioreg) -+{ -+ outb(0xaa, ioreg); -+ outb(0x02, ioreg); -+ outb(0x02, ioreg + 1); -+ release_region(ioreg, 2); -+} -+ -+/* -+ * ISA constants -+ */ -+ -+#define IOREGION_ALIGNMENT (~7) -+#define IOREGION_LENGTH 2 -+#define ADDR_REG_OFFSET 0 -+#define DATA_REG_OFFSET 1 -+ -+#define NCT6775_REG_BANK 0x4E -+#define NCT6775_REG_CONFIG 0x40 -+ -+static struct i2c_adapter *nct6775_adapter; -+ -+struct i2c_nct6775_adapdata { -+ unsigned short smba; -+}; -+ -+/* Return negative errno on error. */ -+static s32 nct6775_access(struct i2c_adapter * adap, u16 addr, -+ unsigned short flags, char read_write, -+ u8 command, int size, union i2c_smbus_data * data) -+{ -+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap); -+ unsigned short nuvoton_nct6793d_smba = adapdata->smba; -+ int i, len, cnt; -+ union i2c_smbus_data tmp_data; -+ int timeout = 0; -+ -+ tmp_data.word = 0; -+ cnt = 0; -+ len = 0; -+ -+ outb_p(NCT6793D_SOFT_RESET, SMBHSTCTL); -+ -+ switch (size) { -+ case I2C_SMBUS_QUICK: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ break; -+ case I2C_SMBUS_BYTE_DATA: -+ tmp_data.byte = data->byte; -+ case I2C_SMBUS_BYTE: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ outb_p(tmp_data.byte, SMBHSTDAT); -+ outb_p(NCT6793D_WRITE_BYTE, SMBHSTCMD); -+ } -+ else { -+ outb_p(NCT6793D_READ_BYTE, SMBHSTCMD); -+ } -+ break; -+ case I2C_SMBUS_WORD_DATA: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ outb_p(data->word & 0xff, SMBHSTDAT); -+ outb_p((data->word & 0xff00) >> 8, SMBHSTDAT); -+ outb_p(NCT6793D_WRITE_WORD, SMBHSTCMD); -+ } -+ else { -+ outb_p(NCT6793D_READ_WORD, SMBHSTCMD); -+ } -+ break; -+ case I2C_SMBUS_BLOCK_DATA: -+ outb_p((addr << 1) | read_write, -+ SMBHSTADD); -+ outb_p(command, SMBHSTIDX); -+ if (read_write == I2C_SMBUS_WRITE) { -+ len = data->block[0]; -+ if (len == 0 || len > I2C_SMBUS_BLOCK_MAX) -+ return -EINVAL; -+ outb_p(len, SMBBLKSZ); -+ -+ cnt = 1; -+ if (len >= 4) { -+ for (i = cnt; i <= 4; i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len -= 4; -+ cnt += 4; -+ } -+ else { -+ for (i = cnt; i <= len; i++ ) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len = 0; -+ } -+ -+ outb_p(NCT6793D_WRITE_BLOCK, SMBHSTCMD); -+ } -+ else { -+ return -ENOTSUPP; -+ } -+ break; -+ default: -+ dev_warn(&adap->dev, "Unsupported transaction %d\n", size); -+ return -EOPNOTSUPP; -+ } -+ -+ outb_p(NCT6793D_MANUAL_START, SMBHSTCTL); -+ -+ while ((size == I2C_SMBUS_BLOCK_DATA) && (len > 0)) { -+ if (read_write == I2C_SMBUS_WRITE) { -+ timeout = 0; -+ while ((inb_p(SMBHSTSTS) & NCT6793D_FIFO_EMPTY) == 0) -+ { -+ if(timeout > MAX_RETRIES) -+ { -+ return -ETIMEDOUT; -+ } -+ usleep_range(250, 500); -+ timeout++; -+ } -+ -+ //Load more bytes into FIFO -+ if (len >= 4) { -+ for (i = cnt; i <= (cnt + 4); i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len -= 4; -+ cnt += 4; -+ } -+ else { -+ for (i = cnt; i <= (cnt + len); i++) { -+ outb_p(data->block[i], SMBHSTDAT); -+ } -+ -+ len = 0; -+ } -+ } -+ else { -+ return -ENOTSUPP; -+ } -+ -+ } -+ -+ //wait for manual mode to complete -+ timeout = 0; -+ while ((inb_p(SMBHSTSTS) & NCT6793D_MANUAL_ACTIVE) != 0) -+ { -+ if(timeout > MAX_RETRIES) -+ { -+ return -ETIMEDOUT; -+ } -+ usleep_range(250, 500); -+ timeout++; -+ } -+ -+ if ((inb_p(SMBHSTERR) & NCT6793D_NO_ACK) != 0) { -+ return -ENXIO; -+ } -+ else if ((read_write == I2C_SMBUS_WRITE) || (size == I2C_SMBUS_QUICK)) { -+ return 0; -+ } -+ -+ switch (size) { -+ case I2C_SMBUS_QUICK: -+ case I2C_SMBUS_BYTE_DATA: -+ data->byte = inb_p(SMBHSTDAT); -+ break; -+ case I2C_SMBUS_WORD_DATA: -+ data->word = inb_p(SMBHSTDAT) + (inb_p(SMBHSTDAT) << 8); -+ break; -+ } -+ return 0; -+} -+ -+static u32 nct6775_func(struct i2c_adapter *adapter) -+{ -+ return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | -+ I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | -+ I2C_FUNC_SMBUS_BLOCK_DATA; -+} -+ -+static const struct i2c_algorithm smbus_algorithm = { -+ .smbus_xfer = nct6775_access, -+ .functionality = nct6775_func, -+}; -+ -+static int nct6775_add_adapter(unsigned short smba, const char *name, struct i2c_adapter **padap) -+{ -+ struct i2c_adapter *adap; -+ struct i2c_nct6775_adapdata *adapdata; -+ int retval; -+ -+ adap = kzalloc(sizeof(*adap), GFP_KERNEL); -+ if (adap == NULL) { -+ return -ENOMEM; -+ } -+ -+ adap->owner = THIS_MODULE; -+ adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD; -+ adap->algo = &smbus_algorithm; -+ -+ adapdata = kzalloc(sizeof(*adapdata), GFP_KERNEL); -+ if (adapdata == NULL) { -+ kfree(adap); -+ return -ENOMEM; -+ } -+ -+ adapdata->smba = smba; -+ -+ snprintf(adap->name, sizeof(adap->name), -+ "SMBus NCT67xx adapter%s at %04x", name, smba); -+ -+ i2c_set_adapdata(adap, adapdata); -+ -+ retval = i2c_add_adapter(adap); -+ if (retval) { -+ kfree(adapdata); -+ kfree(adap); -+ return retval; -+ } -+ -+ *padap = adap; -+ return 0; -+} -+ -+static void nct6775_remove_adapter(struct i2c_adapter *adap) -+{ -+ struct i2c_nct6775_adapdata *adapdata = i2c_get_adapdata(adap); -+ -+ if (adapdata->smba) { -+ i2c_del_adapter(adap); -+ kfree(adapdata); -+ kfree(adap); -+ } -+} -+ -+//static SIMPLE_DEV_PM_OPS(nct6775_dev_pm_ops, nct6775_suspend, nct6775_resume); -+ -+/* -+ * when Super-I/O functions move to a separate file, the Super-I/O -+ * bus will manage the lifetime of the device and this module will only keep -+ * track of the nct6775 driver. But since we use platform_device_alloc(), we -+ * must keep track of the device -+ */ -+static struct platform_device *pdev[2]; -+ -+static int nct6775_probe(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct nct6775_sio_data *sio_data = dev_get_platdata(dev); -+ struct resource *res; -+ -+ res = platform_get_resource(pdev, IORESOURCE_IO, 0); -+ if (!devm_request_region(&pdev->dev, res->start, IOREGION_LENGTH, -+ DRVNAME)) -+ return -EBUSY; -+ -+ switch (sio_data->kind) { -+ case nct6791: -+ case nct6792: -+ case nct6793: -+ case nct6795: -+ case nct6796: -+ case nct6798: -+ nct6775_add_adapter(res->start, "", &nct6775_adapter); -+ break; -+ default: -+ return -ENODEV; -+ } -+ -+ return 0; -+} -+/* -+static void nct6791_enable_io_mapping(int sioaddr) -+{ -+ int val; -+ -+ val = superio_inb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE); -+ if (val & 0x10) { -+ pr_info("Enabling hardware monitor logical device mappings.\n"); -+ superio_outb(sioaddr, NCT6791_REG_HM_IO_SPACE_LOCK_ENABLE, -+ val & ~0x10); -+ } -+}*/ -+ -+static struct platform_driver i2c_nct6775_driver = { -+ .driver = { -+ .name = DRVNAME, -+// .pm = &nct6775_dev_pm_ops, -+ }, -+ .probe = nct6775_probe, -+}; -+ -+static void __exit i2c_nct6775_exit(void) -+{ -+ int i; -+ -+ if(nct6775_adapter) -+ nct6775_remove_adapter(nct6775_adapter); -+ -+ for (i = 0; i < ARRAY_SIZE(pdev); i++) { -+ if (pdev[i]) -+ platform_device_unregister(pdev[i]); -+ } -+ platform_driver_unregister(&i2c_nct6775_driver); -+} -+ -+/* nct6775_find() looks for a '627 in the Super-I/O config space */ -+static int __init nct6775_find(int sioaddr, struct nct6775_sio_data *sio_data) -+{ -+ u16 val; -+ int err; -+ int addr; -+ -+ err = superio_enter(sioaddr); -+ if (err) -+ return err; -+ -+ val = (superio_inb(sioaddr, SIO_REG_DEVID) << 8) | -+ superio_inb(sioaddr, SIO_REG_DEVID + 1); -+ -+ switch (val & SIO_ID_MASK) { -+ case SIO_NCT6106_ID: -+ sio_data->kind = nct6106; -+ break; -+ case SIO_NCT6775_ID: -+ sio_data->kind = nct6775; -+ break; -+ case SIO_NCT6776_ID: -+ sio_data->kind = nct6776; -+ break; -+ case SIO_NCT6779_ID: -+ sio_data->kind = nct6779; -+ break; -+ case SIO_NCT6791_ID: -+ sio_data->kind = nct6791; -+ break; -+ case SIO_NCT6792_ID: -+ sio_data->kind = nct6792; -+ break; -+ case SIO_NCT6793_ID: -+ sio_data->kind = nct6793; -+ break; -+ case SIO_NCT6795_ID: -+ sio_data->kind = nct6795; -+ break; -+ case SIO_NCT6796_ID: -+ sio_data->kind = nct6796; -+ break; -+ case SIO_NCT6798_ID: -+ sio_data->kind = nct6798; -+ break; -+ default: -+ if (val != 0xffff) -+ pr_debug("unsupported chip ID: 0x%04x\n", val); -+ superio_exit(sioaddr); -+ return -ENODEV; -+ } -+ -+ /* We have a known chip, find the SMBus I/O address */ -+ superio_select(sioaddr, NCT6775_LD_SMBUS); -+ val = (superio_inb(sioaddr, SIO_REG_SMBA) << 8) -+ | superio_inb(sioaddr, SIO_REG_SMBA + 1); -+ addr = val & IOREGION_ALIGNMENT; -+ if (addr == 0) { -+ pr_err("Refusing to enable a Super-I/O device with a base I/O port 0\n"); -+ superio_exit(sioaddr); -+ return -ENODEV; -+ } -+ -+ //if (sio_data->kind == nct6791 || sio_data->kind == nct6792 || -+ // sio_data->kind == nct6793 || sio_data->kind == nct6795 || -+ // sio_data->kind == nct6796) -+ // nct6791_enable_io_mapping(sioaddr); -+ -+ superio_exit(sioaddr); -+ pr_info("Found %s or compatible chip at %#x:%#x\n", -+ nct6775_sio_names[sio_data->kind], sioaddr, addr); -+ sio_data->sioreg = sioaddr; -+ -+ return addr; -+} -+ -+static int __init i2c_nct6775_init(void) -+{ -+ int i, err; -+ bool found = false; -+ int address; -+ struct resource res; -+ struct nct6775_sio_data sio_data; -+ int sioaddr[2] = { 0x2e, 0x4e }; -+ -+ err = platform_driver_register(&i2c_nct6775_driver); -+ if (err) -+ return err; -+ -+ /* -+ * initialize sio_data->kind and sio_data->sioreg. -+ * -+ * when Super-I/O functions move to a separate file, the Super-I/O -+ * driver will probe 0x2e and 0x4e and auto-detect the presence of a -+ * nct6775 hardware monitor, and call probe() -+ */ -+ for (i = 0; i < ARRAY_SIZE(pdev); i++) { -+ address = nct6775_find(sioaddr[i], &sio_data); -+ if (address <= 0) -+ continue; -+ -+ found = true; -+ -+ pdev[i] = platform_device_alloc(DRVNAME, address); -+ if (!pdev[i]) { -+ err = -ENOMEM; -+ goto exit_device_unregister; -+ } -+ -+ err = platform_device_add_data(pdev[i], &sio_data, -+ sizeof(struct nct6775_sio_data)); -+ if (err) -+ goto exit_device_put; -+ -+ memset(&res, 0, sizeof(res)); -+ res.name = DRVNAME; -+ res.start = address; -+ res.end = address + IOREGION_LENGTH - 1; -+ res.flags = IORESOURCE_IO; -+ -+ err = acpi_check_resource_conflict(&res); -+ if (err) { -+ platform_device_put(pdev[i]); -+ pdev[i] = NULL; -+ continue; -+ } -+ -+ err = platform_device_add_resources(pdev[i], &res, 1); -+ if (err) -+ goto exit_device_put; -+ -+ /* platform_device_add calls probe() */ -+ err = platform_device_add(pdev[i]); -+ if (err) -+ goto exit_device_put; -+ } -+ if (!found) { -+ err = -ENODEV; -+ goto exit_unregister; -+ } -+ -+ return 0; -+ -+exit_device_put: -+ platform_device_put(pdev[i]); -+exit_device_unregister: -+ while (--i >= 0) { -+ if (pdev[i]) -+ platform_device_unregister(pdev[i]); -+ } -+exit_unregister: -+ platform_driver_unregister(&i2c_nct6775_driver); -+ return err; -+} -+ -+MODULE_AUTHOR("Adam Honse <calcprogrammer1@gmail.com>"); -+MODULE_DESCRIPTION("SMBus driver for NCT6775F and compatible chips"); -+MODULE_LICENSE("GPL"); -+ -+module_init(i2c_nct6775_init); -+module_exit(i2c_nct6775_exit); -diff --git a/drivers/i2c/busses/i2c-piix4.c b/drivers/i2c/busses/i2c-piix4.c -index 69740a4ff1db2..b70738fbe72a4 100644 ---- a/drivers/i2c/busses/i2c-piix4.c -+++ b/drivers/i2c/busses/i2c-piix4.c -@@ -467,11 +467,11 @@ static int piix4_transaction(struct i2c_adapter *piix4_adapter) - if (srvrworks_csb5_delay) /* Extra delay for SERVERWORKS_CSB5 */ - usleep_range(2000, 2100); - else -- usleep_range(250, 500); -+ usleep_range(25, 50); - - while ((++timeout < MAX_TIMEOUT) && - ((temp = inb_p(SMBHSTSTS)) & 0x01)) -- usleep_range(250, 500); -+ usleep_range(25, 50); - - /* If the SMBus is still busy, we give up */ - if (timeout == MAX_TIMEOUT) { diff --git a/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch b/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch new file mode 100644 index 000000000000..1b31d8c2743d --- /dev/null +++ b/0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch @@ -0,0 +1,91 @@ +From 22365749abd27f2cb582a049da42b7c7a02b6bfe 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] 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 7123524a86b8b4..973e1de5f29e91 100644 +--- a/Documentation/admin-guide/kernel-parameters.txt ++++ b/Documentation/admin-guide/kernel-parameters.txt +@@ -4356,6 +4356,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 740811893c5705..55f48375e3fe54 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 3404a91edf2929..19bf14e253f70c 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); diff --git a/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch b/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch new file mode 100644 index 000000000000..d05c5d1c976a --- /dev/null +++ b/0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch @@ -0,0 +1,192 @@ +From 29f850827951966fefbea50555995775129f9516 Mon Sep 17 00:00:00 2001 +From: Linus Torvalds <torvalds@linux-foundation.org> +Date: Sat, 26 Mar 2022 10:42:04 -0700 +Subject: [PATCH] Revert "swiotlb: rework "fix info leak with DMA_FROM_DEVICE"" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +commit bddac7c1e02ba47f0570e494c9289acea3062cc1 upstream. + +This reverts commit aa6f8dcbab473f3a3c7454b74caa46d36cdc5d13. + +It turns out this breaks at least the ath9k wireless driver, and +possibly others. + +What the ath9k driver does on packet receive is to set up the DMA +transfer with: + + int ath_rx_init(..) + .. + bf->bf_buf_addr = dma_map_single(sc->dev, skb->data, + common->rx_bufsize, + DMA_FROM_DEVICE); + +and then the receive logic (through ath_rx_tasklet()) will fetch +incoming packets + + static bool ath_edma_get_buffers(..) + .. + dma_sync_single_for_cpu(sc->dev, bf->bf_buf_addr, + common->rx_bufsize, DMA_FROM_DEVICE); + + ret = ath9k_hw_process_rxdesc_edma(ah, rs, skb->data); + if (ret == -EINPROGRESS) { + /*let device gain the buffer again*/ + dma_sync_single_for_device(sc->dev, bf->bf_buf_addr, + common->rx_bufsize, DMA_FROM_DEVICE); + return false; + } + +and it's worth noting how that first DMA sync: + + dma_sync_single_for_cpu(..DMA_FROM_DEVICE); + +is there to make sure the CPU can read the DMA buffer (possibly by +copying it from the bounce buffer area, or by doing some cache flush). +The iommu correctly turns that into a "copy from bounce bufer" so that +the driver can look at the state of the packets. + +In the meantime, the device may continue to write to the DMA buffer, but +we at least have a snapshot of the state due to that first DMA sync. + +But that _second_ DMA sync: + + dma_sync_single_for_device(..DMA_FROM_DEVICE); + +is telling the DMA mapping that the CPU wasn't interested in the area +because the packet wasn't there. In the case of a DMA bounce buffer, +that is a no-op. + +Note how it's not a sync for the CPU (the "for_device()" part), and it's +not a sync for data written by the CPU (the "DMA_FROM_DEVICE" part). + +Or rather, it _should_ be a no-op. That's what commit aa6f8dcbab47 +broke: it made the code bounce the buffer unconditionally, and changed +the DMA_FROM_DEVICE to just unconditionally and illogically be +DMA_TO_DEVICE. + +[ Side note: purely within the confines of the swiotlb driver it wasn't + entirely illogical: The reason it did that odd DMA_FROM_DEVICE -> + DMA_TO_DEVICE conversion thing is because inside the swiotlb driver, + it uses just a swiotlb_bounce() helper that doesn't care about the + whole distinction of who the sync is for - only which direction to + bounce. + + So it took the "sync for device" to mean that the CPU must have been + the one writing, and thought it meant DMA_TO_DEVICE. ] + +Also note how the commentary in that commit was wrong, probably due to +that whole confusion, claiming that the commit makes the swiotlb code + + "bounce unconditionally (that is, also + when dir == DMA_TO_DEVICE) in order do avoid synchronising back stale + data from the swiotlb buffer" + +which is nonsensical for two reasons: + + - that "also when dir == DMA_TO_DEVICE" is nonsensical, as that was + exactly when it always did - and should do - the bounce. + + - since this is a sync for the device (not for the CPU), we're clearly + fundamentally not coping back stale data from the bounce buffers at + all, because we'd be copying *to* the bounce buffers. + +So that commit was just very confused. It confused the direction of the +synchronization (to the device, not the cpu) with the direction of the +DMA (from the device). + +Reported-and-bisected-by: Oleksandr Natalenko <oleksandr@natalenko.name> +Reported-by: Olha Cherevyk <olha.cherevyk@gmail.com> +Cc: Halil Pasic <pasic@linux.ibm.com> +Cc: Christoph Hellwig <hch@lst.de> +Cc: Kalle Valo <kvalo@kernel.org> +Cc: Robin Murphy <robin.murphy@arm.com> +Cc: Toke Høiland-Jørgensen <toke@toke.dk> +Cc: Maxime Bizon <mbizon@freebox.fr> +Cc: Johannes Berg <johannes@sipsolutions.net> +Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> +Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> +Backported-for: https://bugs.archlinux.org/task/74187 +--- + Documentation/core-api/dma-attributes.rst | 8 ++++++++ + include/linux/dma-mapping.h | 8 ++++++++ + kernel/dma/swiotlb.c | 23 ++++++++--------------- + 3 files changed, 24 insertions(+), 15 deletions(-) + +diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst +index 1887d92e8e9269..17706dc91ec9fc 100644 +--- a/Documentation/core-api/dma-attributes.rst ++++ b/Documentation/core-api/dma-attributes.rst +@@ -130,3 +130,11 @@ accesses to DMA buffers in both privileged "supervisor" and unprivileged + subsystem that the buffer is fully accessible at the elevated privilege + level (and ideally inaccessible or at least read-only at the + lesser-privileged levels). ++ ++DMA_ATTR_OVERWRITE ++------------------ ++ ++This is a hint to the DMA-mapping subsystem that the device is expected to ++overwrite the entire mapped size, thus the caller does not require any of the ++previous buffer contents to be preserved. This allows bounce-buffering ++implementations to optimise DMA_FROM_DEVICE transfers. +diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h +index dca2b1355bb133..6150d11a607e1c 100644 +--- a/include/linux/dma-mapping.h ++++ b/include/linux/dma-mapping.h +@@ -61,6 +61,14 @@ + */ + #define DMA_ATTR_PRIVILEGED (1UL << 9) + ++/* ++ * This is a hint to the DMA-mapping subsystem that the device is expected ++ * to overwrite the entire mapped size, thus the caller does not require any ++ * of the previous buffer contents to be preserved. This allows ++ * bounce-buffering implementations to optimise DMA_FROM_DEVICE transfers. ++ */ ++#define DMA_ATTR_OVERWRITE (1UL << 10) ++ + /* + * A dma_addr_t can hold any valid DMA or bus address for the platform. It can + * be given to a device to use as a DMA source or target. It is specific to a +diff --git a/kernel/dma/swiotlb.c b/kernel/dma/swiotlb.c +index 6db1c475ec8277..bfc56cb217059e 100644 +--- a/kernel/dma/swiotlb.c ++++ b/kernel/dma/swiotlb.c +@@ -627,14 +627,10 @@ phys_addr_t swiotlb_tbl_map_single(struct device *dev, phys_addr_t orig_addr, + for (i = 0; i < nr_slots(alloc_size + offset); i++) + mem->slots[index + i].orig_addr = slot_addr(orig_addr, i); + tlb_addr = slot_addr(mem->start, index) + offset; +- /* +- * When dir == DMA_FROM_DEVICE we could omit the copy from the orig +- * to the tlb buffer, if we knew for sure the device will +- * overwirte the entire current content. But we don't. Thus +- * unconditional bounce may prevent leaking swiotlb content (i.e. +- * kernel memory) to user-space. +- */ +- swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE); ++ if (!(attrs & DMA_ATTR_SKIP_CPU_SYNC) && ++ (!(attrs & DMA_ATTR_OVERWRITE) || dir == DMA_TO_DEVICE || ++ dir == DMA_BIDIRECTIONAL)) ++ swiotlb_bounce(dev, tlb_addr, mapping_size, DMA_TO_DEVICE); + return tlb_addr; + } + +@@ -701,13 +697,10 @@ void swiotlb_tbl_unmap_single(struct device *dev, phys_addr_t tlb_addr, + void swiotlb_sync_single_for_device(struct device *dev, phys_addr_t tlb_addr, + size_t size, enum dma_data_direction dir) + { +- /* +- * Unconditional bounce is necessary to avoid corruption on +- * sync_*_for_cpu or dma_ummap_* when the device didn't overwrite +- * the whole lengt of the bounce buffer. +- */ +- swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE); +- BUG_ON(!valid_dma_direction(dir)); ++ if (dir == DMA_TO_DEVICE || dir == DMA_BIDIRECTIONAL) ++ swiotlb_bounce(dev, tlb_addr, size, DMA_TO_DEVICE); ++ else ++ BUG_ON(dir != DMA_FROM_DEVICE); + } + + void swiotlb_sync_single_for_cpu(struct device *dev, phys_addr_t tlb_addr, diff --git a/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch b/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch deleted file mode 100644 index 7f46da7672da..000000000000 --- a/0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c -index 03b83aa91277..dfc6c7d1b0e7 100644 ---- a/drivers/bluetooth/btusb.c -+++ b/drivers/bluetooth/btusb.c -@@ -4070,6 +4070,7 @@ static int btusb_setup_qca(struct hci_dev *hdev) - } - if (!info) { - bt_dev_err(hdev, "don't support firmware rome 0x%x", ver_rom); -+ if (ver_rom & ~0xffffU) return 0; - return -ENODEV; - } - @@ -36,16 +36,11 @@ source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.x "https://www.kernel.org/pub/linux/kernel/v5.x/patch-${pkgver}.xz" 'config' # ARCH Patches - '0001-ZEN-Add-sysctl-and-CONFIG-to-disallow-unprivileged-CLONE_NEWUSER.patch' - '0002-Btintel_Fix_bdaddress_comparison_with_garbage_value.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_informative_messages.patch' - '0007_Revert_NFSv4.1_query_for_fs_location_attr_on_a_new_file_system.patch' + '0101-ZEN_Add_sysctl_and_CONFIG_to_disallow_unprivileged_CLONE_NEWUSER.patch' + '0102-random-treat_bootloader_trust_toggle_the_same_way_as_cpu_trust_toggle.patch' + '0103-Revert-swiotlb-rework-fix_info_leak_with_DMA_FROM_DEVICE.patch' # MANJARO Patches - '0101-i2c-nuvoton-nc677x-hwmon-driver.patch' - '0105-quirk-kernel-org-bug-210681-firmware_rome_error.patch' + # Bootsplash '0301-revert-fbcon-remove-now-unusued-softback_lines-cursor-argument.patch' '0302-revert-fbcon-remove-no-op-fbcon_set_origin.patch' @@ -65,18 +60,12 @@ source=("https://www.kernel.org/pub/linux/kernel/v5.x/linux-${_basekernel}.tar.x '0413-bootsplash.gitpatch' # ACS override patch '0999-acs.gitpatch') -sha256sums=('027d7e8988bb69ac12ee92406c3be1fe13f990b1ca2249e226225cd1573308bb' - '3bb88aa87c3f7788ad84ca5cbf3946ed9fbb3fddb9fca2458944fba5ebd2ab16' - '67ea8810d3e58c1b661ff1372886aa8b560f97938ff62a3d12a6ff60784aeccf' - '986f8d802f37b72a54256f0ab84da83cb229388d58c0b6750f7c770818a18421' - 'b89188b1bc3516d54965dd36def6a2af3d81379e53ff7e527bbd91f77c6f191b' - 'adfabecb2e23cfaebe1d493a54119a967a97930dac677e20f26d4bcaa1b80f3c' - '7aa2293dff32463665c2a35054c5164470e24075ddda181715d4079ca126cbbd' - '9c67c62e9e744eaeae43c80d83c9eb61b486406cf18cd057427bdbc44f8e4e10' - 'f8fc51c0c644ae743154c37b77ade50fa5a950980c9dd56d8752e4d6b5dfb153' - '24fc6f087aa82a72905f0fb6b9f3f5f18741187d5a425f5ec845dab436ab1c58' - '7823d7488f42bc4ed7dfae6d1014dbde679d8b862c9a3697a39ba0dae5918978' - '5e804e1f241ce542f3f0e83d274ede6aa4b0539e510fb9376f8106e8732ce69b' +sha256sums=('555fef61dddb591a83d62dd04e252792f9af4ba9ef14683f64840e46fa20b1b1' + '24c982d6b7b704b31a6b4bc0a59cbf2135697a58d5d6030532ae07856da36944' + 'a94d5d374f4cdb439f3958b50f7af0f4e024fa17d7df3f30e548f40314e210c0' + 'f85b07d73b2f4ad8bb6b59ee6624b2dd06a03824fc7b00131a01df36c8d899fe' + 'fc9223bf2d430ab1c122daada4f51d835a74f56c007c82842eeca3acd2d788be' + 'edd40fa0d23e9cbbf5ed7f37b2e0ed8e84798701b08a0dc262afd751acf17e04' '2b11905b63b05b25807dd64757c779da74dd4c37e36d3f7a46485b1ee5a9d326' '94a8538251ad148f1025cc3de446ce64f73dc32b01815426fb159c722e8fa5bc' '1f18c5c10a3c63e41ecd05ad34cd9f6653ba96e9f1049ce2b7bb6da2578ae710' @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 5.16.16-1 Kernel Configuration +# Linux/x86 5.17.1-3 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 11.2.0" CONFIG_CC_IS_GCC=y @@ -165,7 +165,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 @@ -285,6 +284,7 @@ CONFIG_KCMP=y CONFIG_RSEQ=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y +CONFIG_GUEST_PERF_EVENTS=y # # Kernel Performance Events And Counters @@ -327,9 +327,6 @@ 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 @@ -451,6 +448,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 @@ -521,7 +519,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 @@ -554,6 +551,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 @@ -608,6 +606,8 @@ CONFIG_ACPI_WATCHDOG=y CONFIG_ACPI_EXTLOG=m CONFIG_ACPI_ADXL=y CONFIG_ACPI_CONFIGFS=m +# CONFIG_ACPI_PFRUT is not set +CONFIG_ACPI_PCC=y CONFIG_PMIC_OPREGION=y CONFIG_BYTCRC_PMIC_OPREGION=y CONFIG_CHTCRC_PMIC_OPREGION=y @@ -643,6 +643,7 @@ CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y # CONFIG_X86_INTEL_PSTATE=y CONFIG_X86_PCC_CPUFREQ=m +CONFIG_X86_AMD_PSTATE=y CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_ACPI_CPUFREQ_CPB=y CONFIG_X86_POWERNOW_K8=m @@ -693,9 +694,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 @@ -815,6 +818,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 @@ -839,9 +843,11 @@ 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 +CONFIG_HAVE_ARCH_NODE_DEV_GROUP=y # # GCOV-based kernel profiling @@ -878,6 +884,7 @@ CONFIG_MODULE_SIG_HASH="sha512" # CONFIG_MODULE_COMPRESS_GZIP is not set CONFIG_MODULE_COMPRESS_XZ=y # CONFIG_MODULE_COMPRESS_ZSTD is not set +# CONFIG_MODULE_DECOMPRESS is not set CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS=y CONFIG_MODPROBE_PATH="/sbin/modprobe" CONFIG_MODULES_TREE_LOOKUP=y @@ -885,6 +892,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 @@ -1018,7 +1026,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 @@ -1065,6 +1076,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 is not set # # Data Access Monitoring @@ -1269,7 +1281,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 @@ -1469,7 +1480,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 @@ -1509,7 +1519,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 @@ -1931,6 +1940,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 @@ -2013,6 +2023,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 @@ -2197,6 +2208,7 @@ CONFIG_AUXILIARY_BUS=y # CONFIG_UEVENT_HELPER is not set CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +# CONFIG_DEVTMPFS_SAFE is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y @@ -2317,6 +2329,7 @@ CONFIG_GNSS_SERIAL=m CONFIG_GNSS_MTK_SERIAL=m CONFIG_GNSS_SIRF_SERIAL=m CONFIG_GNSS_UBX_SERIAL=m +# CONFIG_GNSS_USB is not set CONFIG_MTD=m # CONFIG_MTD_TESTS is not set @@ -2498,7 +2511,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 @@ -2796,7 +2808,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 @@ -3175,6 +3186,8 @@ CONFIG_BE2NET_BE2=y CONFIG_BE2NET_BE3=y CONFIG_BE2NET_LANCER=y CONFIG_BE2NET_SKYHAWK=y +CONFIG_NET_VENDOR_ENGLEDER=y +# CONFIG_TSNEP is not set CONFIG_NET_VENDOR_EZCHIP=y CONFIG_NET_VENDOR_FUJITSU=y CONFIG_PCMCIA_FMVJ18X=m @@ -3206,6 +3219,7 @@ CONFIG_IAVF=m CONFIG_I40EVF=m CONFIG_ICE=m CONFIG_ICE_SWITCHDEV=y +CONFIG_ICE_HWTS=y CONFIG_FM10K=m CONFIG_IGC=m CONFIG_NET_VENDOR_MICROSOFT=y @@ -3377,6 +3391,7 @@ CONFIG_TEHUTI=m CONFIG_NET_VENDOR_TI=y # CONFIG_TI_CPSW_PHY_SEL is not set CONFIG_TLAN=m +# CONFIG_NET_VENDOR_VERTEXCOM is not set CONFIG_NET_VENDOR_VIA=y CONFIG_VIA_RHINE=m CONFIG_VIA_RHINE_MMIO=y @@ -3692,6 +3707,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 @@ -3882,6 +3898,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 @@ -4297,6 +4314,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 @@ -4460,7 +4478,6 @@ CONFIG_I2C_ISCH=m CONFIG_I2C_ISMT=m CONFIG_I2C_PIIX4=m CONFIG_I2C_CHT_WC=m -# CONFIG_I2C_NCT6775 is not set CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m CONFIG_I2C_NVIDIA_GPU=m @@ -4616,6 +4633,12 @@ CONFIG_PINCTRL_MCP23S08_I2C=m CONFIG_PINCTRL_MCP23S08_SPI=m CONFIG_PINCTRL_MCP23S08=m CONFIG_PINCTRL_SX150X=y +CONFIG_PINCTRL_MADERA=m +CONFIG_PINCTRL_CS47L15=y +CONFIG_PINCTRL_CS47L35=y +CONFIG_PINCTRL_CS47L85=y +CONFIG_PINCTRL_CS47L90=y +CONFIG_PINCTRL_CS47L92=y # # Intel pinctrl drivers @@ -4645,12 +4668,6 @@ CONFIG_PINCTRL_TIGERLAKE=y # # end of Renesas pinctrl drivers -CONFIG_PINCTRL_MADERA=m -CONFIG_PINCTRL_CS47L15=y -CONFIG_PINCTRL_CS47L35=y -CONFIG_PINCTRL_CS47L85=y -CONFIG_PINCTRL_CS47L90=y -CONFIG_PINCTRL_CS47L92=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_FASTPATH_LIMIT=512 CONFIG_GPIO_ACPI=y @@ -4764,6 +4781,7 @@ CONFIG_GPIO_VIPERBOARD=m CONFIG_GPIO_AGGREGATOR=m CONFIG_GPIO_MOCKUP=m CONFIG_GPIO_VIRTIO=m +# CONFIG_GPIO_SIM is not set # end of Virtual GPIO drivers CONFIG_W1=m @@ -4860,6 +4878,7 @@ CONFIG_CHARGER_LT3651=m CONFIG_CHARGER_LTC4162L=m CONFIG_CHARGER_MAX14577=m CONFIG_CHARGER_MAX77693=m +CONFIG_CHARGER_MAX77976=y CONFIG_CHARGER_MAX8997=m CONFIG_CHARGER_MAX8998=m CONFIG_CHARGER_MP2629=m @@ -5010,6 +5029,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 @@ -5017,6 +5037,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 @@ -5024,6 +5045,7 @@ CONFIG_SENSORS_INSPUR_IPSPS=m CONFIG_SENSORS_IR35221=m CONFIG_SENSORS_IR36021=m CONFIG_SENSORS_IR38064=m +# CONFIG_SENSORS_IR38064_REGULATOR is not set CONFIG_SENSORS_IRPS5401=m CONFIG_SENSORS_ISL68137=m CONFIG_SENSORS_LM25066=m @@ -5040,6 +5062,7 @@ CONFIG_SENSORS_MAX34440=m CONFIG_SENSORS_MAX8688=m CONFIG_SENSORS_MP2888=m CONFIG_SENSORS_MP2975=m +# CONFIG_SENSORS_MP5023 is not set CONFIG_SENSORS_PIM4328=m CONFIG_SENSORS_PM6764TR=m CONFIG_SENSORS_PXE1610=m @@ -5077,6 +5100,7 @@ CONFIG_SENSORS_ADS7871=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_INA209=m CONFIG_SENSORS_INA2XX=m +# CONFIG_SENSORS_INA238 is not set CONFIG_SENSORS_INA3221=m CONFIG_SENSORS_TC74=m CONFIG_SENSORS_THMC50=m @@ -5111,6 +5135,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 @@ -5233,6 +5259,7 @@ CONFIG_SBC_EPX_C3_WATCHDOG=m CONFIG_INTEL_MEI_WDT=m CONFIG_NI903X_WDT=m CONFIG_NIC7018_WDT=m +# CONFIG_SIEMENS_SIMATIC_IPC_WDT is not set CONFIG_MEN_A21_WDT=m CONFIG_XEN_WDT=m @@ -5318,7 +5345,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 @@ -5442,6 +5468,7 @@ CONFIG_REGULATOR_MAX8925=m CONFIG_REGULATOR_MAX8952=m CONFIG_REGULATOR_MAX8997=m CONFIG_REGULATOR_MAX8998=m +# CONFIG_REGULATOR_MAX20086 is not set CONFIG_REGULATOR_MAX77693=m CONFIG_REGULATOR_MAX77826=m CONFIG_REGULATOR_MC13XXX_CORE=m @@ -5486,6 +5513,7 @@ CONFIG_REGULATOR_TPS6524X=m CONFIG_REGULATOR_TPS6586X=m CONFIG_REGULATOR_TPS65910=m CONFIG_REGULATOR_TPS65912=m +# CONFIG_REGULATOR_TPS68470 is not set CONFIG_REGULATOR_TWL4030=m CONFIG_REGULATOR_WM831X=m CONFIG_REGULATOR_WM8350=m @@ -5984,6 +6012,7 @@ CONFIG_VIDEO_OV5648=m CONFIG_VIDEO_OV6650=m CONFIG_VIDEO_OV5670=m CONFIG_VIDEO_OV5675=m +# CONFIG_VIDEO_OV5693 is not set CONFIG_VIDEO_OV5695=m CONFIG_VIDEO_OV7251=m CONFIG_VIDEO_OV772X=m @@ -6269,7 +6298,7 @@ CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=10 CONFIG_VGA_SWITCHEROO=y CONFIG_DRM=y -CONFIG_DRM_MIPI_DBI=m +CONFIG_DRM_MIPI_DBI=y CONFIG_DRM_MIPI_DSI=y CONFIG_DRM_DP_AUX_CHARDEV=y # CONFIG_DRM_DEBUG_MM is not set @@ -6283,7 +6312,6 @@ 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_SHMEM_HELPER=y CONFIG_DRM_SCHED=m @@ -6385,6 +6413,7 @@ CONFIG_DRM_CIRRUS_QEMU=m CONFIG_DRM_GM12U320=m CONFIG_DRM_SIMPLEDRM=y CONFIG_TINYDRM_HX8357D=m +CONFIG_TINYDRM_ILI9163=y CONFIG_TINYDRM_ILI9225=m CONFIG_TINYDRM_ILI9341=m CONFIG_TINYDRM_ILI9486=m @@ -6399,6 +6428,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 @@ -6686,6 +6717,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 @@ -6764,6 +6798,7 @@ CONFIG_SND_SOC_AMD_RENOIR_MACH=m CONFIG_SND_SOC_AMD_ACP5x=m # CONFIG_SND_SOC_AMD_VANGOGH_MACH is not set # CONFIG_SND_SOC_AMD_ACP6x is not set +CONFIG_SND_AMD_ACP_CONFIG=m # CONFIG_SND_SOC_AMD_ACP_COMMON is not set CONFIG_SND_ATMEL_SOC=m # CONFIG_SND_BCM63XX_I2S_WHISTLER is not set @@ -6856,6 +6891,7 @@ CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m +CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m @@ -6870,6 +6906,9 @@ CONFIG_SND_SOC_SOF_ACPI_DEV=m # CONFIG_SND_SOC_SOF_DEBUG_PROBES 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 @@ -6932,6 +6971,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 @@ -6947,6 +6987,7 @@ CONFIG_SND_SOC_CS35L33=m CONFIG_SND_SOC_CS35L34=m CONFIG_SND_SOC_CS35L35=m CONFIG_SND_SOC_CS35L36=m +CONFIG_SND_SOC_CS35L41_LIB=m # CONFIG_SND_SOC_CS35L41_SPI is not set # CONFIG_SND_SOC_CS35L41_I2C is not set CONFIG_SND_SOC_CS42L42=m @@ -7081,6 +7122,7 @@ CONFIG_SND_SOC_TAS6424=m CONFIG_SND_SOC_TDA7419=m CONFIG_SND_SOC_TFA9879=m CONFIG_SND_SOC_TFA989X=m +CONFIG_SND_SOC_TLV320ADC3XXX=m CONFIG_SND_SOC_TLV320AIC23=m CONFIG_SND_SOC_TLV320AIC23_I2C=m CONFIG_SND_SOC_TLV320AIC23_SPI=m @@ -7219,6 +7261,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 @@ -7380,6 +7423,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 is not set # # USB Device Class drivers @@ -7875,6 +7919,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=y CONFIG_ACCESSIBILITY=y CONFIG_A11Y_BRAILLE_CONSOLE=y @@ -8393,6 +8442,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 @@ -8403,6 +8453,7 @@ CONFIG_ASUS_LAPTOP=m CONFIG_ASUS_WIRELESS=m CONFIG_ASUS_WMI=m CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_TF103C_DOCK=y CONFIG_MERAKI_MX100=m CONFIG_EEEPC_LAPTOP=m CONFIG_EEEPC_WMI=m @@ -8473,6 +8524,7 @@ CONFIG_INTEL_RST=m CONFIG_INTEL_SMARTCONNECT=m CONFIG_INTEL_TURBO_MAX_3=y CONFIG_INTEL_UNCORE_FREQ_CONTROL=m +CONFIG_INTEL_VSEC=y CONFIG_MSI_LAPTOP=m CONFIG_MSI_WMI=m CONFIG_PCENGINES_APU2=m @@ -8494,6 +8546,7 @@ CONFIG_TOPSTAR_LAPTOP=m CONFIG_I2C_MULTI_INSTANTIATE=m CONFIG_MLX_PLATFORM=m CONFIG_TOUCHSCREEN_DMI=y +CONFIG_X86_ANDROID_TABLETS=y CONFIG_FW_ATTR_CLASS=m CONFIG_INTEL_IPS=m CONFIG_INTEL_SCU_IPC=y @@ -8501,6 +8554,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=y CONFIG_PMC_ATOM=y CONFIG_CHROME_PLATFORMS=y CONFIG_CHROMEOS_LAPTOP=m @@ -8554,6 +8608,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 @@ -8843,6 +8898,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 @@ -8854,6 +8912,12 @@ CONFIG_XILINX_XADC=m # end of Analog to digital converters # +# Analog to digital and digital to analog converters +# +# CONFIG_AD74413R is not set +# end of Analog to digital and digital to analog converters + +# # Analog Front Ends # # end of Analog Front Ends @@ -8927,6 +8991,7 @@ CONFIG_IIO_ST_SENSORS_CORE=m # # Digital to analog converters # +# CONFIG_AD3552R is not set CONFIG_AD5064=m CONFIG_AD5360=m CONFIG_AD5380=m @@ -8948,6 +9013,7 @@ CONFIG_AD5764=m CONFIG_AD5766=m CONFIG_AD5770R=m CONFIG_AD5791=m +# CONFIG_AD7293 is not set CONFIG_AD7303=m CONFIG_AD8801=m CONFIG_DS4424=m @@ -8955,6 +9021,7 @@ CONFIG_LTC1660=m CONFIG_LTC2632=m CONFIG_M62332=m CONFIG_MAX517=m +# CONFIG_MAX5821 is not set CONFIG_MCP4725=m CONFIG_MCP4922=m CONFIG_TI_DAC082S085=m @@ -8970,6 +9037,12 @@ CONFIG_TI_DAC7612=m # end of IIO dummy driver # +# Filters +# +# CONFIG_ADMV8818 is not set +# end of Filters + +# # Frequency Synthesizers DDS/PLL # @@ -8984,6 +9057,7 @@ CONFIG_AD9523=m # CONFIG_ADF4350=m CONFIG_ADF4371=m +# CONFIG_ADMV1013 is not set # CONFIG_ADRF6780 is not set # end of Phase-Locked Loop (PLL) frequency synthesizers # end of Frequency Synthesizers DDS/PLL @@ -9387,14 +9461,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 @@ -9587,6 +9659,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 # @@ -9799,7 +9872,7 @@ CONFIG_CIFS_DEBUG=y CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_SWN_UPCALL=y # CONFIG_CIFS_SMB_DIRECT is not set -CONFIG_CIFS_FSCACHE=y +# CONFIG_CIFS_FSCACHE is not set CONFIG_SMB_SERVER=m CONFIG_SMB_SERVER_SMBDIRECT=y CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=y @@ -10140,6 +10213,7 @@ CONFIG_CRYPTO_DRBG_HASH=y CONFIG_CRYPTO_DRBG_CTR=y 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 @@ -10149,29 +10223,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 @@ -10239,7 +10290,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 @@ -10248,6 +10298,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 @@ -10443,11 +10517,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 @@ -10584,6 +10666,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 @@ -10633,6 +10717,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 @@ -10690,6 +10775,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 @@ -10708,7 +10794,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/modules.list b/modules.list index 56d170f099ce..73ffad77ac16 100644 --- a/modules.list +++ b/modules.list @@ -1,6 +1,6 @@ acpi_call -bbswitch broadcom-wl +bbswitch nvidia nvidia-390xx nvidia-470xx |