Skip to content

Commit 1e13006

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.6.y' into rpi-6.6.y
2 parents c641fa5 + a66cdcd commit 1e13006

File tree

383 files changed

+8886
-6206
lines changed

Some content is hidden

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

383 files changed

+8886
-6206
lines changed

Documentation/ABI/testing/sysfs-bus-pci

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,17 @@ Description:
163163
will be present in sysfs. Writing 1 to this file
164164
will perform reset.
165165

166+
What: /sys/bus/pci/devices/.../reset_subordinate
167+
Date: October 2024
168+
169+
Description:
170+
This is visible only for bridge devices. If you want to reset
171+
all devices attached through the subordinate bus of a specific
172+
bridge device, writing 1 to this will try to do it. This will
173+
affect all devices attached to the system through this bridge
174+
similiar to writing 1 to their individual "reset" file, so use
175+
with caution.
176+
166177
What: /sys/bus/pci/devices/.../vpd
167178
Date: February 2008
168179
Contact: Ben Hutchings <[email protected]>

Documentation/admin-guide/blockdev/zram.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -328,7 +328,7 @@ as idle::
328328
From now on, any pages on zram are idle pages. The idle mark
329329
will be removed until someone requests access of the block.
330330
IOW, unless there is access request, those pages are still idle pages.
331-
Additionally, when CONFIG_ZRAM_MEMORY_TRACKING is enabled pages can be
331+
Additionally, when CONFIG_ZRAM_TRACK_ENTRY_ACTIME is enabled pages can be
332332
marked as idle based on how long (in seconds) it's been since they were
333333
last accessed::
334334

Documentation/netlink/specs/ethtool.yaml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,12 @@ attribute-sets:
6464
name: bits
6565
type: nest
6666
nested-attributes: bitset-bits
67-
67+
-
68+
name: value
69+
type: binary
70+
-
71+
name: mask
72+
type: binary
6873
-
6974
name: string
7075
attributes:

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 6
4-
SUBLEVEL = 64
4+
SUBLEVEL = 66
55
EXTRAVERSION =
66
NAME = Pinguïn Aangedreven
77

arch/arm64/kernel/ptrace.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1385,7 +1385,7 @@ static int tagged_addr_ctrl_get(struct task_struct *target,
13851385
{
13861386
long ctrl = get_tagged_addr_ctrl(target);
13871387

1388-
if (IS_ERR_VALUE(ctrl))
1388+
if (WARN_ON_ONCE(IS_ERR_VALUE(ctrl)))
13891389
return ctrl;
13901390

13911391
return membuf_write(&to, &ctrl, sizeof(ctrl));
@@ -1399,6 +1399,10 @@ static int tagged_addr_ctrl_set(struct task_struct *target, const struct
13991399
int ret;
14001400
long ctrl;
14011401

1402+
ctrl = get_tagged_addr_ctrl(target);
1403+
if (WARN_ON_ONCE(IS_ERR_VALUE(ctrl)))
1404+
return ctrl;
1405+
14021406
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &ctrl, 0, -1);
14031407
if (ret)
14041408
return ret;

arch/arm64/kvm/arm.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu)
900900

901901
if (run->exit_reason == KVM_EXIT_MMIO) {
902902
ret = kvm_handle_mmio_return(vcpu);
903-
if (ret)
903+
if (ret <= 0)
904904
return ret;
905905
}
906906

arch/arm64/kvm/mmio.c

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,31 @@ unsigned long kvm_mmio_read_buf(const void *buf, unsigned int len)
7272
return data;
7373
}
7474

75+
static bool kvm_pending_sync_exception(struct kvm_vcpu *vcpu)
76+
{
77+
if (!vcpu_get_flag(vcpu, PENDING_EXCEPTION))
78+
return false;
79+
80+
if (vcpu_el1_is_32bit(vcpu)) {
81+
switch (vcpu_get_flag(vcpu, EXCEPT_MASK)) {
82+
case unpack_vcpu_flag(EXCEPT_AA32_UND):
83+
case unpack_vcpu_flag(EXCEPT_AA32_IABT):
84+
case unpack_vcpu_flag(EXCEPT_AA32_DABT):
85+
return true;
86+
default:
87+
return false;
88+
}
89+
} else {
90+
switch (vcpu_get_flag(vcpu, EXCEPT_MASK)) {
91+
case unpack_vcpu_flag(EXCEPT_AA64_EL1_SYNC):
92+
case unpack_vcpu_flag(EXCEPT_AA64_EL2_SYNC):
93+
return true;
94+
default:
95+
return false;
96+
}
97+
}
98+
}
99+
75100
/**
76101
* kvm_handle_mmio_return -- Handle MMIO loads after user space emulation
77102
* or in-kernel IO emulation
@@ -84,9 +109,12 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
84109
unsigned int len;
85110
int mask;
86111

87-
/* Detect an already handled MMIO return */
88-
if (unlikely(!vcpu->mmio_needed))
89-
return 0;
112+
/*
113+
* Detect if the MMIO return was already handled or if userspace aborted
114+
* the MMIO access.
115+
*/
116+
if (unlikely(!vcpu->mmio_needed || kvm_pending_sync_exception(vcpu)))
117+
return 1;
90118

91119
vcpu->mmio_needed = 0;
92120

@@ -117,7 +145,7 @@ int kvm_handle_mmio_return(struct kvm_vcpu *vcpu)
117145
*/
118146
kvm_incr_pc(vcpu);
119147

120-
return 0;
148+
return 1;
121149
}
122150

123151
int io_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa)

arch/arm64/mm/context.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@ static unsigned long nr_pinned_asids;
3232
static unsigned long *pinned_asid_map;
3333

3434
#define ASID_MASK (~GENMASK(asid_bits - 1, 0))
35-
#define ASID_FIRST_VERSION (1UL << asid_bits)
35+
#define ASID_FIRST_VERSION (1UL << 16)
3636

37-
#define NUM_USER_ASIDS ASID_FIRST_VERSION
37+
#define NUM_USER_ASIDS (1UL << asid_bits)
3838
#define ctxid2asid(asid) ((asid) & ~ASID_MASK)
3939
#define asid2ctxid(asid, genid) ((asid) | (genid))
4040

arch/loongarch/include/asm/hugetlb.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,16 @@ static inline int prepare_hugepage_range(struct file *file,
2929
return 0;
3030
}
3131

32+
#define __HAVE_ARCH_HUGE_PTE_CLEAR
33+
static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
34+
pte_t *ptep, unsigned long sz)
35+
{
36+
pte_t clear;
37+
38+
pte_val(clear) = (unsigned long)invalid_pte_table;
39+
set_pte_at(mm, addr, ptep, clear);
40+
}
41+
3242
#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
3343
static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
3444
unsigned long addr, pte_t *ptep)

arch/loongarch/mm/tlb.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ static void setup_tlb_handler(int cpu)
292292
/* Avoid lockdep warning */
293293
rcu_cpu_starting(cpu);
294294

295-
#ifdef CONFIG_NUMA
295+
#if defined(CONFIG_NUMA) && !defined(CONFIG_PREEMPT_RT)
296296
vec_sz = sizeof(exception_handlers);
297297

298298
if (pcpu_handlers[cpu])

0 commit comments

Comments
 (0)