Skip to content

Commit 9a4c4b5

Browse files
committed
Merge branch 'for-next-next-v6.14-20250303' into for-next-20250303
2 parents 730b778 + 511eb74 commit 9a4c4b5

File tree

366 files changed

+4006
-2828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

366 files changed

+4006
-2828
lines changed

.mailmap

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -522,6 +522,7 @@ Nadav Amit <[email protected]> <[email protected]>
522522
Nadia Yvette Chambers <[email protected]> William Lee Irwin III <[email protected]>
523523
524524
525+
525526
526527
527528
@@ -613,6 +614,8 @@ Richard Leitner <[email protected]> <[email protected]>
613614
614615
615616
617+
618+
616619
617620
618621

Documentation/arch/powerpc/cxl.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ Introduction
1818
both access system memory directly and with the same effective
1919
addresses.
2020

21+
**This driver is deprecated and will be removed in a future release.**
2122

2223
Hardware overview
2324
=================
@@ -453,7 +454,7 @@ Sysfs Class
453454

454455
A cxl sysfs class is added under /sys/class/cxl to facilitate
455456
enumeration and tuning of the accelerators. Its layout is
456-
described in Documentation/ABI/testing/sysfs-class-cxl
457+
described in Documentation/ABI/obsolete/sysfs-class-cxl
457458

458459

459460
Udev rules

Documentation/userspace-api/landlock.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Landlock: unprivileged access control
88
=====================================
99

1010
:Author: Mickaël Salaün
11-
:Date: October 2024
11+
:Date: January 2025
1212

1313
The goal of Landlock is to enable restriction of ambient rights (e.g. global
1414
filesystem or network access) for a set of processes. Because Landlock
@@ -329,11 +329,11 @@ non-sandboxed process, we can specify this restriction with
329329
A sandboxed process can connect to a non-sandboxed process when its domain is
330330
not scoped. If a process's domain is scoped, it can only connect to sockets
331331
created by processes in the same scope.
332-
Moreover, If a process is scoped to send signal to a non-scoped process, it can
332+
Moreover, if a process is scoped to send signal to a non-scoped process, it can
333333
only send signals to processes in the same scope.
334334

335335
A connected datagram socket behaves like a stream socket when its domain is
336-
scoped, meaning if the domain is scoped after the socket is connected , it can
336+
scoped, meaning if the domain is scoped after the socket is connected, it can
337337
still :manpage:`send(2)` data just like a stream socket. However, in the same
338338
scenario, a non-connected datagram socket cannot send data (with
339339
:manpage:`sendto(2)`) outside its scope.

MAINTAINERS

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1046,14 +1046,14 @@ F: drivers/crypto/ccp/hsti.*
10461046
AMD DISPLAY CORE
10471047
M: Harry Wentland <[email protected]>
10481048
M: Leo Li <[email protected]>
1049-
M: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
1049+
R: Rodrigo Siqueira <siqueira@igalia.com>
10501050
10511051
S: Supported
10521052
T: git https://gitlab.freedesktop.org/agd5f/linux.git
10531053
F: drivers/gpu/drm/amd/display/
10541054

10551055
AMD DISPLAY CORE - DML
1056-
M: Chaitanya Dhere <chaitanya.dhere@amd.com>
1056+
M: Austin Zheng <austin.zheng@amd.com>
10571057
M: Jun Lei <[email protected]>
10581058
S: Supported
10591059
F: drivers/gpu/drm/amd/display/dc/dml/
@@ -2878,7 +2878,7 @@ F: drivers/pinctrl/nxp/
28782878

28792879
ARM/NXP S32G/S32R DWMAC ETHERNET DRIVER
28802880
M: Jan Petrous <[email protected]>
2881-
L: NXP S32 Linux Team <[email protected]>
2881+
28822882
S: Maintained
28832883
F: Documentation/devicetree/bindings/net/nxp,s32-dwmac.yaml
28842884
F: drivers/net/ethernet/stmicro/stmmac/dwmac-s32.c
@@ -5856,7 +5856,6 @@ F: Documentation/security/snp-tdx-threat-model.rst
58565856

58575857
CONFIGFS
58585858
M: Joel Becker <[email protected]>
5859-
M: Christoph Hellwig <[email protected]>
58605859
S: Supported
58615860
T: git git://git.infradead.org/users/hch/configfs.git
58625861
F: fs/configfs/
@@ -5927,6 +5926,17 @@ F: tools/testing/selftests/cgroup/test_cpuset.c
59275926
F: tools/testing/selftests/cgroup/test_cpuset_prs.sh
59285927
F: tools/testing/selftests/cgroup/test_cpuset_v1_base.sh
59295928

5929+
CONTROL GROUP - DEVICE MEMORY CONTROLLER (DMEM)
5930+
M: Maarten Lankhorst <[email protected]>
5931+
M: Maxime Ripard <[email protected]>
5932+
M: Natalie Vock <[email protected]>
5933+
5934+
5935+
S: Maintained
5936+
T: git https://gitlab.freedesktop.org/drm/misc/kernel.git
5937+
F: include/linux/cgroup_dmem.h
5938+
F: kernel/cgroup/dmem.c
5939+
59305940
CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)
59315941
M: Johannes Weiner <[email protected]>
59325942
M: Michal Hocko <[email protected]>
@@ -6879,7 +6889,6 @@ F: kernel/dma/map_benchmark.c
68796889
F: tools/testing/selftests/dma/
68806890

68816891
DMA MAPPING HELPERS
6882-
M: Christoph Hellwig <[email protected]>
68836892
M: Marek Szyprowski <[email protected]>
68846893
R: Robin Murphy <[email protected]>
68856894
@@ -15682,7 +15691,7 @@ F: include/uapi/linux/cciss*.h
1568215691

1568315692
MICROSOFT MANA RDMA DRIVER
1568415693
M: Long Li <[email protected]>
15685-
M: Ajay Sharma <sharmaajay@microsoft.com>
15694+
M: Konstantin Taranov <kotaranov@microsoft.com>
1568615695
1568715696
S: Supported
1568815697
F: drivers/infiniband/hw/mana/
@@ -19657,7 +19666,6 @@ F: drivers/net/wireless/quantenna
1965719666
RADEON and AMDGPU DRM DRIVERS
1965819667
M: Alex Deucher <[email protected]>
1965919668
M: Christian König <[email protected]>
19660-
M: Xinhui Pan <[email protected]>
1966119669
1966219670
S: Supported
1966319671
B: https://gitlab.freedesktop.org/drm/amd/-/issues
@@ -20330,6 +20338,7 @@ RISC-V ARCHITECTURE
2033020338
M: Paul Walmsley <[email protected]>
2033120339
M: Palmer Dabbelt <[email protected]>
2033220340
M: Albert Ou <[email protected]>
20341+
R: Alexandre Ghiti <[email protected]>
2033320342
2033420343
S: Supported
2033520344
Q: https://patchwork.kernel.org/project/linux-riscv/list/
@@ -21923,10 +21932,13 @@ F: sound/soc/uniphier/
2192321932

2192421933
SOCKET TIMESTAMPING
2192521934
M: Willem de Bruijn <[email protected]>
21935+
R: Jason Xing <[email protected]>
2192621936
S: Maintained
2192721937
F: Documentation/networking/timestamping.rst
2192821938
F: include/linux/net_tstamp.h
2192921939
F: include/uapi/linux/net_tstamp.h
21940+
F: tools/testing/selftests/bpf/*/net_timestamping*
21941+
F: tools/testing/selftests/net/*timestamp*
2193021942
F: tools/testing/selftests/net/so_txtime.c
2193121943

2193221944
SOEKRIS NET48XX LED SUPPORT

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 6
33
PATCHLEVEL = 14
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc4
5+
EXTRAVERSION = -rc5
66
NAME = Baby Opossum Posse
77

88
# *DOCUMENTATION*

arch/arm64/include/asm/hugetlb.h

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ extern int huge_ptep_set_access_flags(struct vm_area_struct *vma,
4242
unsigned long addr, pte_t *ptep,
4343
pte_t pte, int dirty);
4444
#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
45-
extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
46-
unsigned long addr, pte_t *ptep);
45+
extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,
46+
pte_t *ptep, unsigned long sz);
4747
#define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
4848
extern void huge_ptep_set_wrprotect(struct mm_struct *mm,
4949
unsigned long addr, pte_t *ptep);
@@ -76,12 +76,22 @@ static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma,
7676
{
7777
unsigned long stride = huge_page_size(hstate_vma(vma));
7878

79-
if (stride == PMD_SIZE)
80-
__flush_tlb_range(vma, start, end, stride, false, 2);
81-
else if (stride == PUD_SIZE)
82-
__flush_tlb_range(vma, start, end, stride, false, 1);
83-
else
84-
__flush_tlb_range(vma, start, end, PAGE_SIZE, false, 0);
79+
switch (stride) {
80+
#ifndef __PAGETABLE_PMD_FOLDED
81+
case PUD_SIZE:
82+
__flush_tlb_range(vma, start, end, PUD_SIZE, false, 1);
83+
break;
84+
#endif
85+
case CONT_PMD_SIZE:
86+
case PMD_SIZE:
87+
__flush_tlb_range(vma, start, end, PMD_SIZE, false, 2);
88+
break;
89+
case CONT_PTE_SIZE:
90+
__flush_tlb_range(vma, start, end, PAGE_SIZE, false, 3);
91+
break;
92+
default:
93+
__flush_tlb_range(vma, start, end, PAGE_SIZE, false, TLBI_TTL_UNKNOWN);
94+
}
8595
}
8696

8797
#endif /* __ASM_HUGETLB_H */

arch/arm64/include/asm/kvm_arm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
#define TCR_EL2_IRGN0_MASK TCR_IRGN0_MASK
120120
#define TCR_EL2_T0SZ_MASK 0x3f
121121
#define TCR_EL2_MASK (TCR_EL2_TG0_MASK | TCR_EL2_SH0_MASK | \
122-
TCR_EL2_ORGN0_MASK | TCR_EL2_IRGN0_MASK | TCR_EL2_T0SZ_MASK)
122+
TCR_EL2_ORGN0_MASK | TCR_EL2_IRGN0_MASK)
123123

124124
/* VTCR_EL2 Registers bits */
125125
#define VTCR_EL2_DS TCR_EL2_DS

arch/arm64/include/asm/kvm_host.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1259,7 +1259,7 @@ int kvm_arm_pvtime_has_attr(struct kvm_vcpu *vcpu,
12591259
extern unsigned int __ro_after_init kvm_arm_vmid_bits;
12601260
int __init kvm_arm_vmid_alloc_init(void);
12611261
void __init kvm_arm_vmid_alloc_free(void);
1262-
bool kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid);
1262+
void kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid);
12631263
void kvm_arm_vmid_clear_active(void);
12641264

12651265
static inline void kvm_arm_pvtime_vcpu_init(struct kvm_vcpu_arch *vcpu_arch)

arch/arm64/kvm/arm.c

Lines changed: 17 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -559,6 +559,16 @@ void kvm_arch_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
559559
mmu = vcpu->arch.hw_mmu;
560560
last_ran = this_cpu_ptr(mmu->last_vcpu_ran);
561561

562+
/*
563+
* Ensure a VMID is allocated for the MMU before programming VTTBR_EL2,
564+
* which happens eagerly in VHE.
565+
*
566+
* Also, the VMID allocator only preserves VMIDs that are active at the
567+
* time of rollover, so KVM might need to grab a new VMID for the MMU if
568+
* this is called from kvm_sched_in().
569+
*/
570+
kvm_arm_vmid_update(&mmu->vmid);
571+
562572
/*
563573
* We guarantee that both TLBs and I-cache are private to each
564574
* vcpu. If detecting that a vcpu from the same VM has
@@ -1138,18 +1148,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
11381148
*/
11391149
preempt_disable();
11401150

1141-
/*
1142-
* The VMID allocator only tracks active VMIDs per
1143-
* physical CPU, and therefore the VMID allocated may not be
1144-
* preserved on VMID roll-over if the task was preempted,
1145-
* making a thread's VMID inactive. So we need to call
1146-
* kvm_arm_vmid_update() in non-premptible context.
1147-
*/
1148-
if (kvm_arm_vmid_update(&vcpu->arch.hw_mmu->vmid) &&
1149-
has_vhe())
1150-
__load_stage2(vcpu->arch.hw_mmu,
1151-
vcpu->arch.hw_mmu->arch);
1152-
11531151
kvm_pmu_flush_hwstate(vcpu);
11541152

11551153
local_irq_disable();
@@ -1980,7 +1978,7 @@ static int kvm_init_vector_slots(void)
19801978
static void __init cpu_prepare_hyp_mode(int cpu, u32 hyp_va_bits)
19811979
{
19821980
struct kvm_nvhe_init_params *params = per_cpu_ptr_nvhe_sym(kvm_init_params, cpu);
1983-
unsigned long tcr, ips;
1981+
unsigned long tcr;
19841982

19851983
/*
19861984
* Calculate the raw per-cpu offset without a translation from the
@@ -1994,19 +1992,18 @@ static void __init cpu_prepare_hyp_mode(int cpu, u32 hyp_va_bits)
19941992
params->mair_el2 = read_sysreg(mair_el1);
19951993

19961994
tcr = read_sysreg(tcr_el1);
1997-
ips = FIELD_GET(TCR_IPS_MASK, tcr);
19981995
if (cpus_have_final_cap(ARM64_KVM_HVHE)) {
1996+
tcr &= ~(TCR_HD | TCR_HA | TCR_A1 | TCR_T0SZ_MASK);
19991997
tcr |= TCR_EPD1_MASK;
20001998
} else {
1999+
unsigned long ips = FIELD_GET(TCR_IPS_MASK, tcr);
2000+
20012001
tcr &= TCR_EL2_MASK;
2002-
tcr |= TCR_EL2_RES1;
2002+
tcr |= TCR_EL2_RES1 | FIELD_PREP(TCR_EL2_PS_MASK, ips);
2003+
if (lpa2_is_enabled())
2004+
tcr |= TCR_EL2_DS;
20032005
}
2004-
tcr &= ~TCR_T0SZ_MASK;
20052006
tcr |= TCR_T0SZ(hyp_va_bits);
2006-
tcr &= ~TCR_EL2_PS_MASK;
2007-
tcr |= FIELD_PREP(TCR_EL2_PS_MASK, ips);
2008-
if (lpa2_is_enabled())
2009-
tcr |= TCR_EL2_DS;
20102007
params->tcr_el2 = tcr;
20112008

20122009
params->pgd_pa = kvm_mmu_get_httbr();

arch/arm64/kvm/vmid.c

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,11 +135,10 @@ void kvm_arm_vmid_clear_active(void)
135135
atomic64_set(this_cpu_ptr(&active_vmids), VMID_ACTIVE_INVALID);
136136
}
137137

138-
bool kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid)
138+
void kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid)
139139
{
140140
unsigned long flags;
141141
u64 vmid, old_active_vmid;
142-
bool updated = false;
143142

144143
vmid = atomic64_read(&kvm_vmid->id);
145144

@@ -157,21 +156,17 @@ bool kvm_arm_vmid_update(struct kvm_vmid *kvm_vmid)
157156
if (old_active_vmid != 0 && vmid_gen_match(vmid) &&
158157
0 != atomic64_cmpxchg_relaxed(this_cpu_ptr(&active_vmids),
159158
old_active_vmid, vmid))
160-
return false;
159+
return;
161160

162161
raw_spin_lock_irqsave(&cpu_vmid_lock, flags);
163162

164163
/* Check that our VMID belongs to the current generation. */
165164
vmid = atomic64_read(&kvm_vmid->id);
166-
if (!vmid_gen_match(vmid)) {
165+
if (!vmid_gen_match(vmid))
167166
vmid = new_vmid(kvm_vmid);
168-
updated = true;
169-
}
170167

171168
atomic64_set(this_cpu_ptr(&active_vmids), vmid);
172169
raw_spin_unlock_irqrestore(&cpu_vmid_lock, flags);
173-
174-
return updated;
175170
}
176171

177172
/*

0 commit comments

Comments
 (0)