Skip to content

Commit 27527b2

Browse files
Automatic merge of 'fixes' into merge (2026-01-06 11:15)
2 parents 0625535 + 9ace475 commit 27527b2

File tree

284 files changed

+2161
-1055
lines changed

Some content is hidden

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

284 files changed

+2161
-1055
lines changed

.mailmap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,8 @@ Barry Song <baohua@kernel.org> <Baohua.Song@csr.com>
127127
Barry Song <baohua@kernel.org> <barry.song@analog.com>
128128
Bart Van Assche <bvanassche@acm.org> <bart.vanassche@sandisk.com>
129129
Bart Van Assche <bvanassche@acm.org> <bart.vanassche@wdc.com>
130-
Bartosz Golaszewski <brgl@bgdev.pl> <bgolaszewski@baylibre.com>
130+
Bartosz Golaszewski <brgl@kernel.org> <bartosz.golaszewski@linaro.org>
131+
Bartosz Golaszewski <brgl@kernel.org> <bgolaszewski@baylibre.com>
131132
Ben Dooks <ben-linux@fluff.org> <ben.dooks@simtec.co.uk>
132133
Ben Dooks <ben-linux@fluff.org> <ben.dooks@sifive.com>
133134
Ben Gardner <bgardner@wabtec.com>
@@ -857,7 +858,6 @@ Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@parallels.com>
857858
Vladimir Davydov <vdavydov.dev@gmail.com> <vdavydov@virtuozzo.com>
858859
WangYuli <wangyuli@aosc.io> <wangyl5933@chinaunicom.cn>
859860
WangYuli <wangyuli@aosc.io> <wangyuli@deepin.org>
860-
WangYuli <wangyuli@aosc.io> <wangyuli@uniontech.com>
861861
Weiwen Hu <huweiwen@linux.alibaba.com> <sehuww@mail.scut.edu.cn>
862862
WeiXiong Liao <gmpy.liaowx@gmail.com> <liaoweixiong@allwinnertech.com>
863863
Wen Gong <quic_wgong@quicinc.com> <wgong@codeaurora.org>

Documentation/arch/riscv/hwprobe.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -281,6 +281,14 @@ The following keys are defined:
281281
* :c:macro:`RISCV_HWPROBE_EXT_ZICBOP`: The Zicbop extension is supported, as
282282
ratified in commit 3dd606f ("Create cmobase-v1.0.pdf") of riscv-CMOs.
283283

284+
* :c:macro:`RISCV_HWPROBE_EXT_ZILSD`: The Zilsd extension is supported as
285+
defined in the RISC-V ISA manual starting from commit f88abf1 ("Integrating
286+
load/store pair for RV32 with the main manual") of the riscv-isa-manual.
287+
288+
* :c:macro:`RISCV_HWPROBE_EXT_ZCLSD`: The Zclsd extension is supported as
289+
defined in the RISC-V ISA manual starting from commit f88abf1 ("Integrating
290+
load/store pair for RV32 with the main manual") of the riscv-isa-manual.
291+
284292
* :c:macro:`RISCV_HWPROBE_KEY_CPUPERF_0`: Deprecated. Returns similar values to
285293
:c:macro:`RISCV_HWPROBE_KEY_MISALIGNED_SCALAR_PERF`, but the key was
286294
mistakenly classified as a bitmask rather than a value.

Documentation/devicetree/bindings/riscv/extensions.yaml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -377,6 +377,20 @@ properties:
377377
guarantee on LR/SC sequences, as ratified in commit b1d806605f87
378378
("Updated to ratified state.") of the riscv profiles specification.
379379

380+
- const: zilsd
381+
description:
382+
The standard Zilsd extension which provides support for aligned
383+
register-pair load and store operations in 32-bit instruction
384+
encodings, as ratified in commit f88abf1 ("Integrating
385+
load/store pair for RV32 with the main manual") of riscv-isa-manual.
386+
387+
- const: zclsd
388+
description:
389+
The Zclsd extension implements the compressed (16-bit) version of the
390+
Load/Store Pair for RV32. As with Zilsd, this extension was ratified
391+
in commit f88abf1 ("Integrating load/store pair for RV32 with the
392+
main manual") of riscv-isa-manual.
393+
380394
- const: zk
381395
description:
382396
The standard Zk Standard Scalar cryptography extension as ratified
@@ -882,6 +896,16 @@ properties:
882896
anyOf:
883897
- const: v
884898
- const: zve32x
899+
# Zclsd depends on Zilsd and Zca
900+
- if:
901+
contains:
902+
anyOf:
903+
- const: zclsd
904+
then:
905+
contains:
906+
allOf:
907+
- const: zilsd
908+
- const: zca
885909

886910
allOf:
887911
# Zcf extension does not exist on rv64
@@ -899,6 +923,18 @@ allOf:
899923
not:
900924
contains:
901925
const: zcf
926+
# Zilsd extension does not exist on rv64
927+
- if:
928+
properties:
929+
riscv,isa-base:
930+
contains:
931+
const: rv64i
932+
then:
933+
properties:
934+
riscv,isa-extensions:
935+
not:
936+
contains:
937+
const: zilsd
902938

903939
additionalProperties: true
904940
...

MAINTAINERS

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13959,6 +13959,7 @@ S: Maintained
1395913959
F: Documentation/admin-guide/mm/kho.rst
1396013960
F: Documentation/core-api/kho/*
1396113961
F: include/linux/kexec_handover.h
13962+
F: include/linux/kho/
1396213963
F: kernel/liveupdate/kexec_handover*
1396313964
F: lib/test_kho.c
1396413965
F: tools/testing/selftests/kho/
@@ -14637,6 +14638,7 @@ S: Maintained
1463714638
F: Documentation/core-api/liveupdate.rst
1463814639
F: Documentation/mm/memfd_preservation.rst
1463914640
F: Documentation/userspace-api/liveupdate.rst
14641+
F: include/linux/kho/abi/
1464014642
F: include/linux/liveupdate.h
1464114643
F: include/linux/liveupdate/
1464214644
F: include/uapi/linux/liveupdate.h
@@ -16426,6 +16428,7 @@ MEMORY HOT(UN)PLUG
1642616428
M: David Hildenbrand <david@kernel.org>
1642716429
M: Oscar Salvador <osalvador@suse.de>
1642816430
L: linux-mm@kvack.org
16431+
L: linux-cxl@vger.kernel.org
1642916432
S: Maintained
1643016433
F: Documentation/admin-guide/mm/memory-hotplug.rst
1643116434
F: Documentation/core-api/memory-hotplug.rst
@@ -16751,6 +16754,7 @@ F: tools/testing/selftests/mm/transhuge-stress.c
1675116754

1675216755
MEMORY MANAGEMENT - USERFAULTFD
1675316756
M: Andrew Morton <akpm@linux-foundation.org>
16757+
M: Mike Rapoport <rppt@kernel.org>
1675416758
R: Peter Xu <peterx@redhat.com>
1675516759
L: linux-mm@kvack.org
1675616760
S: Maintained
@@ -21345,7 +21349,7 @@ F: Documentation/devicetree/bindings/net/qcom,bam-dmux.yaml
2134521349
F: drivers/net/wwan/qcom_bam_dmux.c
2134621350

2134721351
QUALCOMM BLUETOOTH DRIVER
21348-
M: Bartosz Golaszewski <brgl@bgdev.pl>
21352+
M: Bartosz Golaszewski <brgl@kernel.org>
2134921353
L: linux-arm-msm@vger.kernel.org
2135021354
S: Maintained
2135121355
F: drivers/bluetooth/btqca.[ch]
@@ -24571,7 +24575,7 @@ F: drivers/tty/vcc.c
2457124575
F: include/linux/sunserialcore.h
2457224576

2457324577
SPARSE CHECKER
24574-
M: "Luc Van Oostenryck" <luc.vanoostenryck@gmail.com>
24578+
M: Chris Li <sparse@chrisli.org>
2457524579
L: linux-sparse@vger.kernel.org
2457624580
S: Maintained
2457724581
W: https://sparse.docs.kernel.org/

Makefile

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

88
# *DOCUMENTATION*

arch/loongarch/include/asm/loongarch.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,12 @@
9494
#define CPUCFG2_LSPW BIT(21)
9595
#define CPUCFG2_LAM BIT(22)
9696
#define CPUCFG2_PTW BIT(24)
97+
#define CPUCFG2_FRECIPE BIT(25)
98+
#define CPUCFG2_DIV32 BIT(26)
99+
#define CPUCFG2_LAM_BH BIT(27)
100+
#define CPUCFG2_LAMCAS BIT(28)
101+
#define CPUCFG2_LLACQ_SCREL BIT(29)
102+
#define CPUCFG2_SCQ BIT(30)
97103

98104
#define LOONGARCH_CPUCFG3 0x3
99105
#define CPUCFG3_CCDMA BIT(0)
@@ -108,6 +114,7 @@
108114
#define CPUCFG3_SPW_HG_HF BIT(11)
109115
#define CPUCFG3_RVA BIT(12)
110116
#define CPUCFG3_RVAMAX GENMASK(16, 13)
117+
#define CPUCFG3_DBAR_HINTS BIT(17)
111118
#define CPUCFG3_ALDORDER_CAP BIT(18) /* All address load ordered, capability */
112119
#define CPUCFG3_ASTORDER_CAP BIT(19) /* All address store ordered, capability */
113120
#define CPUCFG3_ALDORDER_STA BIT(20) /* All address load ordered, status */

arch/loongarch/kernel/head.S

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ SYM_DATA(kernel_fsize, .long _kernel_fsize);
4242
.align 12
4343

4444
SYM_CODE_START(kernel_entry) # kernel entry point
45+
UNWIND_HINT_END_OF_STACK
4546

4647
SETUP_TWINS
4748
SETUP_MODES t0
@@ -113,6 +114,7 @@ SYM_CODE_END(kernel_entry)
113114
* function after setting up the stack and tp registers.
114115
*/
115116
SYM_CODE_START(smpboot_entry)
117+
UNWIND_HINT_END_OF_STACK
116118

117119
SETUP_TWINS
118120
SETUP_MODES t0
@@ -142,5 +144,3 @@ SYM_CODE_START(smpboot_entry)
142144
SYM_CODE_END(smpboot_entry)
143145

144146
#endif /* CONFIG_SMP */
145-
146-
SYM_ENTRY(kernel_entry_end, SYM_L_GLOBAL, SYM_A_NONE)

arch/loongarch/kernel/mcount_dyn.S

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ SYM_INNER_LABEL(ftrace_graph_call, SYM_L_GLOBAL)
9494
* at the callsite, so there is no need to restore the T series regs.
9595
*/
9696
ftrace_common_return:
97-
PTR_L ra, sp, PT_R1
9897
PTR_L a0, sp, PT_R4
9998
PTR_L a1, sp, PT_R5
10099
PTR_L a2, sp, PT_R6
@@ -104,12 +103,17 @@ ftrace_common_return:
104103
PTR_L a6, sp, PT_R10
105104
PTR_L a7, sp, PT_R11
106105
PTR_L fp, sp, PT_R22
107-
PTR_L t0, sp, PT_ERA
108106
PTR_L t1, sp, PT_R13
109-
PTR_ADDI sp, sp, PT_SIZE
110107
bnez t1, .Ldirect
108+
109+
PTR_L ra, sp, PT_R1
110+
PTR_L t0, sp, PT_ERA
111+
PTR_ADDI sp, sp, PT_SIZE
111112
jr t0
112113
.Ldirect:
114+
PTR_L t0, sp, PT_R1
115+
PTR_L ra, sp, PT_ERA
116+
PTR_ADDI sp, sp, PT_SIZE
113117
jr t1
114118
SYM_CODE_END(ftrace_common)
115119

@@ -161,6 +165,8 @@ SYM_CODE_END(return_to_handler)
161165
#ifdef CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
162166
SYM_CODE_START(ftrace_stub_direct_tramp)
163167
UNWIND_HINT_UNDEFINED
164-
jr t0
168+
move t1, ra
169+
move ra, t0
170+
jr t1
165171
SYM_CODE_END(ftrace_stub_direct_tramp)
166172
#endif /* CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS */

arch/loongarch/kernel/traps.c

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

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

546+
out:
542547
irqentry_exit(regs, state);
543548
}
544549

arch/loongarch/kernel/unwind_orc.c

Lines changed: 5 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -348,24 +348,10 @@ void unwind_start(struct unwind_state *state, struct task_struct *task,
348348
}
349349
EXPORT_SYMBOL_GPL(unwind_start);
350350

351-
static bool is_entry_func(unsigned long addr)
352-
{
353-
extern u32 kernel_entry;
354-
extern u32 kernel_entry_end;
355-
356-
return addr >= (unsigned long)&kernel_entry && addr < (unsigned long)&kernel_entry_end;
357-
}
358-
359351
static inline unsigned long bt_address(unsigned long ra)
360352
{
361353
extern unsigned long eentry;
362354

363-
if (__kernel_text_address(ra))
364-
return ra;
365-
366-
if (__module_text_address(ra))
367-
return ra;
368-
369355
if (ra >= eentry && ra < eentry + EXCCODE_INT_END * VECSIZE) {
370356
unsigned long func;
371357
unsigned long type = (ra - eentry) / VECSIZE;
@@ -383,10 +369,13 @@ static inline unsigned long bt_address(unsigned long ra)
383369
break;
384370
}
385371

386-
return func + offset;
372+
ra = func + offset;
387373
}
388374

389-
return ra;
375+
if (__kernel_text_address(ra))
376+
return ra;
377+
378+
return 0;
390379
}
391380

392381
bool unwind_next_frame(struct unwind_state *state)
@@ -402,9 +391,6 @@ bool unwind_next_frame(struct unwind_state *state)
402391
/* Don't let modules unload while we're reading their ORC data. */
403392
guard(rcu)();
404393

405-
if (is_entry_func(state->pc))
406-
goto end;
407-
408394
orc = orc_find(state->pc);
409395
if (!orc) {
410396
/*
@@ -512,9 +498,6 @@ bool unwind_next_frame(struct unwind_state *state)
512498
goto err;
513499
}
514500

515-
if (!__kernel_text_address(state->pc))
516-
goto err;
517-
518501
return true;
519502

520503
err:

0 commit comments

Comments
 (0)