1
0

release 6.12.16

This commit is contained in:
Konstantin Demin 2025-02-21 18:45:20 +03:00
parent 92542309fb
commit 40abc00198
22 changed files with 64 additions and 36 deletions

8
debian/changelog vendored
View File

@ -1,3 +1,11 @@
linux (6.12.16-1) sid; urgency=medium
* New upstream stable update:
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.15
https://www.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.16
-- Konstantin Demin <rockdrilla@gmail.com> Fri, 21 Feb 2025 17:46:41 +0300
linux (6.12.14-1) sid; urgency=medium linux (6.12.14-1) sid; urgency=medium
* New upstream stable update: * New upstream stable update:

View File

@ -1834,6 +1834,7 @@ CONFIG_CDNS_I3C_MASTER=m
CONFIG_DW_I3C_MASTER=m CONFIG_DW_I3C_MASTER=m
CONFIG_SVC_I3C_MASTER=m CONFIG_SVC_I3C_MASTER=m
CONFIG_MIPI_I3C_HCI=m CONFIG_MIPI_I3C_HCI=m
CONFIG_MIPI_I3C_HCI_PCI=m
## ##
## file: drivers/infiniband/Kconfig ## file: drivers/infiniband/Kconfig

View File

@ -15,7 +15,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
--- ---
--- a/net/ax25/af_ax25.c --- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c +++ b/net/ax25/af_ax25.c
@@ -2066,7 +2066,7 @@ module_init(ax25_init); @@ -2077,7 +2077,7 @@ module_init(ax25_init);
MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>"); MODULE_AUTHOR("Jonathan Naylor G4KLX <g4klx@g4klx.demon.co.uk>");
MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol"); MODULE_DESCRIPTION("The amateur radio AX.25 link layer protocol");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");

View File

@ -20,7 +20,7 @@ is non-empty.
--- ---
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -1818,7 +1818,7 @@ PHONY += prepare @@ -1813,7 +1813,7 @@ PHONY += prepare
# now expand this into a simple variable to reduce the cost of shell evaluations # now expand this into a simple variable to reduce the cost of shell evaluations
prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT) prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
prepare: prepare:

View File

@ -141,7 +141,7 @@ arm-init to efi-init common for all arch") renamed arm-init.c to efi-init.c]
--- a/include/linux/efi.h --- a/include/linux/efi.h
+++ b/include/linux/efi.h +++ b/include/linux/efi.h
@@ -764,7 +764,8 @@ extern int efi_mem_desc_lookup(u64 phys_ @@ -765,7 +765,8 @@ extern int efi_mem_desc_lookup(u64 phys_
extern int __efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md); extern int __efi_mem_desc_lookup(u64 phys_addr, efi_memory_desc_t *out_md);
extern void efi_mem_reserve(phys_addr_t addr, u64 size); extern void efi_mem_reserve(phys_addr_t addr, u64 size);
extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size); extern int efi_mem_reserve_persistent(phys_addr_t addr, u64 size);

View File

@ -106,7 +106,7 @@ cc: linux-efi@vger.kernel.org
+} +}
--- a/include/linux/efi.h --- a/include/linux/efi.h
+++ b/include/linux/efi.h +++ b/include/linux/efi.h
@@ -875,6 +875,14 @@ static inline int efi_range_is_wc(unsign @@ -876,6 +876,14 @@ static inline int efi_range_is_wc(unsign
#define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */ #define EFI_MEM_ATTR 10 /* Did firmware publish an EFI_MEMORY_ATTRIBUTES table? */
#define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */ #define EFI_MEM_NO_SOFT_RESERVE 11 /* Is the kernel configured to ignore soft reservations? */
#define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */ #define EFI_PRESERVE_BS_REGIONS 12 /* Are EFI boot-services memory segments available? */
@ -121,7 +121,7 @@ cc: linux-efi@vger.kernel.org
#ifdef CONFIG_EFI #ifdef CONFIG_EFI
/* /*
@@ -899,6 +907,7 @@ static inline bool efi_rt_services_suppo @@ -900,6 +908,7 @@ static inline bool efi_rt_services_suppo
return (efi.runtime_supported_mask & mask) == mask; return (efi.runtime_supported_mask & mask) == mask;
} }
extern void efi_find_mirror(void); extern void efi_find_mirror(void);
@ -129,7 +129,7 @@ cc: linux-efi@vger.kernel.org
#else #else
static inline bool efi_enabled(int feature) static inline bool efi_enabled(int feature)
{ {
@@ -918,6 +927,7 @@ static inline bool efi_rt_services_suppo @@ -919,6 +928,7 @@ static inline bool efi_rt_services_suppo
} }
static inline void efi_find_mirror(void) {} static inline void efi_find_mirror(void) {}
@ -137,7 +137,7 @@ cc: linux-efi@vger.kernel.org
#endif #endif
extern int efi_status_to_err(efi_status_t status); extern int efi_status_to_err(efi_status_t status);
@@ -1136,13 +1146,6 @@ static inline bool efi_runtime_disabled( @@ -1137,13 +1147,6 @@ static inline bool efi_runtime_disabled(
extern void efi_call_virt_check_flags(unsigned long flags, const void *caller); extern void efi_call_virt_check_flags(unsigned long flags, const void *caller);
extern unsigned long efi_call_virt_save_flags(void); extern unsigned long efi_call_virt_save_flags(void);

View File

@ -42,7 +42,7 @@ Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Ignore sysrq setting - this boot parameter will Ignore sysrq setting - this boot parameter will
--- a/arch/x86/Kconfig --- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig +++ b/arch/x86/Kconfig
@@ -3163,6 +3163,14 @@ config COMPAT_32 @@ -3164,6 +3164,14 @@ config COMPAT_32
select HAVE_UID16 select HAVE_UID16
select OLD_SIGSUSPEND3 select OLD_SIGSUSPEND3

View File

@ -30,7 +30,7 @@ this reverts following commit:
--- a/tools/objtool/check.c --- a/tools/objtool/check.c
+++ b/tools/objtool/check.c +++ b/tools/objtool/check.c
@@ -4925,10 +4925,14 @@ int check(struct objtool_file *file) @@ -4926,10 +4926,14 @@ int check(struct objtool_file *file)
} }
out: out:

View File

@ -126,7 +126,7 @@ Reviewed-by: Christoph Hellwig <hch@lst.de>
/* /*
--- a/fs/xfs/xfs_trans.c --- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c
@@ -1261,11 +1261,26 @@ retry: @@ -1257,11 +1257,26 @@ retry:
gdqp = (new_gdqp != ip->i_gdquot) ? new_gdqp : NULL; gdqp = (new_gdqp != ip->i_gdquot) ? new_gdqp : NULL;
pdqp = (new_pdqp != ip->i_pdquot) ? new_pdqp : NULL; pdqp = (new_pdqp != ip->i_pdquot) ? new_pdqp : NULL;
if (udqp || gdqp || pdqp) { if (udqp || gdqp || pdqp) {
@ -153,7 +153,7 @@ Reviewed-by: Christoph Hellwig <hch@lst.de>
/* /*
* Reserve enough quota to handle blocks on disk and reserved * Reserve enough quota to handle blocks on disk and reserved
* for a delayed allocation. We'll actually transfer the * for a delayed allocation. We'll actually transfer the
@@ -1273,8 +1288,20 @@ retry: @@ -1269,8 +1284,20 @@ retry:
* though that part is only semi-transactional. * though that part is only semi-transactional.
*/ */
error = xfs_trans_reserve_quota_bydquots(tp, mp, udqp, gdqp, error = xfs_trans_reserve_quota_bydquots(tp, mp, udqp, gdqp,

View File

@ -75,7 +75,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
.mmu.notify_page_enc_status_changed = paravirt_nop, .mmu.notify_page_enc_status_changed = paravirt_nop,
--- a/arch/x86/xen/mmu_pv.c --- a/arch/x86/xen/mmu_pv.c
+++ b/arch/x86/xen/mmu_pv.c +++ b/arch/x86/xen/mmu_pv.c
@@ -2137,7 +2137,6 @@ static const typeof(pv_ops) xen_mmu_ops @@ -2189,7 +2189,6 @@ static const typeof(pv_ops) xen_mmu_ops
.flush_tlb_kernel = xen_flush_tlb, .flush_tlb_kernel = xen_flush_tlb,
.flush_tlb_one_user = xen_flush_tlb_one_user, .flush_tlb_one_user = xen_flush_tlb_one_user,
.flush_tlb_multi = xen_flush_tlb_multi, .flush_tlb_multi = xen_flush_tlb_multi,

View File

@ -15,7 +15,7 @@ Suggested-by: Dave Hansen <dave.hansen@intel.com>
--- a/arch/x86/mm/tlb.c --- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c
@@ -973,14 +973,32 @@ static struct flush_tlb_info *get_flush_ @@ -1000,8 +1000,13 @@ static struct flush_tlb_info *get_flush_
BUG_ON(this_cpu_inc_return(flush_tlb_info_idx) != 1); BUG_ON(this_cpu_inc_return(flush_tlb_info_idx) != 1);
#endif #endif
@ -31,8 +31,9 @@ Suggested-by: Dave Hansen <dave.hansen@intel.com>
info->mm = mm; info->mm = mm;
info->stride_shift = stride_shift; info->stride_shift = stride_shift;
info->freed_tables = freed_tables; info->freed_tables = freed_tables;
info->new_tlb_gen = new_tlb_gen; @@ -1009,6 +1014,19 @@ static struct flush_tlb_info *get_flush_
info->initiating_cpu = smp_processor_id(); info->initiating_cpu = smp_processor_id();
info->trim_cpumask = 0;
+ WARN_ONCE(start != info->start || end != info->end, + WARN_ONCE(start != info->start || end != info->end,
+ "TLB flush not stride %x aligned. Start %lx, end %lx\n", + "TLB flush not stride %x aligned. Start %lx, end %lx\n",
@ -50,7 +51,7 @@ Suggested-by: Dave Hansen <dave.hansen@intel.com>
return info; return info;
} }
@@ -998,17 +1016,8 @@ void flush_tlb_mm_range(struct mm_struct @@ -1026,17 +1044,8 @@ void flush_tlb_mm_range(struct mm_struct
bool freed_tables) bool freed_tables)
{ {
struct flush_tlb_info *info; struct flush_tlb_info *info;
@ -69,7 +70,7 @@ Suggested-by: Dave Hansen <dave.hansen@intel.com>
/* This is also a barrier that synchronizes with switch_mm(). */ /* This is also a barrier that synchronizes with switch_mm(). */
new_tlb_gen = inc_mm_tlb_gen(mm); new_tlb_gen = inc_mm_tlb_gen(mm);
@@ -1060,22 +1069,19 @@ static void do_kernel_range_flush(void * @@ -1089,22 +1098,19 @@ static void do_kernel_range_flush(void *
void flush_tlb_kernel_range(unsigned long start, unsigned long end) void flush_tlb_kernel_range(unsigned long start, unsigned long end)
{ {
@ -101,7 +102,7 @@ Suggested-by: Dave Hansen <dave.hansen@intel.com>
} }
/* /*
@@ -1247,7 +1253,7 @@ void arch_tlbbatch_flush(struct arch_tlb @@ -1276,7 +1282,7 @@ void arch_tlbbatch_flush(struct arch_tlb
int cpu = get_cpu(); int cpu = get_cpu();

View File

@ -15,7 +15,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
--- a/arch/x86/mm/tlb.c --- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c
@@ -1057,6 +1057,30 @@ void flush_tlb_all(void) @@ -1086,6 +1086,30 @@ void flush_tlb_all(void)
on_each_cpu(do_flush_tlb_all, NULL, 1); on_each_cpu(do_flush_tlb_all, NULL, 1);
} }
@ -46,7 +46,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
static void do_kernel_range_flush(void *info) static void do_kernel_range_flush(void *info)
{ {
struct flush_tlb_info *f = info; struct flush_tlb_info *f = info;
@@ -1076,7 +1100,9 @@ void flush_tlb_kernel_range(unsigned lon @@ -1105,7 +1129,9 @@ void flush_tlb_kernel_range(unsigned lon
info = get_flush_tlb_info(NULL, start, end, PAGE_SHIFT, false, info = get_flush_tlb_info(NULL, start, end, PAGE_SHIFT, false,
TLB_GENERATION_INVALID); TLB_GENERATION_INVALID);

View File

@ -14,7 +14,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
--- a/arch/x86/mm/tlb.c --- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c
@@ -1045,6 +1045,19 @@ void flush_tlb_mm_range(struct mm_struct @@ -1074,6 +1074,19 @@ void flush_tlb_mm_range(struct mm_struct
} }
@ -34,7 +34,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
static void do_flush_tlb_all(void *info) static void do_flush_tlb_all(void *info)
{ {
count_vm_tlb_event(NR_TLB_REMOTE_FLUSH_RECEIVED); count_vm_tlb_event(NR_TLB_REMOTE_FLUSH_RECEIVED);
@@ -1053,6 +1066,8 @@ static void do_flush_tlb_all(void *info) @@ -1082,6 +1095,8 @@ static void do_flush_tlb_all(void *info)
void flush_tlb_all(void) void flush_tlb_all(void)
{ {

View File

@ -17,7 +17,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
--- a/arch/x86/mm/tlb.c --- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c
@@ -1301,7 +1301,9 @@ void arch_tlbbatch_flush(struct arch_tlb @@ -1330,7 +1330,9 @@ void arch_tlbbatch_flush(struct arch_tlb
* a local TLB flush is needed. Optimize this use-case by calling * a local TLB flush is needed. Optimize this use-case by calling
* flush_tlb_func_local() directly in this case. * flush_tlb_func_local() directly in this case.
*/ */

View File

@ -22,7 +22,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
--- a/arch/x86/include/asm/mmu.h --- a/arch/x86/include/asm/mmu.h
+++ b/arch/x86/include/asm/mmu.h +++ b/arch/x86/include/asm/mmu.h
@@ -67,6 +67,12 @@ typedef struct { @@ -69,6 +69,12 @@ typedef struct {
u16 pkey_allocation_map; u16 pkey_allocation_map;
s16 execute_only_pkey; s16 execute_only_pkey;
#endif #endif
@ -46,7 +46,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
/* /*
* Init a new mm. Used on mm copies, like at fork() * Init a new mm. Used on mm copies, like at fork()
* and on mm's that are brand-new, like at execve(). * and on mm's that are brand-new, like at execve().
@@ -160,6 +162,14 @@ static inline int init_new_context(struc @@ -161,6 +163,14 @@ static inline int init_new_context(struc
mm->context.execute_only_pkey = -1; mm->context.execute_only_pkey = -1;
} }
#endif #endif
@ -61,7 +61,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
mm_reset_untag_mask(mm); mm_reset_untag_mask(mm);
init_new_context_ldt(mm); init_new_context_ldt(mm);
return 0; return 0;
@@ -169,6 +179,10 @@ static inline int init_new_context(struc @@ -170,6 +180,10 @@ static inline int init_new_context(struc
static inline void destroy_context(struct mm_struct *mm) static inline void destroy_context(struct mm_struct *mm)
{ {
destroy_context_ldt(mm); destroy_context_ldt(mm);
@ -82,7 +82,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
#include <asm/processor.h> #include <asm/processor.h>
#include <asm/cpufeature.h> #include <asm/cpufeature.h>
#include <asm/special_insns.h> #include <asm/special_insns.h>
@@ -238,6 +239,78 @@ void flush_tlb_one_kernel(unsigned long @@ -239,6 +240,78 @@ void flush_tlb_one_kernel(unsigned long
void flush_tlb_multi(const struct cpumask *cpumask, void flush_tlb_multi(const struct cpumask *cpumask,
const struct flush_tlb_info *info); const struct flush_tlb_info *info);
@ -578,7 +578,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
if (unlikely(f->new_tlb_gen != TLB_GENERATION_INVALID && if (unlikely(f->new_tlb_gen != TLB_GENERATION_INVALID &&
f->new_tlb_gen <= local_tlb_gen)) { f->new_tlb_gen <= local_tlb_gen)) {
/* /*
@@ -926,7 +1243,7 @@ STATIC_NOPV void native_flush_tlb_multi( @@ -953,7 +1270,7 @@ STATIC_NOPV void native_flush_tlb_multi(
* up on the new contents of what used to be page tables, while * up on the new contents of what used to be page tables, while
* doing a speculative memory access. * doing a speculative memory access.
*/ */
@ -586,8 +586,8 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
+ if (info->freed_tables || in_asid_transition(info->mm)) + if (info->freed_tables || in_asid_transition(info->mm))
on_each_cpu_mask(cpumask, flush_tlb_func, (void *)info, true); on_each_cpu_mask(cpumask, flush_tlb_func, (void *)info, true);
else else
on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func, on_each_cpu_cond_mask(should_flush_tlb, flush_tlb_func,
@@ -1030,8 +1347,11 @@ void flush_tlb_mm_range(struct mm_struct @@ -1058,9 +1375,12 @@ void flush_tlb_mm_range(struct mm_struct
* a local TLB flush is needed. Optimize this use-case by calling * a local TLB flush is needed. Optimize this use-case by calling
* flush_tlb_func_local() directly in this case. * flush_tlb_func_local() directly in this case.
*/ */
@ -595,6 +595,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
+ if (mm_global_asid(mm)) { + if (mm_global_asid(mm)) {
+ broadcast_tlb_flush(info); + broadcast_tlb_flush(info);
+ } else if (cpumask_any_but(mm_cpumask(mm), cpu) < nr_cpu_ids) { + } else if (cpumask_any_but(mm_cpumask(mm), cpu) < nr_cpu_ids) {
info->trim_cpumask = should_trim_cpumask(mm);
flush_tlb_multi(mm_cpumask(mm), info); flush_tlb_multi(mm_cpumask(mm), info);
+ consider_global_asid(mm); + consider_global_asid(mm);
} else if (mm == this_cpu_read(cpu_tlbstate.loaded_mm)) { } else if (mm == this_cpu_read(cpu_tlbstate.loaded_mm)) {

View File

@ -90,7 +90,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
#ifdef CONFIG_ADDRESS_MASKING #ifdef CONFIG_ADDRESS_MASKING
/* /*
@@ -309,6 +310,10 @@ static inline void broadcast_tlb_flush(s @@ -310,6 +311,10 @@ static inline void broadcast_tlb_flush(s
static inline void consider_global_asid(struct mm_struct *mm) static inline void consider_global_asid(struct mm_struct *mm)
{ {
} }
@ -101,7 +101,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
#endif #endif
#ifdef CONFIG_PARAVIRT #ifdef CONFIG_PARAVIRT
@@ -358,21 +363,15 @@ static inline u64 inc_mm_tlb_gen(struct @@ -359,21 +364,15 @@ static inline u64 inc_mm_tlb_gen(struct
return atomic64_inc_return(&mm->context.tlb_gen); return atomic64_inc_return(&mm->context.tlb_gen);
} }
@ -184,7 +184,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
if (this_cpu_read(cpu_tlbstate.loaded_mm) == &init_mm) if (this_cpu_read(cpu_tlbstate.loaded_mm) == &init_mm)
return; return;
@@ -1621,9 +1656,7 @@ void arch_tlbbatch_flush(struct arch_tlb @@ -1650,9 +1685,7 @@ void arch_tlbbatch_flush(struct arch_tlb
* a local TLB flush is needed. Optimize this use-case by calling * a local TLB flush is needed. Optimize this use-case by calling
* flush_tlb_func_local() directly in this case. * flush_tlb_func_local() directly in this case.
*/ */
@ -195,7 +195,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
flush_tlb_multi(&batch->cpumask, info); flush_tlb_multi(&batch->cpumask, info);
} else if (cpumask_test_cpu(cpu, &batch->cpumask)) { } else if (cpumask_test_cpu(cpu, &batch->cpumask)) {
lockdep_assert_irqs_enabled(); lockdep_assert_irqs_enabled();
@@ -1632,12 +1665,53 @@ void arch_tlbbatch_flush(struct arch_tlb @@ -1661,12 +1694,53 @@ void arch_tlbbatch_flush(struct arch_tlb
local_irq_enable(); local_irq_enable();
} }

View File

@ -65,7 +65,7 @@ Tested-by: Manali Shukla <Manali.Shukla@amd.com>
addr += nr << info->stride_shift; addr += nr << info->stride_shift;
} while (addr < info->end); } while (addr < info->end);
@@ -1686,10 +1687,10 @@ void arch_tlbbatch_add_pending(struct ar @@ -1715,10 +1716,10 @@ void arch_tlbbatch_add_pending(struct ar
u16 asid = mm_global_asid(mm); u16 asid = mm_global_asid(mm);
if (asid) { if (asid) {

View File

@ -61,7 +61,7 @@ Subject: ZEN: drm/amdgpu/pm: Allow override of min_power_limit with
--- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c --- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
+++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
@@ -2792,7 +2792,10 @@ int smu_get_power_limit(void *handle, @@ -2793,7 +2793,10 @@ int smu_get_power_limit(void *handle,
*limit = smu->max_power_limit; *limit = smu->max_power_limit;
break; break;
case SMU_PPT_LIMIT_MIN: case SMU_PPT_LIMIT_MIN:
@ -73,7 +73,7 @@ Subject: ZEN: drm/amdgpu/pm: Allow override of min_power_limit with
break; break;
default: default:
return -EINVAL; return -EINVAL;
@@ -2816,7 +2819,14 @@ static int smu_set_power_limit(void *han @@ -2817,7 +2820,14 @@ static int smu_set_power_limit(void *han
if (smu->ppt_funcs->set_power_limit) if (smu->ppt_funcs->set_power_limit)
return smu->ppt_funcs->set_power_limit(smu, limit_type, limit); return smu->ppt_funcs->set_power_limit(smu, limit_type, limit);

View File

@ -0,0 +1,10 @@
PROGS = resolve_btfids
include $(top_rulesdir)/Makefile.inc
resolve_btfids:
$(MAKE) -C $(top_srcdir)/tools/bpf/resolve_btfids O=$(CURDIR) \
HOSTCC=$(CC) HOSTCFLAGS='$(CFLAGS) $(CPPFLAGS)' \
HOSTLD=$(CROSS_COMPILE)ld KBUILD_HOSTLDFLAGS='$(LDFLAGS)' \
HOSTAR=$(CROSS_COMPILE)ar \
V=1

5
debian/rules.real vendored
View File

@ -279,6 +279,9 @@ binary_headers: $(STAMPS_DIR)/build_$(ARCH)_$(FEATURESET)_$(FLAVOUR)
cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/include $(DIR)/arch/$(KERNEL_ARCH) cp -a $(SOURCE_DIR)/arch/$(KERNEL_ARCH)/include $(DIR)/arch/$(KERNEL_ARCH)
find $(DIR) -name '*.cmd' -delete find $(DIR) -name '*.cmd' -delete
objcopy -j .BTF -j .BTF_ids $(SOURCE_DIR)/vmlinux $(DIR)/vmlinux
chmod 644 $(DIR)/vmlinux
f='$(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o' ; \ f='$(SOURCE_DIR)/arch/$(KERNEL_ARCH)/lib/crtsavres.o' ; \
d='$(DIR)/arch/$(KERNEL_ARCH)/lib' ; \ d='$(DIR)/arch/$(KERNEL_ARCH)/lib' ; \
if [ -f "$$f" ] ; then \ if [ -f "$$f" ] ; then \
@ -438,6 +441,7 @@ binary_bpftool: build_bpftool
build_kbuild: $(STAMPS_DIR)/build-tools-headers build_kbuild: $(STAMPS_DIR)/build-tools-headers
$(call make-tools,certs) $(call make-tools,certs)
$(call make-tools,scripts) $(call make-tools,scripts)
$(call make-tools,tools/bpf/resolve_btfids)
$(call make-tools,tools/objtool) $(call make-tools,tools/objtool)
binary_kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME) binary_kbuild: PREFIX_DIR = /usr/lib/$(PACKAGE_NAME)
@ -445,6 +449,7 @@ binary_kbuild: build_kbuild
$(dh_binary_pre) $(dh_binary_pre)
$(call make-tools,certs) install prefix=$(PREFIX_DIR) $(call make-tools,certs) install prefix=$(PREFIX_DIR)
$(call make-tools,scripts) install prefix=$(PREFIX_DIR) $(call make-tools,scripts) install prefix=$(PREFIX_DIR)
$(call make-tools,tools/bpf/resolve_btfids) install prefix=$(PREFIX_DIR)
$(call make-tools,tools/objtool) install prefix=$(PREFIX_DIR) $(call make-tools,tools/objtool) install prefix=$(PREFIX_DIR)
dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME) dh_link $(PREFIX_DIR) /usr/src/$(PACKAGE_NAME)
$(dh_binary_post) $(dh_binary_post)

View File

@ -0,0 +1 @@
{{package}}: statically-linked-binary [usr/src/*/vmlinux]

View File

@ -1,6 +1,7 @@
Package: linux-bpf-dev Package: linux-bpf-dev
Meta-Rules-Target: bpf-dev Meta-Rules-Target: bpf-dev
Build-Profiles: <!pkg.linux.nokernel !pkg.linux.quick> Build-Profiles: <!pkg.linux.nokernel !pkg.linux.quick>
Multi-Arch: same
Section: devel Section: devel
Depends: ${misc:Depends} Depends: ${misc:Depends}
Description: Headers for BPF development Description: Headers for BPF development