Skip to content

Commit 694ae08

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.10.y' into v6.10+
2 parents 7fb208f + 24873d2 commit 694ae08

302 files changed

Lines changed: 3441 additions & 1720 deletions

File tree

Some content is hidden

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

Documentation/ABI/testing/sysfs-devices-system-cpu

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -562,7 +562,8 @@ Description: Control Symmetric Multi Threading (SMT)
562562
================ =========================================
563563

564564
If control status is "forceoff" or "notsupported" writes
565-
are rejected.
565+
are rejected. Note that enabling SMT on PowerPC skips
566+
offline cores.
566567

567568
What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
568569
Date: March 2019

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 6
33
PATCHLEVEL = 10
4-
SUBLEVEL = 6
4+
SUBLEVEL = 7
55
EXTRAVERSION =
66
NAME = Baby Opossum Posse
77

@@ -1984,7 +1984,7 @@ nsdeps: modules
19841984
quiet_cmd_gen_compile_commands = GEN $@
19851985
cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
19861986

1987-
$(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \
1987+
$(extmod_prefix)compile_commands.json: $(srctree)/scripts/clang-tools/gen_compile_commands.py \
19881988
$(if $(KBUILD_EXTMOD),, vmlinux.a $(KBUILD_VMLINUX_LIBS)) \
19891989
$(if $(CONFIG_MODULES), $(MODORDER)) FORCE
19901990
$(call if_changed,gen_compile_commands)

arch/arm64/kernel/acpi_numa.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727

2828
#include <asm/numa.h>
2929

30-
static int acpi_early_node_map[NR_CPUS] __initdata = { NUMA_NO_NODE };
30+
static int acpi_early_node_map[NR_CPUS] __initdata = { [0 ... NR_CPUS - 1] = NUMA_NO_NODE };
3131

3232
int __init acpi_numa_get_nid(unsigned int cpu)
3333
{

arch/arm64/kernel/setup.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -355,9 +355,6 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
355355
smp_init_cpus();
356356
smp_build_mpidr_hash();
357357

358-
/* Init percpu seeds for random tags after cpus are set up. */
359-
kasan_init_sw_tags();
360-
361358
#ifdef CONFIG_ARM64_SW_TTBR0_PAN
362359
/*
363360
* Make sure init_thread_info.ttbr0 always generates translation

arch/arm64/kernel/smp.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,8 @@ void __init smp_prepare_boot_cpu(void)
469469
init_gic_priority_masking();
470470

471471
kasan_init_hw_tags();
472+
/* Init percpu seeds for random tags after cpus are set up. */
473+
kasan_init_sw_tags();
472474
}
473475

474476
/*

arch/arm64/kvm/sys_regs.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <trace/events/kvm.h>
3434

3535
#include "sys_regs.h"
36+
#include "vgic/vgic.h"
3637

3738
#include "trace.h"
3839

@@ -428,6 +429,11 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
428429
{
429430
bool g1;
430431

432+
if (!kvm_has_gicv3(vcpu->kvm)) {
433+
kvm_inject_undefined(vcpu);
434+
return false;
435+
}
436+
431437
if (!p->is_write)
432438
return read_from_write_only(vcpu, p, r);
433439

arch/arm64/kvm/vgic/vgic-debug.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ static void iter_unmark_lpis(struct kvm *kvm)
8484
struct vgic_irq *irq;
8585
unsigned long intid;
8686

87-
xa_for_each(&dist->lpi_xa, intid, irq) {
87+
xa_for_each_marked(&dist->lpi_xa, intid, irq, LPI_XA_MARK_DEBUG_ITER) {
8888
xa_clear_mark(&dist->lpi_xa, intid, LPI_XA_MARK_DEBUG_ITER);
8989
vgic_put_irq(kvm, irq);
9090
}

arch/arm64/kvm/vgic/vgic.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,4 +346,11 @@ void vgic_v4_configure_vsgis(struct kvm *kvm);
346346
void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);
347347
int vgic_v4_request_vpe_irq(struct kvm_vcpu *vcpu, int irq);
348348

349+
static inline bool kvm_has_gicv3(struct kvm *kvm)
350+
{
351+
return (static_branch_unlikely(&kvm_vgic_global_state.gicv3_cpuif) &&
352+
irqchip_in_kernel(kvm) &&
353+
kvm->arch.vgic.vgic_model == KVM_DEV_TYPE_ARM_VGIC_V3);
354+
}
355+
349356
#endif

arch/mips/kernel/cpu-probe.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1724,12 +1724,16 @@ static inline void cpu_probe_loongson(struct cpuinfo_mips *c, unsigned int cpu)
17241724
c->ases |= (MIPS_ASE_LOONGSON_MMI | MIPS_ASE_LOONGSON_CAM |
17251725
MIPS_ASE_LOONGSON_EXT | MIPS_ASE_LOONGSON_EXT2);
17261726
c->ases &= ~MIPS_ASE_VZ; /* VZ of Loongson-3A2000/3000 is incomplete */
1727+
change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
1728+
LOONGSON_CONF6_INTIMER);
17271729
break;
17281730
case PRID_IMP_LOONGSON_64G:
17291731
__cpu_name[cpu] = "ICT Loongson-3";
17301732
set_elf_platform(cpu, "loongson3a");
17311733
set_isa(c, MIPS_CPU_ISA_M64R2);
17321734
decode_cpucfg(c);
1735+
change_c0_config6(LOONGSON_CONF6_EXTIMER | LOONGSON_CONF6_INTIMER,
1736+
LOONGSON_CONF6_INTIMER);
17331737
break;
17341738
default:
17351739
panic("Unknown Loongson Processor ID!");

arch/powerpc/include/asm/topology.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ static inline int cpu_to_coregroup_id(int cpu)
145145

146146
#ifdef CONFIG_HOTPLUG_SMT
147147
#include <linux/cpu_smt.h>
148+
#include <linux/cpumask.h>
148149
#include <asm/cputhreads.h>
149150

150151
static inline bool topology_is_primary_thread(unsigned int cpu)
@@ -156,6 +157,18 @@ static inline bool topology_smt_thread_allowed(unsigned int cpu)
156157
{
157158
return cpu_thread_in_core(cpu) < cpu_smt_num_threads;
158159
}
160+
161+
#define topology_is_core_online topology_is_core_online
162+
static inline bool topology_is_core_online(unsigned int cpu)
163+
{
164+
int i, first_cpu = cpu_first_thread_sibling(cpu);
165+
166+
for (i = first_cpu; i < first_cpu + threads_per_core; ++i) {
167+
if (cpu_online(i))
168+
return true;
169+
}
170+
return false;
171+
}
159172
#endif
160173

161174
#endif /* __KERNEL__ */

0 commit comments

Comments
 (0)