release 6.12.16
This commit is contained in:
parent
92542309fb
commit
40abc00198
8
debian/changelog
vendored
8
debian/changelog
vendored
@ -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:
|
||||||
|
1
debian/config/amd64/config.mobile
vendored
1
debian/config/amd64/config.mobile
vendored
@ -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
|
||||||
|
@ -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");
|
||||||
|
@ -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:
|
||||||
|
@ -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);
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
|
||||||
|
@ -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:
|
||||||
|
@ -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,
|
||||||
|
@ -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,
|
||||||
|
@ -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();
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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.
|
||||||
*/
|
*/
|
||||||
|
@ -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)) {
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {
|
||||||
|
@ -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);
|
||||||
|
|
||||||
|
10
debian/rules.d/tools/bpf/resolve_btfids/Makefile
vendored
Normal file
10
debian/rules.d/tools/bpf/resolve_btfids/Makefile
vendored
Normal 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
5
debian/rules.real
vendored
@ -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)
|
||||||
|
1
debian/templates/headers.lintian-overrides.j2
vendored
Normal file
1
debian/templates/headers.lintian-overrides.j2
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
{{package}}: statically-linked-binary [usr/src/*/vmlinux]
|
1
debian/templates/image-extra-dev.control.in
vendored
1
debian/templates/image-extra-dev.control.in
vendored
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user