Skip to content

Commit 8ee418c

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.6.y' into rpi-6.6.y
2 parents 84ab774 + e9448e3 commit 8ee418c

File tree

256 files changed

+6524
-4675
lines changed

Some content is hidden

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

256 files changed

+6524
-4675
lines changed

Documentation/dev-tools/kselftest.rst

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -255,9 +255,21 @@ Contributing new tests (details)
255255

256256
TEST_PROGS_EXTENDED, TEST_GEN_PROGS_EXTENDED mean it is the
257257
executable which is not tested by default.
258+
258259
TEST_FILES, TEST_GEN_FILES mean it is the file which is used by
259260
test.
260261

262+
TEST_INCLUDES is similar to TEST_FILES, it lists files which should be
263+
included when exporting or installing the tests, with the following
264+
differences:
265+
266+
* symlinks to files in other directories are preserved
267+
* the part of paths below tools/testing/selftests/ is preserved when
268+
copying the files to the output directory
269+
270+
TEST_INCLUDES is meant to list dependencies located in other directories of
271+
the selftests hierarchy.
272+
261273
* First use the headers inside the kernel source and/or git repo, and then the
262274
system headers. Headers for the kernel release as opposed to headers
263275
installed by the distro on the system should be the primary focus to be able

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 = 56
4+
SUBLEVEL = 57
55
EXTRAVERSION =
66
NAME = Pinguïn Aangedreven
77

arch/loongarch/pci/acpi.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,7 @@ struct pci_bus *pci_acpi_scan_root(struct acpi_pci_root *root)
225225
if (bus) {
226226
memcpy(bus->sysdata, info->cfg, sizeof(struct pci_config_window));
227227
kfree(info);
228+
kfree(root_ops);
228229
} else {
229230
struct pci_bus *child;
230231

arch/powerpc/configs/ps3_defconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ CONFIG_PS3_VRAM=m
2424
CONFIG_PS3_LPM=m
2525
# CONFIG_PPC_OF_BOOT_TRAMPOLINE is not set
2626
CONFIG_KEXEC=y
27-
# CONFIG_PPC64_BIG_ENDIAN_ELF_ABI_V2 is not set
2827
CONFIG_PPC_4K_PAGES=y
2928
CONFIG_SCHED_SMT=y
3029
CONFIG_PM=y

arch/riscv/include/asm/sbi.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,8 @@ static inline int sbi_remote_fence_i(const struct cpumask *cpu_mask) { return -1
327327
static inline void sbi_init(void) {}
328328
#endif /* CONFIG_RISCV_SBI */
329329

330+
unsigned long riscv_get_mvendorid(void);
331+
unsigned long riscv_get_marchid(void);
330332
unsigned long riscv_cached_mvendorid(unsigned int cpu_id);
331333
unsigned long riscv_cached_marchid(unsigned int cpu_id);
332334
unsigned long riscv_cached_mimpid(unsigned int cpu_id);

arch/riscv/include/asm/sparsemem.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
#ifdef CONFIG_64BIT
88
#define MAX_PHYSMEM_BITS 56
99
#else
10-
#define MAX_PHYSMEM_BITS 34
10+
#define MAX_PHYSMEM_BITS 32
1111
#endif /* CONFIG_64BIT */
1212
#define SECTION_SIZE_BITS 27
1313
#endif /* CONFIG_SPARSEMEM */

arch/riscv/include/asm/thread_info.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333

3434
#define THREAD_SHIFT (PAGE_SHIFT + THREAD_SIZE_ORDER)
3535
#define OVERFLOW_STACK_SIZE SZ_4K
36-
#define SHADOW_OVERFLOW_STACK_SIZE (1024)
3736

3837
#define IRQ_STACK_SIZE THREAD_SIZE
3938

arch/riscv/kernel/cpu.c

Lines changed: 36 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,34 @@ int riscv_of_parent_hartid(struct device_node *node, unsigned long *hartid)
139139
return -1;
140140
}
141141

142+
unsigned long __init riscv_get_marchid(void)
143+
{
144+
struct riscv_cpuinfo *ci = this_cpu_ptr(&riscv_cpuinfo);
145+
146+
#if IS_ENABLED(CONFIG_RISCV_SBI)
147+
ci->marchid = sbi_spec_is_0_1() ? 0 : sbi_get_marchid();
148+
#elif IS_ENABLED(CONFIG_RISCV_M_MODE)
149+
ci->marchid = csr_read(CSR_MARCHID);
150+
#else
151+
ci->marchid = 0;
152+
#endif
153+
return ci->marchid;
154+
}
155+
156+
unsigned long __init riscv_get_mvendorid(void)
157+
{
158+
struct riscv_cpuinfo *ci = this_cpu_ptr(&riscv_cpuinfo);
159+
160+
#if IS_ENABLED(CONFIG_RISCV_SBI)
161+
ci->mvendorid = sbi_spec_is_0_1() ? 0 : sbi_get_mvendorid();
162+
#elif IS_ENABLED(CONFIG_RISCV_M_MODE)
163+
ci->mvendorid = csr_read(CSR_MVENDORID);
164+
#else
165+
ci->mvendorid = 0;
166+
#endif
167+
return ci->mvendorid;
168+
}
169+
142170
DEFINE_PER_CPU(struct riscv_cpuinfo, riscv_cpuinfo);
143171

144172
unsigned long riscv_cached_mvendorid(unsigned int cpu_id)
@@ -170,12 +198,16 @@ static int riscv_cpuinfo_starting(unsigned int cpu)
170198
struct riscv_cpuinfo *ci = this_cpu_ptr(&riscv_cpuinfo);
171199

172200
#if IS_ENABLED(CONFIG_RISCV_SBI)
173-
ci->mvendorid = sbi_spec_is_0_1() ? 0 : sbi_get_mvendorid();
174-
ci->marchid = sbi_spec_is_0_1() ? 0 : sbi_get_marchid();
201+
if (!ci->mvendorid)
202+
ci->mvendorid = sbi_spec_is_0_1() ? 0 : sbi_get_mvendorid();
203+
if (!ci->marchid)
204+
ci->marchid = sbi_spec_is_0_1() ? 0 : sbi_get_marchid();
175205
ci->mimpid = sbi_spec_is_0_1() ? 0 : sbi_get_mimpid();
176206
#elif IS_ENABLED(CONFIG_RISCV_M_MODE)
177-
ci->mvendorid = csr_read(CSR_MVENDORID);
178-
ci->marchid = csr_read(CSR_MARCHID);
207+
if (!ci->mvendorid)
208+
ci->mvendorid = csr_read(CSR_MVENDORID);
209+
if (!ci->marchid)
210+
ci->marchid = csr_read(CSR_MARCHID);
179211
ci->mimpid = csr_read(CSR_MIMPID);
180212
#else
181213
ci->mvendorid = 0;

arch/riscv/kernel/cpufeature.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,13 +351,18 @@ static void __init riscv_fill_hwcap_from_isa_string(unsigned long *isa2hwcap)
351351
struct acpi_table_header *rhct;
352352
acpi_status status;
353353
unsigned int cpu;
354+
u64 boot_vendorid;
355+
u64 boot_archid;
354356

355357
if (!acpi_disabled) {
356358
status = acpi_get_table(ACPI_SIG_RHCT, 0, &rhct);
357359
if (ACPI_FAILURE(status))
358360
return;
359361
}
360362

363+
boot_vendorid = riscv_get_mvendorid();
364+
boot_archid = riscv_get_marchid();
365+
361366
for_each_possible_cpu(cpu) {
362367
struct riscv_isainfo *isainfo = &hart_isa[cpu];
363368
unsigned long this_hwcap = 0;
@@ -405,8 +410,7 @@ static void __init riscv_fill_hwcap_from_isa_string(unsigned long *isa2hwcap)
405410
* CPU cores with the ratified spec will contain non-zero
406411
* marchid.
407412
*/
408-
if (acpi_disabled && riscv_cached_mvendorid(cpu) == THEAD_VENDOR_ID &&
409-
riscv_cached_marchid(cpu) == 0x0) {
413+
if (acpi_disabled && boot_vendorid == THEAD_VENDOR_ID && boot_archid == 0x0) {
410414
this_hwcap &= ~isa2hwcap[RISCV_ISA_EXT_v];
411415
clear_bit(RISCV_ISA_EXT_v, isainfo->isa);
412416
}

arch/riscv/kernel/elf_kexec.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,12 @@ int arch_kexec_apply_relocations_add(struct purgatory_info *pi,
444444
*(u32 *)loc = CLEAN_IMM(CJTYPE, *(u32 *)loc) |
445445
ENCODE_CJTYPE_IMM(val - addr);
446446
break;
447+
case R_RISCV_ADD16:
448+
*(u16 *)loc += val;
449+
break;
450+
case R_RISCV_SUB16:
451+
*(u16 *)loc -= val;
452+
break;
447453
case R_RISCV_ADD32:
448454
*(u32 *)loc += val;
449455
break;

0 commit comments

Comments
 (0)