From a84cf6e84b4c5e2d6b74432d9f919e77ee93664d Mon Sep 17 00:00:00 2001 From: Konstantin Demin Date: Fri, 1 Nov 2024 15:46:17 +0300 Subject: [PATCH] release 6.11.6 --- debian/changelog | 7 + debian/config/config | 3 +- ...ftdep-declarations-for-hard-coded-cr.patch | 2 +- ...s-fix-typo-causing-some-targets-not-.patch | 61 -------- ...-raid5-6-being-experimental-at-mount.patch | 2 +- ...rt-symbols-needed-by-android-drivers.patch | 2 +- ...make-x32-syscall-support-conditional.patch | 2 +- ...ix-the-energy-pkg-event-for-AMD-CPUs.patch | 144 ++++++++++++++++++ ...te-Export-symbols-for-changing-modes.patch | 4 +- ...te-Catch-failures-for-amd_pstate_epp.patch | 8 +- ...referred-cores-in-amd_get_boost_rati.patch | 4 +- ...amd-pstate-Fix-non-kerneldoc-comment.patch | 2 +- ...te-Rename-MSR-and-shared-memory-spec.patch | 2 +- ...te-Set-the-initial-min_freq-to-lowes.patch | 6 +- ...te-Fix-amd_pstate-mode-switch-on-sha.patch | 42 ----- ...zone-unusable-accounting-for-freed-r.patch | 46 ------ ...e-compress-on-remount-when-compress-.patch | 64 -------- ...-a-more-sane-default-value-for-subtr.patch | 68 --------- ...orruption-due-to-race-with-extent-ma.patch | 107 ------------- ...rw-reconfiguration-if-there-are-hard.patch | 101 ------------ ...g-0-to-ERR_PTR-in-btrfs_search_dir_i.patch | 54 ------- ...Use-BFQ-as-the-elevator-for-SQ-devic.patch | 6 +- ...Use-Kyber-as-the-elevator-for-MQ-dev.patch | 8 +- debian/patches/series | 10 +- 24 files changed, 178 insertions(+), 577 deletions(-) delete mode 100644 debian/patches/bugfix/all/netfilter-xtables-fix-typo-causing-some-targets-not-.patch create mode 100644 debian/patches/krd/1001-Revert-perf-x86-rapl-Fix-the-energy-pkg-event-for-AMD-CPUs.patch delete mode 100644 debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Fix-amd_pstate-mode-switch-on-sha.patch delete mode 100644 debian/patches/patchset-pf/fixes/0006-btrfs-zoned-fix-zone-unusable-accounting-for-freed-r.patch delete mode 100644 debian/patches/patchset-pf/fixes/0007-btrfs-clear-force-compress-on-remount-when-compress-.patch delete mode 100644 debian/patches/patchset-pf/fixes/0008-btrfs-qgroup-set-a-more-sane-default-value-for-subtr.patch delete mode 100644 debian/patches/patchset-pf/fixes/0010-btrfs-fix-read-corruption-due-to-race-with-extent-ma.patch delete mode 100644 debian/patches/patchset-pf/fixes/0011-btrfs-reject-ro-rw-reconfiguration-if-there-are-hard.patch delete mode 100644 debian/patches/patchset-pf/fixes/0012-btrfs-fix-passing-0-to-ERR_PTR-in-btrfs_search_dir_i.patch diff --git a/debian/changelog b/debian/changelog index 29cdcb7..29c358e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +linux (6.11.6-1) sid; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.11.6 + + -- Konstantin Demin Fri, 01 Nov 2024 10:54:09 +0300 + linux (6.11.5-1) sid; urgency=medium * New upstream stable update: diff --git a/debian/config/config b/debian/config/config index fcb71aa..ce69a8d 100644 --- a/debian/config/config +++ b/debian/config/config @@ -79,7 +79,6 @@ CONFIG_RANDOMIZE_BASE=y CONFIG_PHYSICAL_ALIGN=0x200000 CONFIG_RANDOMIZE_MEMORY=y CONFIG_RANDOMIZE_MEMORY_PHYSICAL_PADDING=0xa -# CONFIG_ADDRESS_MASKING is not set # CONFIG_COMPAT_VDSO is not set ## choice: vsyscall table for legacy applications # CONFIG_LEGACY_VSYSCALL_XONLY is not set @@ -3968,7 +3967,7 @@ CONFIG_NET_REDIRECT=y CONFIG_NET_RX_BUSY_POLL=y CONFIG_NET_SCH_FIFO=y CONFIG_NET_SCH_MQPRIO_LIB=m -# CONFIG_NET_SELFTESTS is not set +CONFIG_NET_SELFTESTS=m CONFIG_NET_SOCK_MSG=y CONFIG_NET_UDP_TUNNEL=m CONFIG_NET_XGRESS=y diff --git a/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch index 7979c53..6ab61bd 100644 --- a/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch +++ b/debian/patches/bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch @@ -18,7 +18,7 @@ Signed-off-by: Ben Hutchings --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c -@@ -2638,7 +2638,7 @@ module_exit(exit_btrfs_fs) +@@ -2646,7 +2646,7 @@ module_exit(exit_btrfs_fs) MODULE_DESCRIPTION("B-Tree File System (BTRFS)"); MODULE_LICENSE("GPL"); diff --git a/debian/patches/bugfix/all/netfilter-xtables-fix-typo-causing-some-targets-not-.patch b/debian/patches/bugfix/all/netfilter-xtables-fix-typo-causing-some-targets-not-.patch deleted file mode 100644 index b5528ee..0000000 --- a/debian/patches/bugfix/all/netfilter-xtables-fix-typo-causing-some-targets-not-.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Pablo Neira Ayuso -Date: Sun, 20 Oct 2024 14:49:51 +0200 -Subject: netfilter: xtables: fix typo causing some targets not to load on IPv6 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit -Origin: https://git.kernel.org/linus/306ed1728e8438caed30332e1ab46b28c25fe3d8 -Bug-Debian: https://bugs.debian.org/1085953 - -- There is no NFPROTO_IPV6 family for mark and NFLOG. -- TRACE is also missing module autoload with NFPROTO_IPV6. - -This results in ip6tables failing to restore a ruleset. This issue has been -reported by several users providing incomplete patches. - -Very similar to Ilya Katsnelson's patch including a missing chunk in the -TRACE extension. - -Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed") -Reported-by: Ignat Korchagin -Reported-by: Ilya Katsnelson -Reported-by: Krzysztof Olędzki -Signed-off-by: Pablo Neira Ayuso ---- - net/netfilter/xt_NFLOG.c | 2 +- - net/netfilter/xt_TRACE.c | 1 + - net/netfilter/xt_mark.c | 2 +- - 3 files changed, 3 insertions(+), 2 deletions(-) - ---- a/net/netfilter/xt_NFLOG.c -+++ b/net/netfilter/xt_NFLOG.c -@@ -79,7 +79,7 @@ static struct xt_target nflog_tg_reg[] _ - { - .name = "NFLOG", - .revision = 0, -- .family = NFPROTO_IPV4, -+ .family = NFPROTO_IPV6, - .checkentry = nflog_tg_check, - .destroy = nflog_tg_destroy, - .target = nflog_tg, ---- a/net/netfilter/xt_TRACE.c -+++ b/net/netfilter/xt_TRACE.c -@@ -49,6 +49,7 @@ static struct xt_target trace_tg_reg[] _ - .target = trace_tg, - .checkentry = trace_tg_check, - .destroy = trace_tg_destroy, -+ .me = THIS_MODULE, - }, - #endif - }; ---- a/net/netfilter/xt_mark.c -+++ b/net/netfilter/xt_mark.c -@@ -62,7 +62,7 @@ static struct xt_target mark_tg_reg[] __ - { - .name = "MARK", - .revision = 2, -- .family = NFPROTO_IPV4, -+ .family = NFPROTO_IPV6, - .target = mark_tg, - .targetsize = sizeof(struct xt_mark_tginfo2), - .me = THIS_MODULE, diff --git a/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch index 69c6796..5b3d94e 100644 --- a/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch +++ b/debian/patches/debian/btrfs-warn-about-raid5-6-being-experimental-at-mount.patch @@ -22,7 +22,7 @@ implementation went from disk-io.c to super.c; forwarded the issue] --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c -@@ -757,6 +757,18 @@ static void set_device_specific_options( +@@ -766,6 +766,18 @@ static void set_device_specific_options( btrfs_set_opt(fs_info->mount_opt, SSD); /* diff --git a/debian/patches/debian/export-symbols-needed-by-android-drivers.patch b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch index ad72fc9..11584f9 100644 --- a/debian/patches/debian/export-symbols-needed-by-android-drivers.patch +++ b/debian/patches/debian/export-symbols-needed-by-android-drivers.patch @@ -72,7 +72,7 @@ Export the currently un-exported symbols it depends on. * Note: we use "set_current_state()" _after_ the wait-queue add, --- a/kernel/task_work.c +++ b/kernel/task_work.c -@@ -97,6 +97,7 @@ int task_work_add(struct task_struct *ta +@@ -108,6 +108,7 @@ int task_work_add(struct task_struct *ta return 0; } diff --git a/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch index 204deac..b1a845c 100644 --- a/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch +++ b/debian/patches/features/x86/x86-make-x32-syscall-support-conditional.patch @@ -42,7 +42,7 @@ Signed-off-by: Ben Hutchings Ignore sysrq setting - this boot parameter will --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -3065,6 +3065,14 @@ config COMPAT_32 +@@ -3066,6 +3066,14 @@ config COMPAT_32 select HAVE_UID16 select OLD_SIGSUSPEND3 diff --git a/debian/patches/krd/1001-Revert-perf-x86-rapl-Fix-the-energy-pkg-event-for-AMD-CPUs.patch b/debian/patches/krd/1001-Revert-perf-x86-rapl-Fix-the-energy-pkg-event-for-AMD-CPUs.patch new file mode 100644 index 0000000..28bf8cd --- /dev/null +++ b/debian/patches/krd/1001-Revert-perf-x86-rapl-Fix-the-energy-pkg-event-for-AMD-CPUs.patch @@ -0,0 +1,144 @@ +this reverts following commit: + + From: Dhananjay Ugwekar + Date: Tue, 30 Jul 2024 04:49:18 +0000 + Subject: perf/x86/rapl: Fix the energy-pkg event for AMD CPUs + + commit 8d72eba1cf8cecd76a2b4c1dd7673c2dc775f514 upstream. + + After commit: + + 63edbaa48a57 ("x86/cpu/topology: Add support for the AMD 0x80000026 leaf") + + ... on AMD processors that support extended CPUID leaf 0x80000026, the + topology_die_cpumask() and topology_logical_die_id() macros no longer + return the package cpumask and package ID, instead they return the CCD + (Core Complex Die) mask and ID respectively. + + This leads to the energy-pkg event scope to be modified to CCD instead of package. + + So, change the PMU scope for AMD and Hygon back to package. + + On a 12 CCD 1 Package AMD Zen4 Genoa machine: + + Before: + + $ cat /sys/devices/power/cpumask + 0,8,16,24,32,40,48,56,64,72,80,88. + + The expected cpumask here is supposed to be just "0", as it is a package + scope event, only one CPU will be collecting the event for all the CPUs in + the package. + + After: + + $ cat /sys/devices/power/cpumask + 0 + + [ mingo: Cleaned up the changelog ] + + Signed-off-by: Dhananjay Ugwekar + Signed-off-by: Ingo Molnar + Reviewed-by: Kan Liang + Link: https://lore.kernel.org/r/20240904100934.3260-1-Dhananjay.Ugwekar@amd.com + Signed-off-by: Greg Kroah-Hartman + +--- a/arch/x86/events/rapl.c ++++ b/arch/x86/events/rapl.c +@@ -103,19 +103,6 @@ static struct perf_pmu_events_attr event + .event_str = str, \ + }; + +-/* +- * RAPL Package energy counter scope: +- * 1. AMD/HYGON platforms have a per-PKG package energy counter +- * 2. For Intel platforms +- * 2.1. CLX-AP is multi-die and its RAPL MSRs are die-scope +- * 2.2. Other Intel platforms are single die systems so the scope can be +- * considered as either pkg-scope or die-scope, and we are considering +- * them as die-scope. +- */ +-#define rapl_pmu_is_pkg_scope() \ +- (boot_cpu_data.x86_vendor == X86_VENDOR_AMD || \ +- boot_cpu_data.x86_vendor == X86_VENDOR_HYGON) +- + struct rapl_pmu { + raw_spinlock_t lock; + int n_active; +@@ -153,25 +140,9 @@ static unsigned int rapl_cntr_mask; + static u64 rapl_timer_ms; + static struct perf_msr *rapl_msrs; + +-/* +- * Helper functions to get the correct topology macros according to the +- * RAPL PMU scope. +- */ +-static inline unsigned int get_rapl_pmu_idx(int cpu) +-{ +- return rapl_pmu_is_pkg_scope() ? topology_logical_package_id(cpu) : +- topology_logical_die_id(cpu); +-} +- +-static inline const struct cpumask *get_rapl_pmu_cpumask(int cpu) +-{ +- return rapl_pmu_is_pkg_scope() ? topology_core_cpumask(cpu) : +- topology_die_cpumask(cpu); +-} +- + static inline struct rapl_pmu *cpu_to_rapl_pmu(unsigned int cpu) + { +- unsigned int rapl_pmu_idx = get_rapl_pmu_idx(cpu); ++ unsigned int rapl_pmu_idx = topology_logical_die_id(cpu); + + /* + * The unsigned check also catches the '-1' return value for non +@@ -581,7 +552,7 @@ static int rapl_cpu_offline(unsigned int + + pmu->cpu = -1; + /* Find a new cpu to collect rapl events */ +- target = cpumask_any_but(get_rapl_pmu_cpumask(cpu), cpu); ++ target = cpumask_any_but(topology_die_cpumask(cpu), cpu); + + /* Migrate rapl events to the new target */ + if (target < nr_cpu_ids) { +@@ -594,11 +565,6 @@ static int rapl_cpu_offline(unsigned int + + static int rapl_cpu_online(unsigned int cpu) + { +- s32 rapl_pmu_idx = get_rapl_pmu_idx(cpu); +- if (rapl_pmu_idx < 0) { +- pr_err("topology_logical_(package/die)_id() returned a negative value"); +- return -EINVAL; +- } + struct rapl_pmu *pmu = cpu_to_rapl_pmu(cpu); + int target; + +@@ -613,14 +579,14 @@ static int rapl_cpu_online(unsigned int + pmu->timer_interval = ms_to_ktime(rapl_timer_ms); + rapl_hrtimer_init(pmu); + +- rapl_pmus->pmus[rapl_pmu_idx] = pmu; ++ rapl_pmus->pmus[topology_logical_die_id(cpu)] = pmu; + } + + /* + * Check if there is an online cpu in the package which collects rapl + * events already. + */ +- target = cpumask_any_and(&rapl_cpu_mask, get_rapl_pmu_cpumask(cpu)); ++ target = cpumask_any_and(&rapl_cpu_mask, topology_die_cpumask(cpu)); + if (target < nr_cpu_ids) + return 0; + +@@ -709,10 +675,7 @@ static const struct attribute_group *rap + + static int __init init_rapl_pmus(void) + { +- int nr_rapl_pmu = topology_max_packages(); +- +- if (!rapl_pmu_is_pkg_scope()) +- nr_rapl_pmu *= topology_max_dies_per_package(); ++ int nr_rapl_pmu = topology_max_packages() * topology_max_dies_per_package(); + + rapl_pmus = kzalloc(struct_size(rapl_pmus, pmus, nr_rapl_pmu), GFP_KERNEL); + if (!rapl_pmus) diff --git a/debian/patches/patchset-pf/amd-pstate/0002-cpufreq-amd-pstate-Export-symbols-for-changing-modes.patch b/debian/patches/patchset-pf/amd-pstate/0002-cpufreq-amd-pstate-Export-symbols-for-changing-modes.patch index a2f1bf5..a15acda 100644 --- a/debian/patches/patchset-pf/amd-pstate/0002-cpufreq-amd-pstate-Export-symbols-for-changing-modes.patch +++ b/debian/patches/patchset-pf/amd-pstate/0002-cpufreq-amd-pstate-Export-symbols-for-changing-modes.patch @@ -48,7 +48,7 @@ Signed-off-by: Mario Limonciello struct quirk_entry { u32 nominal_freq; u32 lowest_freq; -@@ -1392,7 +1388,7 @@ static ssize_t amd_pstate_show_status(ch +@@ -1402,7 +1398,7 @@ static ssize_t amd_pstate_show_status(ch return sysfs_emit(buf, "%s\n", amd_pstate_mode_string[cppc_state]); } @@ -57,7 +57,7 @@ Signed-off-by: Mario Limonciello { int mode_idx; -@@ -1409,6 +1405,7 @@ static int amd_pstate_update_status(cons +@@ -1419,6 +1415,7 @@ static int amd_pstate_update_status(cons return 0; } diff --git a/debian/patches/patchset-pf/amd-pstate/0004-cpufreq-amd-pstate-Catch-failures-for-amd_pstate_epp.patch b/debian/patches/patchset-pf/amd-pstate/0004-cpufreq-amd-pstate-Catch-failures-for-amd_pstate_epp.patch index 0201b74..50cd48f 100644 --- a/debian/patches/patchset-pf/amd-pstate/0004-cpufreq-amd-pstate-Catch-failures-for-amd_pstate_epp.patch +++ b/debian/patches/patchset-pf/amd-pstate/0004-cpufreq-amd-pstate-Catch-failures-for-amd_pstate_epp.patch @@ -14,7 +14,7 @@ Signed-off-by: Mario Limonciello --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c -@@ -1595,7 +1595,7 @@ static void amd_pstate_epp_cpu_exit(stru +@@ -1605,7 +1605,7 @@ static void amd_pstate_epp_cpu_exit(stru pr_debug("CPU %d exiting\n", policy->cpu); } @@ -23,7 +23,7 @@ Signed-off-by: Mario Limonciello { struct amd_cpudata *cpudata = policy->driver_data; u32 max_perf, min_perf, min_limit_perf, max_limit_perf; -@@ -1645,7 +1645,7 @@ static void amd_pstate_epp_update_limit( +@@ -1655,7 +1655,7 @@ static void amd_pstate_epp_update_limit( * This return value can only be negative for shared_memory * systems where EPP register read/write not supported. */ @@ -32,7 +32,7 @@ Signed-off-by: Mario Limonciello } if (cpudata->policy == CPUFREQ_POLICY_PERFORMANCE) -@@ -1658,12 +1658,13 @@ static void amd_pstate_epp_update_limit( +@@ -1668,12 +1668,13 @@ static void amd_pstate_epp_update_limit( } WRITE_ONCE(cpudata->cppc_req_cached, value); @@ -47,7 +47,7 @@ Signed-off-by: Mario Limonciello if (!policy->cpuinfo.max_freq) return -ENODEV; -@@ -1673,7 +1674,9 @@ static int amd_pstate_epp_set_policy(str +@@ -1683,7 +1684,9 @@ static int amd_pstate_epp_set_policy(str cpudata->policy = policy->policy; diff --git a/debian/patches/patchset-pf/amd-pstate/0011-x86-amd-Detect-preferred-cores-in-amd_get_boost_rati.patch b/debian/patches/patchset-pf/amd-pstate/0011-x86-amd-Detect-preferred-cores-in-amd_get_boost_rati.patch index 60ddc56..151cbe5 100644 --- a/debian/patches/patchset-pf/amd-pstate/0011-x86-amd-Detect-preferred-cores-in-amd_get_boost_rati.patch +++ b/debian/patches/patchset-pf/amd-pstate/0011-x86-amd-Detect-preferred-cores-in-amd_get_boost_rati.patch @@ -200,7 +200,7 @@ Signed-off-by: Mario Limonciello ret = amd_pstate_init_freq(cpudata); if (ret) goto free_cpudata1; -@@ -1493,12 +1479,12 @@ static int amd_pstate_epp_cpu_init(struc +@@ -1503,12 +1489,12 @@ static int amd_pstate_epp_cpu_init(struc cpudata->cpu = policy->cpu; cpudata->epp_policy = 0; @@ -215,7 +215,7 @@ Signed-off-by: Mario Limonciello ret = amd_pstate_init_freq(cpudata); if (ret) goto free_cpudata1; -@@ -1960,6 +1946,12 @@ static int __init amd_pstate_init(void) +@@ -1970,6 +1956,12 @@ static int __init amd_pstate_init(void) static_call_update(amd_pstate_update_perf, cppc_update_perf); } diff --git a/debian/patches/patchset-pf/amd-pstate/0016-cpufreq-amd-pstate-Fix-non-kerneldoc-comment.patch b/debian/patches/patchset-pf/amd-pstate/0016-cpufreq-amd-pstate-Fix-non-kerneldoc-comment.patch index de4a858..36e8abc 100644 --- a/debian/patches/patchset-pf/amd-pstate/0016-cpufreq-amd-pstate-Fix-non-kerneldoc-comment.patch +++ b/debian/patches/patchset-pf/amd-pstate/0016-cpufreq-amd-pstate-Fix-non-kerneldoc-comment.patch @@ -13,7 +13,7 @@ Signed-off-by: Mario Limonciello --- a/drivers/cpufreq/amd-pstate.c +++ b/drivers/cpufreq/amd-pstate.c -@@ -1786,7 +1786,7 @@ static int __init amd_pstate_set_driver( +@@ -1796,7 +1796,7 @@ static int __init amd_pstate_set_driver( return -EINVAL; } diff --git a/debian/patches/patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec.patch b/debian/patches/patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec.patch index efe032b..287b881 100644 --- a/debian/patches/patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec.patch +++ b/debian/patches/patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec.patch @@ -93,7 +93,7 @@ Signed-off-by: Dhananjay Ugwekar u32 min_perf, u32 des_perf, u32 max_perf, bool fast_switch) { -@@ -1909,9 +1909,9 @@ static int __init amd_pstate_init(void) +@@ -1919,9 +1919,9 @@ static int __init amd_pstate_init(void) current_pstate_driver->adjust_perf = amd_pstate_adjust_perf; } else { pr_debug("AMD CPPC shared memory based functionality is supported\n"); diff --git a/debian/patches/patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch b/debian/patches/patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch index fa421e8..fb70b93 100644 --- a/debian/patches/patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch +++ b/debian/patches/patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch @@ -47,7 +47,7 @@ Reviewed-by: Mario Limonciello ret = freq_qos_add_request(&policy->constraints, &cpudata->req[1], FREQ_QOS_MAX, policy->cpuinfo.max_freq); if (ret < 0) { -@@ -1736,6 +1729,13 @@ static int amd_pstate_epp_resume(struct +@@ -1746,6 +1739,13 @@ static int amd_pstate_epp_resume(struct return 0; } @@ -61,7 +61,7 @@ Reviewed-by: Mario Limonciello static struct cpufreq_driver amd_pstate_driver = { .flags = CPUFREQ_CONST_LOOPS | CPUFREQ_NEED_UPDATE_LIMITS, .verify = amd_pstate_verify, -@@ -1749,6 +1749,7 @@ static struct cpufreq_driver amd_pstate_ +@@ -1759,6 +1759,7 @@ static struct cpufreq_driver amd_pstate_ .update_limits = amd_pstate_update_limits, .name = "amd-pstate", .attr = amd_pstate_attr, @@ -69,7 +69,7 @@ Reviewed-by: Mario Limonciello }; static struct cpufreq_driver amd_pstate_epp_driver = { -@@ -1765,6 +1766,7 @@ static struct cpufreq_driver amd_pstate_ +@@ -1775,6 +1776,7 @@ static struct cpufreq_driver amd_pstate_ .set_boost = amd_pstate_set_boost, .name = "amd-pstate-epp", .attr = amd_pstate_epp_attr, diff --git a/debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Fix-amd_pstate-mode-switch-on-sha.patch b/debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Fix-amd_pstate-mode-switch-on-sha.patch deleted file mode 100644 index 6b342ff..0000000 --- a/debian/patches/patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Fix-amd_pstate-mode-switch-on-sha.patch +++ /dev/null @@ -1,42 +0,0 @@ -From d1216c052bedbf6d79e4b0261e2f09e17c66ffd3 Mon Sep 17 00:00:00 2001 -From: Dhananjay Ugwekar -Date: Fri, 4 Oct 2024 12:23:04 +0000 -Subject: cpufreq/amd-pstate: Fix amd_pstate mode switch on shared memory - systems - -While switching the driver mode between active and passive, Collaborative -Processor Performance Control (CPPC) is disabled in -amd_pstate_unregister_driver(). But, it is not enabled back while registering -the new driver (passive or active). This leads to the new driver mode not -working correctly, so enable it back in amd_pstate_register_driver(). - -Fixes: 3ca7bc818d8c ("cpufreq: amd-pstate: Add guided mode control support via sysfs") -Signed-off-by: Dhananjay Ugwekar ---- - drivers/cpufreq/amd-pstate.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/cpufreq/amd-pstate.c -+++ b/drivers/cpufreq/amd-pstate.c -@@ -1221,11 +1221,21 @@ static int amd_pstate_register_driver(in - return -EINVAL; - - cppc_state = mode; -+ -+ ret = amd_pstate_enable(true); -+ if (ret) { -+ pr_err("failed to enable cppc during amd-pstate driver registration, return %d\n", -+ ret); -+ amd_pstate_driver_cleanup(); -+ return ret; -+ } -+ - ret = cpufreq_register_driver(current_pstate_driver); - if (ret) { - amd_pstate_driver_cleanup(); - return ret; - } -+ - return 0; - } - diff --git a/debian/patches/patchset-pf/fixes/0006-btrfs-zoned-fix-zone-unusable-accounting-for-freed-r.patch b/debian/patches/patchset-pf/fixes/0006-btrfs-zoned-fix-zone-unusable-accounting-for-freed-r.patch deleted file mode 100644 index cc462c6..0000000 --- a/debian/patches/patchset-pf/fixes/0006-btrfs-zoned-fix-zone-unusable-accounting-for-freed-r.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 4086c1a804741c9c8f418d6088e8c531f2a481f3 Mon Sep 17 00:00:00 2001 -From: Naohiro Aota -Date: Tue, 1 Oct 2024 17:03:32 +0900 -Subject: btrfs: zoned: fix zone unusable accounting for freed reserved extent - -When btrfs reserves an extent and does not use it (e.g, by an error), it -calls btrfs_free_reserved_extent() to free the reserved extent. In the -process, it calls btrfs_add_free_space() and then it accounts the region -bytes as block_group->zone_unusable. - -However, it leaves the space_info->bytes_zone_unusable side not updated. As -a result, ENOSPC can happen while a space_info reservation succeeded. The -reservation is fine because the freed region is not added in -space_info->bytes_zone_unusable, leaving that space as "free". OTOH, -corresponding block group counts it as zone_unusable and its allocation -pointer is not rewound, we cannot allocate an extent from that block group. -That will also negate space_info's async/sync reclaim process, and cause an -ENOSPC error from the extent allocation process. - -Fix that by returning the space to space_info->bytes_zone_unusable. -Ideally, since a bio is not submitted for this reserved region, we should -return the space to free space and rewind the allocation pointer. But, it -needs rework on extent allocation handling, so let it work in this way for -now. - -Fixes: 169e0da91a21 ("btrfs: zoned: track unusable bytes for zones") -CC: stable@vger.kernel.org # 5.15+ -Reviewed-by: Johannes Thumshirn -Signed-off-by: Naohiro Aota -Reviewed-by: David Sterba -Signed-off-by: David Sterba ---- - fs/btrfs/block-group.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/fs/btrfs/block-group.c -+++ b/fs/btrfs/block-group.c -@@ -3819,6 +3819,8 @@ void btrfs_free_reserved_bytes(struct bt - spin_lock(&cache->lock); - if (cache->ro) - space_info->bytes_readonly += num_bytes; -+ else if (btrfs_is_zoned(cache->fs_info)) -+ space_info->bytes_zone_unusable += num_bytes; - cache->reserved -= num_bytes; - space_info->bytes_reserved -= num_bytes; - space_info->max_extent_size = 0; diff --git a/debian/patches/patchset-pf/fixes/0007-btrfs-clear-force-compress-on-remount-when-compress-.patch b/debian/patches/patchset-pf/fixes/0007-btrfs-clear-force-compress-on-remount-when-compress-.patch deleted file mode 100644 index 42144a5..0000000 --- a/debian/patches/patchset-pf/fixes/0007-btrfs-clear-force-compress-on-remount-when-compress-.patch +++ /dev/null @@ -1,64 +0,0 @@ -From aa8155f0ba032729ec4f28c5cb9669fb14f6947b Mon Sep 17 00:00:00 2001 -From: Filipe Manana -Date: Mon, 14 Oct 2024 16:14:18 +0100 -Subject: btrfs: clear force-compress on remount when compress mount option is - given - -After the migration to use fs context for processing mount options we had -a slight change in the semantics for remounting a filesystem that was -mounted with compress-force. Before we could clear compress-force by -passing only "-o compress[=algo]" during a remount, but after that change -that does not work anymore, force-compress is still present and one needs -to pass "-o compress-force=no,compress[=algo]" to the mount command. - -Example, when running on a kernel 6.8+: - - $ mount -o compress-force=zlib:9 /dev/sdi /mnt/sdi - $ mount | grep sdi - /dev/sdi on /mnt/sdi type btrfs (rw,relatime,compress-force=zlib:9,discard=async,space_cache=v2,subvolid=5,subvol=/) - - $ mount -o remount,compress=zlib:5 /mnt/sdi - $ mount | grep sdi - /dev/sdi on /mnt/sdi type btrfs (rw,relatime,compress-force=zlib:5,discard=async,space_cache=v2,subvolid=5,subvol=/) - -On a 6.7 kernel (or older): - - $ mount -o compress-force=zlib:9 /dev/sdi /mnt/sdi - $ mount | grep sdi - /dev/sdi on /mnt/sdi type btrfs (rw,relatime,compress-force=zlib:9,discard=async,space_cache=v2,subvolid=5,subvol=/) - - $ mount -o remount,compress=zlib:5 /mnt/sdi - $ mount | grep sdi - /dev/sdi on /mnt/sdi type btrfs (rw,relatime,compress=zlib:5,discard=async,space_cache=v2,subvolid=5,subvol=/) - -So update btrfs_parse_param() to clear "compress-force" when "compress" is -given, providing the same semantics as kernel 6.7 and older. - -Reported-by: Roman Mamedov -Link: https://lore.kernel.org/linux-btrfs/20241014182416.13d0f8b0@nvm/ -CC: stable@vger.kernel.org # 6.8+ -Signed-off-by: Filipe Manana -Reviewed-by: David Sterba -Signed-off-by: David Sterba ---- - fs/btrfs/super.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/fs/btrfs/super.c -+++ b/fs/btrfs/super.c -@@ -340,6 +340,15 @@ static int btrfs_parse_param(struct fs_c - fallthrough; - case Opt_compress: - case Opt_compress_type: -+ /* -+ * Provide the same semantics as older kernels that don't use fs -+ * context, specifying the "compress" option clears -+ * "force-compress" without the need to pass -+ * "compress-force=[no|none]" before specifying "compress". -+ */ -+ if (opt != Opt_compress_force && opt != Opt_compress_force_type) -+ btrfs_clear_opt(ctx->mount_opt, FORCE_COMPRESS); -+ - if (opt == Opt_compress || opt == Opt_compress_force) { - ctx->compress_type = BTRFS_COMPRESS_ZLIB; - ctx->compress_level = BTRFS_ZLIB_DEFAULT_LEVEL; diff --git a/debian/patches/patchset-pf/fixes/0008-btrfs-qgroup-set-a-more-sane-default-value-for-subtr.patch b/debian/patches/patchset-pf/fixes/0008-btrfs-qgroup-set-a-more-sane-default-value-for-subtr.patch deleted file mode 100644 index 2c1b65f..0000000 --- a/debian/patches/patchset-pf/fixes/0008-btrfs-qgroup-set-a-more-sane-default-value-for-subtr.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 81baeb2a67d8245ac5b61299e54dd65defd4ac72 Mon Sep 17 00:00:00 2001 -From: Qu Wenruo -Date: Tue, 10 Sep 2024 15:21:04 +0930 -Subject: btrfs: qgroup: set a more sane default value for subtree drop - threshold - -Since commit 011b46c30476 ("btrfs: skip subtree scan if it's too high to -avoid low stall in btrfs_commit_transaction()"), btrfs qgroup can -automatically skip large subtree scan at the cost of marking qgroup -inconsistent. - -It's designed to address the final performance problem of snapshot drop -with qgroup enabled, but to be safe the default value is -BTRFS_MAX_LEVEL, requiring a user space daemon to set a different value -to make it work. - -I'd say it's not a good idea to rely on user space tool to set this -default value, especially when some operations (snapshot dropping) can -be triggered immediately after mount, leaving a very small window to -that that sysfs interface. - -So instead of disabling this new feature by default, enable it with a -low threshold (3), so that large subvolume tree drop at mount time won't -cause huge qgroup workload. - -CC: stable@vger.kernel.org # 6.1 -Signed-off-by: Qu Wenruo -Reviewed-by: David Sterba -Signed-off-by: David Sterba ---- - fs/btrfs/disk-io.c | 2 +- - fs/btrfs/qgroup.c | 2 +- - fs/btrfs/qgroup.h | 2 ++ - 3 files changed, 4 insertions(+), 2 deletions(-) - ---- a/fs/btrfs/disk-io.c -+++ b/fs/btrfs/disk-io.c -@@ -1960,7 +1960,7 @@ static void btrfs_init_qgroup(struct btr - fs_info->qgroup_seq = 1; - fs_info->qgroup_ulist = NULL; - fs_info->qgroup_rescan_running = false; -- fs_info->qgroup_drop_subtree_thres = BTRFS_MAX_LEVEL; -+ fs_info->qgroup_drop_subtree_thres = BTRFS_QGROUP_DROP_SUBTREE_THRES_DEFAULT; - mutex_init(&fs_info->qgroup_rescan_lock); - } - ---- a/fs/btrfs/qgroup.c -+++ b/fs/btrfs/qgroup.c -@@ -1407,7 +1407,7 @@ int btrfs_quota_disable(struct btrfs_fs_ - fs_info->quota_root = NULL; - fs_info->qgroup_flags &= ~BTRFS_QGROUP_STATUS_FLAG_ON; - fs_info->qgroup_flags &= ~BTRFS_QGROUP_STATUS_FLAG_SIMPLE_MODE; -- fs_info->qgroup_drop_subtree_thres = BTRFS_MAX_LEVEL; -+ fs_info->qgroup_drop_subtree_thres = BTRFS_QGROUP_DROP_SUBTREE_THRES_DEFAULT; - spin_unlock(&fs_info->qgroup_lock); - - btrfs_free_qgroup_config(fs_info); ---- a/fs/btrfs/qgroup.h -+++ b/fs/btrfs/qgroup.h -@@ -121,6 +121,8 @@ struct btrfs_inode; - #define BTRFS_QGROUP_RUNTIME_FLAG_CANCEL_RESCAN (1ULL << 63) - #define BTRFS_QGROUP_RUNTIME_FLAG_NO_ACCOUNTING (1ULL << 62) - -+#define BTRFS_QGROUP_DROP_SUBTREE_THRES_DEFAULT (3) -+ - /* - * Record a dirty extent, and info qgroup to update quota on it - */ diff --git a/debian/patches/patchset-pf/fixes/0010-btrfs-fix-read-corruption-due-to-race-with-extent-ma.patch b/debian/patches/patchset-pf/fixes/0010-btrfs-fix-read-corruption-due-to-race-with-extent-ma.patch deleted file mode 100644 index 496ce00..0000000 --- a/debian/patches/patchset-pf/fixes/0010-btrfs-fix-read-corruption-due-to-race-with-extent-ma.patch +++ /dev/null @@ -1,107 +0,0 @@ -From f6f5cd12972307324de5decd7fa41b0b3c98639c Mon Sep 17 00:00:00 2001 -From: Boris Burkov -Date: Fri, 18 Oct 2024 15:44:34 -0700 -Subject: btrfs: fix read corruption due to race with extent map merging - -In debugging some corrupt squashfs files, we observed symptoms of -corrupt page cache pages but correct on-disk contents. Further -investigation revealed that the exact symptom was a correct page -followed by an incorrect, duplicate, page. This got us thinking about -extent maps. - -commit ac05ca913e9f ("Btrfs: fix race between using extent maps and merging them") -enforces a reference count on the primary `em` extent_map being merged, -as that one gets modified. - -However, since, -commit 3d2ac9922465 ("btrfs: introduce new members for extent_map") -both 'em' and 'merge' get modified, which started modifying 'merge' -and thus introduced the same race. - -We were able to reproduce this by looping the affected squashfs workload -in parallel on a bunch of separate btrfs-es while also dropping caches. -We are still working on a simple enough reproducer to make into an fstest. - -The simplest fix is to stop modifying 'merge', which is not essential, -as it is dropped immediately after the merge. This behavior is simply -a consequence of the order of the two extent maps being important in -computing the new values. Modify merge_ondisk_extents to take prev and -next by const* and also take a third merged parameter that it puts the -results in. Note that this introduces the rather odd behavior of passing -'em' to merge_ondisk_extents as a const * and as a regular ptr. - -Fixes: 3d2ac9922465 ("btrfs: introduce new members for extent_map") -CC: stable@vger.kernel.org # 6.11+ -Reviewed-by: Qu Wenruo -Reviewed-by: Filipe Manana -Signed-off-by: Omar Sandoval -Signed-off-by: Boris Burkov -Signed-off-by: David Sterba ---- - fs/btrfs/extent_map.c | 31 ++++++++++++++++--------------- - 1 file changed, 16 insertions(+), 15 deletions(-) - ---- a/fs/btrfs/extent_map.c -+++ b/fs/btrfs/extent_map.c -@@ -240,13 +240,19 @@ static bool mergeable_maps(const struct - /* - * Handle the on-disk data extents merge for @prev and @next. - * -+ * @prev: left extent to merge -+ * @next: right extent to merge -+ * @merged: the extent we will not discard after the merge; updated with new values -+ * -+ * After this, one of the two extents is the new merged extent and the other is -+ * removed from the tree and likely freed. Note that @merged is one of @prev/@next -+ * so there is const/non-const aliasing occurring here. -+ * - * Only touches disk_bytenr/disk_num_bytes/offset/ram_bytes. - * For now only uncompressed regular extent can be merged. -- * -- * @prev and @next will be both updated to point to the new merged range. -- * Thus one of them should be removed by the caller. - */ --static void merge_ondisk_extents(struct extent_map *prev, struct extent_map *next) -+static void merge_ondisk_extents(const struct extent_map *prev, const struct extent_map *next, -+ struct extent_map *merged) - { - u64 new_disk_bytenr; - u64 new_disk_num_bytes; -@@ -281,15 +287,10 @@ static void merge_ondisk_extents(struct - new_disk_bytenr; - new_offset = prev->disk_bytenr + prev->offset - new_disk_bytenr; - -- prev->disk_bytenr = new_disk_bytenr; -- prev->disk_num_bytes = new_disk_num_bytes; -- prev->ram_bytes = new_disk_num_bytes; -- prev->offset = new_offset; -- -- next->disk_bytenr = new_disk_bytenr; -- next->disk_num_bytes = new_disk_num_bytes; -- next->ram_bytes = new_disk_num_bytes; -- next->offset = new_offset; -+ merged->disk_bytenr = new_disk_bytenr; -+ merged->disk_num_bytes = new_disk_num_bytes; -+ merged->ram_bytes = new_disk_num_bytes; -+ merged->offset = new_offset; - } - - static void dump_extent_map(struct btrfs_fs_info *fs_info, const char *prefix, -@@ -358,7 +359,7 @@ static void try_merge_map(struct btrfs_i - em->generation = max(em->generation, merge->generation); - - if (em->disk_bytenr < EXTENT_MAP_LAST_BYTE) -- merge_ondisk_extents(merge, em); -+ merge_ondisk_extents(merge, em, em); - em->flags |= EXTENT_FLAG_MERGED; - - validate_extent_map(fs_info, em); -@@ -375,7 +376,7 @@ static void try_merge_map(struct btrfs_i - if (rb && can_merge_extent_map(merge) && mergeable_maps(em, merge)) { - em->len += merge->len; - if (em->disk_bytenr < EXTENT_MAP_LAST_BYTE) -- merge_ondisk_extents(em, merge); -+ merge_ondisk_extents(em, merge, em); - validate_extent_map(fs_info, em); - rb_erase(&merge->rb_node, &tree->root); - RB_CLEAR_NODE(&merge->rb_node); diff --git a/debian/patches/patchset-pf/fixes/0011-btrfs-reject-ro-rw-reconfiguration-if-there-are-hard.patch b/debian/patches/patchset-pf/fixes/0011-btrfs-reject-ro-rw-reconfiguration-if-there-are-hard.patch deleted file mode 100644 index 4851e23..0000000 --- a/debian/patches/patchset-pf/fixes/0011-btrfs-reject-ro-rw-reconfiguration-if-there-are-hard.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 7f83049bda761f340991af8dce79a4e98c62b378 Mon Sep 17 00:00:00 2001 -From: Qu Wenruo -Date: Thu, 19 Sep 2024 20:18:11 +0930 -Subject: btrfs: reject ro->rw reconfiguration if there are hard ro - requirements - -[BUG] -Syzbot reports the following crash: - - BTRFS info (device loop0 state MCS): disabling free space tree - BTRFS info (device loop0 state MCS): clearing compat-ro feature flag for FREE_SPACE_TREE (0x1) - BTRFS info (device loop0 state MCS): clearing compat-ro feature flag for FREE_SPACE_TREE_VALID (0x2) - Oops: general protection fault, probably for non-canonical address 0xdffffc0000000003: 0000 [#1] PREEMPT SMP KASAN NOPTI - KASAN: null-ptr-deref in range [0x0000000000000018-0x000000000000001f] - Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 - RIP: 0010:backup_super_roots fs/btrfs/disk-io.c:1691 [inline] - RIP: 0010:write_all_supers+0x97a/0x40f0 fs/btrfs/disk-io.c:4041 - Call Trace: - - btrfs_commit_transaction+0x1eae/0x3740 fs/btrfs/transaction.c:2530 - btrfs_delete_free_space_tree+0x383/0x730 fs/btrfs/free-space-tree.c:1312 - btrfs_start_pre_rw_mount+0xf28/0x1300 fs/btrfs/disk-io.c:3012 - btrfs_remount_rw fs/btrfs/super.c:1309 [inline] - btrfs_reconfigure+0xae6/0x2d40 fs/btrfs/super.c:1534 - btrfs_reconfigure_for_mount fs/btrfs/super.c:2020 [inline] - btrfs_get_tree_subvol fs/btrfs/super.c:2079 [inline] - btrfs_get_tree+0x918/0x1920 fs/btrfs/super.c:2115 - vfs_get_tree+0x90/0x2b0 fs/super.c:1800 - do_new_mount+0x2be/0xb40 fs/namespace.c:3472 - do_mount fs/namespace.c:3812 [inline] - __do_sys_mount fs/namespace.c:4020 [inline] - __se_sys_mount+0x2d6/0x3c0 fs/namespace.c:3997 - do_syscall_x64 arch/x86/entry/common.c:52 [inline] - do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83 - entry_SYSCALL_64_after_hwframe+0x77/0x7f - -[CAUSE] -To support mounting different subvolume with different RO/RW flags for -the new mount APIs, btrfs introduced two workaround to support this feature: - -- Skip mount option/feature checks if we are mounting a different - subvolume - -- Reconfigure the fs to RW if the initial mount is RO - -Combining these two, we can have the following sequence: - -- Mount the fs ro,rescue=all,clear_cache,space_cache=v1 - rescue=all will mark the fs as hard read-only, so no v2 cache clearing - will happen. - -- Mount a subvolume rw of the same fs. - We go into btrfs_get_tree_subvol(), but fc_mount() returns EBUSY - because our new fc is RW, different from the original fs. - - Now we enter btrfs_reconfigure_for_mount(), which switches the RO flag - first so that we can grab the existing fs_info. - Then we reconfigure the fs to RW. - -- During reconfiguration, option/features check is skipped - This means we will restart the v2 cache clearing, and convert back to - v1 cache. - This will trigger fs writes, and since the original fs has "rescue=all" - option, it skips the csum tree read. - - And eventually causing NULL pointer dereference in super block - writeback. - -[FIX] -For reconfiguration caused by different subvolume RO/RW flags, ensure we -always run btrfs_check_options() to ensure we have proper hard RO -requirements met. - -In fact the function btrfs_check_options() doesn't really do many -complex checks, but hard RO requirement and some feature dependency -checks, thus there is no special reason not to do the check for mount -reconfiguration. - -Reported-by: syzbot+56360f93efa90ff15870@syzkaller.appspotmail.com -Link: https://lore.kernel.org/linux-btrfs/0000000000008c5d090621cb2770@google.com/ -Fixes: f044b318675f ("btrfs: handle the ro->rw transition for mounting different subvolumes") -CC: stable@vger.kernel.org # 6.8+ -Reviewed-by: Johannes Thumshirn -Signed-off-by: Qu Wenruo -Signed-off-by: David Sterba ---- - fs/btrfs/super.c | 3 +-- - 1 file changed, 1 insertion(+), 2 deletions(-) - ---- a/fs/btrfs/super.c -+++ b/fs/btrfs/super.c -@@ -1519,8 +1519,7 @@ static int btrfs_reconfigure(struct fs_c - sync_filesystem(sb); - set_bit(BTRFS_FS_STATE_REMOUNTING, &fs_info->fs_state); - -- if (!mount_reconfigure && -- !btrfs_check_options(fs_info, &ctx->mount_opt, fc->sb_flags)) -+ if (!btrfs_check_options(fs_info, &ctx->mount_opt, fc->sb_flags)) - return -EINVAL; - - ret = btrfs_check_features(fs_info, !(fc->sb_flags & SB_RDONLY)); diff --git a/debian/patches/patchset-pf/fixes/0012-btrfs-fix-passing-0-to-ERR_PTR-in-btrfs_search_dir_i.patch b/debian/patches/patchset-pf/fixes/0012-btrfs-fix-passing-0-to-ERR_PTR-in-btrfs_search_dir_i.patch deleted file mode 100644 index 06b8612..0000000 --- a/debian/patches/patchset-pf/fixes/0012-btrfs-fix-passing-0-to-ERR_PTR-in-btrfs_search_dir_i.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ed73b9279db9536a9672cba6506950c26cedb140 Mon Sep 17 00:00:00 2001 -From: Yue Haibing -Date: Tue, 22 Oct 2024 17:52:08 +0800 -Subject: btrfs: fix passing 0 to ERR_PTR in btrfs_search_dir_index_item() - -The ret may be zero in btrfs_search_dir_index_item() and should not -passed to ERR_PTR(). Now btrfs_unlink_subvol() is the only caller to -this, reconstructed it to check ERR_PTR(-ENOENT) while ret >= 0. - -This fixes smatch warnings: - -fs/btrfs/dir-item.c:353 - btrfs_search_dir_index_item() warn: passing zero to 'ERR_PTR' - -Fixes: 9dcbe16fccbb ("btrfs: use btrfs_for_each_slot in btrfs_search_dir_index_item") -CC: stable@vger.kernel.org # 6.1+ -Reviewed-by: Johannes Thumshirn -Signed-off-by: Yue Haibing -Reviewed-by: David Sterba -Signed-off-by: David Sterba ---- - fs/btrfs/dir-item.c | 4 ++-- - fs/btrfs/inode.c | 7 ++----- - 2 files changed, 4 insertions(+), 7 deletions(-) - ---- a/fs/btrfs/dir-item.c -+++ b/fs/btrfs/dir-item.c -@@ -347,8 +347,8 @@ btrfs_search_dir_index_item(struct btrfs - return di; - } - /* Adjust return code if the key was not found in the next leaf. */ -- if (ret > 0) -- ret = 0; -+ if (ret >= 0) -+ ret = -ENOENT; - - return ERR_PTR(ret); - } ---- a/fs/btrfs/inode.c -+++ b/fs/btrfs/inode.c -@@ -4344,11 +4344,8 @@ static int btrfs_unlink_subvol(struct bt - */ - if (btrfs_ino(inode) == BTRFS_EMPTY_SUBVOL_DIR_OBJECTID) { - di = btrfs_search_dir_index_item(root, path, dir_ino, &fname.disk_name); -- if (IS_ERR_OR_NULL(di)) { -- if (!di) -- ret = -ENOENT; -- else -- ret = PTR_ERR(di); -+ if (IS_ERR(di)) { -+ ret = PTR_ERR(di); - btrfs_abort_transaction(trans, ret); - goto out; - } diff --git a/debian/patches/patchset-zen/sauce/0012-ZEN-INTERACTIVE-Use-BFQ-as-the-elevator-for-SQ-devic.patch b/debian/patches/patchset-zen/sauce/0012-ZEN-INTERACTIVE-Use-BFQ-as-the-elevator-for-SQ-devic.patch index c74d54f..81de3dd 100644 --- a/debian/patches/patchset-zen/sauce/0012-ZEN-INTERACTIVE-Use-BFQ-as-the-elevator-for-SQ-devic.patch +++ b/debian/patches/patchset-zen/sauce/0012-ZEN-INTERACTIVE-Use-BFQ-as-the-elevator-for-SQ-devic.patch @@ -10,14 +10,14 @@ Subject: ZEN: INTERACTIVE: Use BFQ as the elevator for SQ devices --- a/block/elevator.c +++ b/block/elevator.c -@@ -569,7 +569,11 @@ static struct elevator_type *elevator_ge +@@ -568,7 +568,11 @@ static struct elevator_type *elevator_ge !blk_mq_is_shared_tags(q->tag_set->flags)) return NULL; +#if defined(CONFIG_ZEN_INTERACTIVE) && defined(CONFIG_IOSCHED_BFQ) -+ return elevator_find_get(q, "bfq"); ++ return elevator_find_get("bfq"); +#else - return elevator_find_get(q, "mq-deadline"); + return elevator_find_get("mq-deadline"); +#endif } diff --git a/debian/patches/patchset-zen/sauce/0013-ZEN-INTERACTIVE-Use-Kyber-as-the-elevator-for-MQ-dev.patch b/debian/patches/patchset-zen/sauce/0013-ZEN-INTERACTIVE-Use-Kyber-as-the-elevator-for-MQ-dev.patch index 4be7534..9025985 100644 --- a/debian/patches/patchset-zen/sauce/0013-ZEN-INTERACTIVE-Use-Kyber-as-the-elevator-for-MQ-dev.patch +++ b/debian/patches/patchset-zen/sauce/0013-ZEN-INTERACTIVE-Use-Kyber-as-the-elevator-for-MQ-dev.patch @@ -10,20 +10,20 @@ Subject: ZEN: INTERACTIVE: Use Kyber as the elevator for MQ devices --- a/block/elevator.c +++ b/block/elevator.c -@@ -567,7 +567,13 @@ static struct elevator_type *elevator_ge +@@ -566,7 +566,13 @@ static struct elevator_type *elevator_ge if (q->nr_hw_queues != 1 && !blk_mq_is_shared_tags(q->tag_set->flags)) +#if defined(CONFIG_ZEN_INTERACTIVE) && defined(CONFIG_MQ_IOSCHED_KYBER) -+ return elevator_find_get(q, "kyber"); ++ return elevator_find_get("kyber"); +#elif defined(CONFIG_ZEN_INTERACTIVE) -+ return elevator_find_get(q, "mq-deadline"); ++ return elevator_find_get("mq-deadline"); +#else return NULL; +#endif #if defined(CONFIG_ZEN_INTERACTIVE) && defined(CONFIG_IOSCHED_BFQ) - return elevator_find_get(q, "bfq"); + return elevator_find_get("bfq"); --- a/init/Kconfig +++ b/init/Kconfig @@ -143,6 +143,7 @@ config ZEN_INTERACTIVE diff --git a/debian/patches/series b/debian/patches/series index 1045ec3..cafc398 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -73,7 +73,6 @@ bugfix/all/disable-some-marvell-phys.patch bugfix/all/fs-add-module_softdep-declarations-for-hard-coded-cr.patch bugfix/all/documentation-use-relative-source-paths-in-abi-documentation.patch bugfix/all/Revert-mmc-dw_mmc-Fix-IDMAC-operation-with-pages-big.patch -bugfix/all/netfilter-xtables-fix-typo-causing-some-targets-not-.patch # Miscellaneous features @@ -115,6 +114,8 @@ krd/0001-Revert-objtool-dont-fail-the-kernel-build-on-fatal-errors.patch krd/0002-established-timeout.patch krd/0003-local-ports.patch krd/0004-bridge-group_fwd_mask.patch +## adjustment for patchset-pf/amd-rapl/ +krd/1001-Revert-perf-x86-rapl-Fix-the-energy-pkg-event-for-AMD-CPUs.patch ## 3rd party patches @@ -187,7 +188,6 @@ patchset-pf/amd-pstate/0018-cpufreq-amd-pstate-Rename-MSR-and-shared-memory-spec patchset-pf/amd-pstate/0019-cpufreq-Add-a-callback-to-update-the-min_freq_req-fr.patch patchset-pf/amd-pstate/0020-cpufreq-amd-pstate-Set-the-initial-min_freq-to-lowes.patch patchset-pf/amd-pstate/0021-cpufreq-amd-pstate-Cleanup-the-old-min_freq-qos-requ.patch -patchset-pf/amd-pstate/0022-cpufreq-amd-pstate-Fix-amd_pstate-mode-switch-on-sha.patch patchset-pf/amd-pstate/0023-cpufreq-amd-pstate-Use-nominal-perf-for-limits-when-.patch patchset-pf/amd-pstate/0024-cpufreq-amd-pstate-Don-t-update-CPPC-request-in-amd_.patch patchset-pf/amd-pstate/0025-cpufreq-amd-pstate-Use-amd_pstate_update_min_max_lim.patch @@ -307,13 +307,7 @@ patchset-pf/fixes/0002-cpufreq-Remove-LATENCY_MULTIPLIER.patch patchset-pf/fixes/0003-drivers-firmware-skip-simpledrm-if-nvidia-drm.modese.patch patchset-pf/fixes/0004-nfsd-add-more-info-to-WARN_ON_ONCE-on-failed-callbac.patch patchset-pf/fixes/0005-e1000e-Remove-Meteor-Lake-SMBUS-workarounds.patch -patchset-pf/fixes/0006-btrfs-zoned-fix-zone-unusable-accounting-for-freed-r.patch -patchset-pf/fixes/0007-btrfs-clear-force-compress-on-remount-when-compress-.patch -patchset-pf/fixes/0008-btrfs-qgroup-set-a-more-sane-default-value-for-subtr.patch patchset-pf/fixes/0009-btrfs-also-add-stripe-entries-for-NOCOW-writes.patch -patchset-pf/fixes/0010-btrfs-fix-read-corruption-due-to-race-with-extent-ma.patch -patchset-pf/fixes/0011-btrfs-reject-ro-rw-reconfiguration-if-there-are-hard.patch -patchset-pf/fixes/0012-btrfs-fix-passing-0-to-ERR_PTR-in-btrfs_search_dir_i.patch patchset-zen/fixes/0001-Partially-revert-drm-amd-amdgpu-add-pipe1-hardware-s.patch patchset-zen/fixes/0002-drm-amdgpu-swsmu-default-to-fullscreen-3D-profile-fo.patch