diff --git a/linux-tkg-config/6.7/config.x86_64 b/linux-tkg-config/6.7/config.x86_64 index 14a1b4c..e949a56 100644 --- a/linux-tkg-config/6.7/config.x86_64 +++ b/linux-tkg-config/6.7/config.x86_64 @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 6.7.0-arch1 Kernel Configuration +# Linux/x86 6.7.0-arch3 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 13.2.1 20230801" CONFIG_CC_IS_GCC=y @@ -882,9 +882,9 @@ CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_ARCH_HAS_ELF_RANDOMIZE=y CONFIG_HAVE_ARCH_MMAP_RND_BITS=y CONFIG_HAVE_EXIT_THREAD=y -CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_ARCH_MMAP_RND_BITS=32 CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=16 CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y CONFIG_PAGE_SIZE_LESS_THAN_64KB=y CONFIG_PAGE_SIZE_LESS_THAN_256KB=y diff --git a/linux-tkg-patches/6.7/0012-misc-additions.patch b/linux-tkg-patches/6.7/0012-misc-additions.patch index 6591434..eb65852 100644 --- a/linux-tkg-patches/6.7/0012-misc-additions.patch +++ b/linux-tkg-patches/6.7/0012-misc-additions.patch @@ -64,3 +64,197 @@ index 2c7171e0b0010..85de313ddec29 100644 select CPU_FREQ_GOV_PERFORMANCE help +From 3a88b77d3cb9f9cd8a8aee052ab479b73aeb2e80 Mon Sep 17 00:00:00 2001 +From: "Jan Alexander Steffens (heftig)" +Date: Sat, 13 Jan 2024 15:29:25 +0100 +Subject: [PATCH] arch/Kconfig: Default to maximum amount of ASLR bits + +To mitigate https://zolutal.github.io/aslrnt/; do this with a patch to +avoid having to enable `CONFIG_EXPERT`. +--- + arch/Kconfig | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/Kconfig b/arch/Kconfig +index f4b210ab061291..837d0dbb28ea08 100644 +--- a/arch/Kconfig ++++ b/arch/Kconfig +@@ -1032,7 +1032,7 @@ config ARCH_MMAP_RND_BITS + int "Number of bits to use for ASLR of mmap base address" if EXPERT + range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX + default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT +- default ARCH_MMAP_RND_BITS_MIN ++ default ARCH_MMAP_RND_BITS_MAX + depends on HAVE_ARCH_MMAP_RND_BITS + help + This value can be used to select the number of bits to use to +@@ -1066,7 +1066,7 @@ config ARCH_MMAP_RND_COMPAT_BITS + int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT + range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX + default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT +- default ARCH_MMAP_RND_COMPAT_BITS_MIN ++ default ARCH_MMAP_RND_COMPAT_BITS_MAX + depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS + help + This value can be used to select the number of bits to use to + +From 7c13cc521f78fd261de3001dac48fd572baae671 Mon Sep 17 00:00:00 2001 +From: Benjamin Berg +Date: Thu, 11 Jan 2024 18:06:29 +0100 +Subject: [PATCH] wifi: ath11k: rely on mac80211 debugfs handling for vif + +mac80211 started to delete debugfs entries in certain cases, causing a +conflict between ath11k also trying to delete them later on. Fix this by +relying on mac80211 to delete the entries when appropriate and adding +them from the vif_add_debugfs handler. + +Fixes: 0a3d898ee9a8 ("wifi: mac80211: add/remove driver debugfs entries as appropriate") +Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=218364 +Signed-off-by: Benjamin Berg +Cherry-picked-for: https://gitlab.archlinux.org/archlinux/packaging/packages/linux/-/issues/18 +--- + drivers/net/wireless/ath/ath11k/core.h | 4 ---- + drivers/net/wireless/ath/ath11k/debugfs.c | 25 +++++++++-------------- + drivers/net/wireless/ath/ath11k/debugfs.h | 12 ++--------- + drivers/net/wireless/ath/ath11k/mac.c | 12 +---------- + 4 files changed, 13 insertions(+), 40 deletions(-) + +diff --git a/drivers/net/wireless/ath/ath11k/core.h b/drivers/net/wireless/ath/ath11k/core.h +index f12b606e2d2e56..667d55e261560f 100644 +--- a/drivers/net/wireless/ath/ath11k/core.h ++++ b/drivers/net/wireless/ath/ath11k/core.h +@@ -368,10 +368,6 @@ struct ath11k_vif { + struct ieee80211_chanctx_conf chanctx; + struct ath11k_arp_ns_offload arp_ns_offload; + struct ath11k_rekey_data rekey_data; +- +-#ifdef CONFIG_ATH11K_DEBUGFS +- struct dentry *debugfs_twt; +-#endif /* CONFIG_ATH11K_DEBUGFS */ + }; + + struct ath11k_vif_iter { +diff --git a/drivers/net/wireless/ath/ath11k/debugfs.c b/drivers/net/wireless/ath/ath11k/debugfs.c +index be76e7d1c4366e..3ba6aa077e36d2 100644 +--- a/drivers/net/wireless/ath/ath11k/debugfs.c ++++ b/drivers/net/wireless/ath/ath11k/debugfs.c +@@ -1893,35 +1893,30 @@ static const struct file_operations ath11k_fops_twt_resume_dialog = { + .open = simple_open + }; + +-void ath11k_debugfs_add_interface(struct ath11k_vif *arvif) ++void ath11k_debugfs_op_add_interface(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif) + { ++ struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); + struct ath11k_base *ab = arvif->ar->ab; ++ struct dentry *debugfs_twt; + + if (arvif->vif->type != NL80211_IFTYPE_AP && + !(arvif->vif->type == NL80211_IFTYPE_STATION && + test_bit(WMI_TLV_SERVICE_STA_TWT, ab->wmi_ab.svc_map))) + return; + +- arvif->debugfs_twt = debugfs_create_dir("twt", +- arvif->vif->debugfs_dir); +- debugfs_create_file("add_dialog", 0200, arvif->debugfs_twt, ++ debugfs_twt = debugfs_create_dir("twt", ++ arvif->vif->debugfs_dir); ++ debugfs_create_file("add_dialog", 0200, debugfs_twt, + arvif, &ath11k_fops_twt_add_dialog); + +- debugfs_create_file("del_dialog", 0200, arvif->debugfs_twt, ++ debugfs_create_file("del_dialog", 0200, debugfs_twt, + arvif, &ath11k_fops_twt_del_dialog); + +- debugfs_create_file("pause_dialog", 0200, arvif->debugfs_twt, ++ debugfs_create_file("pause_dialog", 0200, debugfs_twt, + arvif, &ath11k_fops_twt_pause_dialog); + +- debugfs_create_file("resume_dialog", 0200, arvif->debugfs_twt, ++ debugfs_create_file("resume_dialog", 0200, debugfs_twt, + arvif, &ath11k_fops_twt_resume_dialog); + } + +-void ath11k_debugfs_remove_interface(struct ath11k_vif *arvif) +-{ +- if (!arvif->debugfs_twt) +- return; +- +- debugfs_remove_recursive(arvif->debugfs_twt); +- arvif->debugfs_twt = NULL; +-} +diff --git a/drivers/net/wireless/ath/ath11k/debugfs.h b/drivers/net/wireless/ath/ath11k/debugfs.h +index 3af0169f6cf218..b0bdd5e5f82b22 100644 +--- a/drivers/net/wireless/ath/ath11k/debugfs.h ++++ b/drivers/net/wireless/ath/ath11k/debugfs.h +@@ -306,8 +306,8 @@ static inline int ath11k_debugfs_rx_filter(struct ath11k *ar) + return ar->debug.rx_filter; + } + +-void ath11k_debugfs_add_interface(struct ath11k_vif *arvif); +-void ath11k_debugfs_remove_interface(struct ath11k_vif *arvif); ++void ath11k_debugfs_op_add_interface(struct ieee80211_hw *hw, ++ struct ieee80211_vif *vif); + void ath11k_debugfs_add_dbring_entry(struct ath11k *ar, + enum wmi_direct_buffer_module id, + enum ath11k_dbg_dbr_event event, +@@ -386,14 +386,6 @@ static inline int ath11k_debugfs_get_fw_stats(struct ath11k *ar, + return 0; + } + +-static inline void ath11k_debugfs_add_interface(struct ath11k_vif *arvif) +-{ +-} +- +-static inline void ath11k_debugfs_remove_interface(struct ath11k_vif *arvif) +-{ +-} +- + static inline void + ath11k_debugfs_add_dbring_entry(struct ath11k *ar, + enum wmi_direct_buffer_module id, +diff --git a/drivers/net/wireless/ath/ath11k/mac.c b/drivers/net/wireless/ath/ath11k/mac.c +index 7f7b3981777377..6acf11fafb22e5 100644 +--- a/drivers/net/wireless/ath/ath11k/mac.c ++++ b/drivers/net/wireless/ath/ath11k/mac.c +@@ -6750,13 +6750,6 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw, + goto err; + } + +- /* In the case of hardware recovery, debugfs files are +- * not deleted since ieee80211_ops.remove_interface() is +- * not invoked. In such cases, try to delete the files. +- * These will be re-created later. +- */ +- ath11k_debugfs_remove_interface(arvif); +- + memset(arvif, 0, sizeof(*arvif)); + + arvif->ar = ar; +@@ -6933,8 +6926,6 @@ static int ath11k_mac_op_add_interface(struct ieee80211_hw *hw, + + ath11k_dp_vdev_tx_attach(ar, arvif); + +- ath11k_debugfs_add_interface(arvif); +- + if (vif->type != NL80211_IFTYPE_MONITOR && + test_bit(ATH11K_FLAG_MONITOR_CONF_ENABLED, &ar->monitor_flags)) { + ret = ath11k_mac_monitor_vdev_create(ar); +@@ -7050,8 +7041,6 @@ static void ath11k_mac_op_remove_interface(struct ieee80211_hw *hw, + /* Recalc txpower for remaining vdev */ + ath11k_mac_txpower_recalc(ar); + +- ath11k_debugfs_remove_interface(arvif); +- + /* TODO: recal traffic pause state based on the available vdevs */ + + mutex_unlock(&ar->conf_mutex); +@@ -9149,6 +9138,7 @@ static const struct ieee80211_ops ath11k_ops = { + #endif + + #ifdef CONFIG_ATH11K_DEBUGFS ++ .vif_add_debugfs = ath11k_debugfs_op_add_interface, + .sta_add_debugfs = ath11k_debugfs_sta_op_add, + #endif +