Skip to content

Commit 7f6bdeb

Browse files
committed
Merge tag 'v6.12.70' into 6.12-main
This is the 6.12.70 stable release # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCgAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAmmMeMIACgkQONu9yGCS # aT4hvxAAqd6ffoNQyHDrV6VfSxFPDDaTifSYDHAFlvF4BvaiHeCYqwa/3M66euKh # TcriBLr0rq4+DMFVMElBqZxgOA4oCFCtBFb2I7qqVCwl4bMX3plaJEmJidYmS6HL # 66AdGZNCLRa4AB6U8JULQIQoTimI86RHaEYBUvzN5uFSdu7B46w/4mur3zOMqgvG # iQZAMi72CQs6fA8+TVfVQ2YsPw7rFdBlSH0hKA1DK+CaU7cyMtd0W56n7VqKKj6N # Wt16weCeOSCLCMZQQlAzuqjdZPHpsyIVuAUEDgiEF2e5R4oCr25+pIzWZNmJJrfG # VpOY7g/lcDe8iH481yC9VksFq+PBSSAfq9Nmv6XjKreYRnnsXHT3HOkHpGpoJ0qu # ZdIi0IQmA0FFRHAyWGxkPVPLUAgMCOVeSyt65dV/urO+OCPXzPdRerTo5kwskUnb # AaO7yxwvx1c+DndE9sBpPqaSUedMCxZeNKv1dGiPXhBu9pmgLK/nKKgHuJOQ1hE+ # Dm3XKdqdxyG/w4CD9+4WAXEYB2BRpHDWie0fYKfvnCX5trPp2LrdjYM98Psf1rUr # W+wcLnBYXFfV0+oPuHTE9r8VbPQuBWrdesyHXeasb4Pb4RDYh8eHPp7k1CIhZ/gL # 2b9ArXa2h6rk976TyAqhhu4s+YqF1TKyPBq+BfCg4c7cCLap7C8= # =O1Qt # -----END PGP SIGNATURE----- # gpg: Signature made Wed Feb 11 13:40:34 2026 CET # gpg: using RSA key 647F28654894E3BD457199BE38DBBDC86092693E # gpg: Can't check signature: No public key
2 parents 18318e1 + 88969c9 commit 7f6bdeb

File tree

120 files changed

+944
-422
lines changed

Some content is hidden

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

120 files changed

+944
-422
lines changed

Documentation/driver-api/gpio/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Core
2727
ACPI support
2828
============
2929

30-
.. kernel-doc:: drivers/gpio/gpiolib-acpi.c
30+
.. kernel-doc:: drivers/gpio/gpiolib-acpi-core.c
3131
:export:
3232

3333
Device tree support

Documentation/translations/zh_CN/driver-api/gpio/index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ ACPI支持
4242

4343
该API在以下内核代码中:
4444

45-
drivers/gpio/gpiolib-acpi.c
45+
drivers/gpio/gpiolib-acpi-core.c
4646

4747
设备树支持
4848
==========

MAINTAINERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9680,7 +9680,7 @@ L: linux-acpi@vger.kernel.org
96809680
S: Supported
96819681
T: git git://git.kernel.org/pub/scm/linux/kernel/git/andy/linux-gpio-intel.git
96829682
F: Documentation/firmware-guide/acpi/gpio-properties.rst
9683-
F: drivers/gpio/gpiolib-acpi.c
9683+
F: drivers/gpio/gpiolib-acpi-*.c
96849684
F: drivers/gpio/gpiolib-acpi.h
96859685

96869686
GPIO AGGREGATOR

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 = 12
4-
SUBLEVEL = 69
4+
SUBLEVEL = 70
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
77

arch/arm/include/asm/string.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,10 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n)
4242
extern void *__memset64(uint64_t *, uint32_t low, __kernel_size_t, uint32_t hi);
4343
static inline void *memset64(uint64_t *p, uint64_t v, __kernel_size_t n)
4444
{
45-
return __memset64(p, v, n * 8, v >> 32);
45+
if (IS_ENABLED(CONFIG_CPU_LITTLE_ENDIAN))
46+
return __memset64(p, v, n * 8, v >> 32);
47+
else
48+
return __memset64(p, v >> 32, n * 8, v);
4649
}
4750

4851
/*

arch/loongarch/kernel/traps.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -534,10 +534,15 @@ asmlinkage void noinstr do_fpe(struct pt_regs *regs, unsigned long fcsr)
534534
asmlinkage void noinstr do_ade(struct pt_regs *regs)
535535
{
536536
irqentry_state_t state = irqentry_enter(regs);
537+
unsigned int esubcode = FIELD_GET(CSR_ESTAT_ESUBCODE, regs->csr_estat);
538+
539+
if ((esubcode == EXSUBCODE_ADEM) && fixup_exception(regs))
540+
goto out;
537541

538542
die_if_kernel("Kernel ade access", regs);
539543
force_sig_fault(SIGBUS, BUS_ADRERR, (void __user *)regs->csr_badvaddr);
540544

545+
out:
541546
irqentry_exit(regs, state);
542547
}
543548

arch/loongarch/mm/cache.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,8 +160,8 @@ void cpu_cache_init(void)
160160

161161
static const pgprot_t protection_map[16] = {
162162
[VM_NONE] = __pgprot(_CACHE_CC | _PAGE_USER |
163-
_PAGE_PROTNONE | _PAGE_NO_EXEC |
164-
_PAGE_NO_READ),
163+
_PAGE_NO_EXEC | _PAGE_NO_READ |
164+
(_PAGE_PROTNONE ? : _PAGE_PRESENT)),
165165
[VM_READ] = __pgprot(_CACHE_CC | _PAGE_VALID |
166166
_PAGE_USER | _PAGE_PRESENT |
167167
_PAGE_NO_EXEC),
@@ -180,8 +180,8 @@ static const pgprot_t protection_map[16] = {
180180
[VM_EXEC | VM_WRITE | VM_READ] = __pgprot(_CACHE_CC | _PAGE_VALID |
181181
_PAGE_USER | _PAGE_PRESENT),
182182
[VM_SHARED] = __pgprot(_CACHE_CC | _PAGE_USER |
183-
_PAGE_PROTNONE | _PAGE_NO_EXEC |
184-
_PAGE_NO_READ),
183+
_PAGE_NO_EXEC | _PAGE_NO_READ |
184+
(_PAGE_PROTNONE ? : _PAGE_PRESENT)),
185185
[VM_SHARED | VM_READ] = __pgprot(_CACHE_CC | _PAGE_VALID |
186186
_PAGE_USER | _PAGE_PRESENT |
187187
_PAGE_NO_EXEC),

arch/riscv/kernel/traps.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,8 +339,10 @@ void do_trap_ecall_u(struct pt_regs *regs)
339339

340340
add_random_kstack_offset();
341341

342-
if (syscall >= 0 && syscall < NR_syscalls)
342+
if (syscall >= 0 && syscall < NR_syscalls) {
343+
syscall = array_index_nospec(syscall, NR_syscalls);
343344
syscall_handler(regs, syscall);
345+
}
344346

345347
/*
346348
* Ultimately, this value will get limited by KSTACK_OFFSET_MAX(),

arch/x86/include/asm/kfence.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)
4242
{
4343
unsigned int level;
4444
pte_t *pte = lookup_address(addr, &level);
45-
pteval_t val;
45+
pteval_t val, new;
4646

4747
if (WARN_ON(!pte || level != PG_LEVEL_4K))
4848
return false;
@@ -57,11 +57,12 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)
5757
return true;
5858

5959
/*
60-
* Otherwise, invert the entire PTE. This avoids writing out an
60+
* Otherwise, flip the Present bit, taking care to avoid writing an
6161
* L1TF-vulnerable PTE (not present, without the high address bits
6262
* set).
6363
*/
64-
set_pte(pte, __pte(~val));
64+
new = val ^ _PAGE_PRESENT;
65+
set_pte(pte, __pte(flip_protnone_guard(val, new, PTE_PFN_MASK)));
6566

6667
/*
6768
* If the page was protected (non-present) and we're making it

arch/x86/include/asm/vmware.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ unsigned long vmware_hypercall3(unsigned long cmd, unsigned long in1,
140140
"b" (in1),
141141
"c" (cmd),
142142
"d" (0)
143-
: "cc", "memory");
143+
: "di", "si", "cc", "memory");
144144
return out0;
145145
}
146146

@@ -165,7 +165,7 @@ unsigned long vmware_hypercall4(unsigned long cmd, unsigned long in1,
165165
"b" (in1),
166166
"c" (cmd),
167167
"d" (0)
168-
: "cc", "memory");
168+
: "di", "si", "cc", "memory");
169169
return out0;
170170
}
171171

0 commit comments

Comments
 (0)