Skip to content

Commit d679763

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.6.y' into rpi-6.6.y
2 parents 2c32c36 + ad07a29 commit d679763

File tree

586 files changed

+6545
-2946
lines changed

Some content is hidden

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

586 files changed

+6545
-2946
lines changed

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

+2-1
Original file line numberDiff line numberDiff line change
@@ -565,7 +565,8 @@ Description: Control Symmetric Multi Threading (SMT)
565565
================ =========================================
566566

567567
If control status is "forceoff" or "notsupported" writes
568-
are rejected.
568+
are rejected. Note that enabling SMT on PowerPC skips
569+
offline cores.
569570

570571
What: /sys/devices/system/cpu/cpuX/power/energy_perf_bias
571572
Date: March 2019

Documentation/locking/hwspinlock.rst

+11
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,17 @@ is already free).
8585

8686
Should be called from a process context (might sleep).
8787

88+
::
89+
90+
int hwspin_lock_bust(struct hwspinlock *hwlock, unsigned int id);
91+
92+
After verifying the owner of the hwspinlock, release a previously acquired
93+
hwspinlock; returns 0 on success, or an appropriate error code on failure
94+
(e.g. -EOPNOTSUPP if the bust operation is not defined for the specific
95+
hwspinlock).
96+
97+
Should be called from a process context (might sleep).
98+
8899
::
89100

90101
int hwspin_lock_timeout(struct hwspinlock *hwlock, unsigned int timeout);

Makefile

+1-1
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 = 47
4+
SUBLEVEL = 50
55
EXTRAVERSION =
66
NAME = Hurr durr I'ma ninja sloth
77

arch/arm/boot/dts/nxp/imx/imx6dl-yapp43-common.dtsi

+6-6
Original file line numberDiff line numberDiff line change
@@ -274,24 +274,24 @@
274274

275275
led@0 {
276276
chan-name = "R";
277-
led-cur = /bits/ 8 <0x20>;
278-
max-cur = /bits/ 8 <0x60>;
277+
led-cur = /bits/ 8 <0x6e>;
278+
max-cur = /bits/ 8 <0xc8>;
279279
reg = <0>;
280280
color = <LED_COLOR_ID_RED>;
281281
};
282282

283283
led@1 {
284284
chan-name = "G";
285-
led-cur = /bits/ 8 <0x20>;
286-
max-cur = /bits/ 8 <0x60>;
285+
led-cur = /bits/ 8 <0xbe>;
286+
max-cur = /bits/ 8 <0xc8>;
287287
reg = <1>;
288288
color = <LED_COLOR_ID_GREEN>;
289289
};
290290

291291
led@2 {
292292
chan-name = "B";
293-
led-cur = /bits/ 8 <0x20>;
294-
max-cur = /bits/ 8 <0x60>;
293+
led-cur = /bits/ 8 <0xbe>;
294+
max-cur = /bits/ 8 <0xc8>;
295295
reg = <2>;
296296
color = <LED_COLOR_ID_BLUE>;
297297
};

arch/arm/boot/dts/ti/omap/omap3-n900.dts

+1-1
Original file line numberDiff line numberDiff line change
@@ -781,7 +781,7 @@
781781

782782
mount-matrix = "-1", "0", "0",
783783
"0", "1", "0",
784-
"0", "0", "1";
784+
"0", "0", "-1";
785785
};
786786

787787
cam1: camera@3e {

arch/arm64/boot/dts/freescale/imx8mp-beacon-kit.dts

+5-7
Original file line numberDiff line numberDiff line change
@@ -163,13 +163,12 @@
163163

164164
simple-audio-card,cpu {
165165
sound-dai = <&sai3>;
166+
frame-master;
167+
bitclock-master;
166168
};
167169

168170
simple-audio-card,codec {
169171
sound-dai = <&wm8962>;
170-
clocks = <&clk IMX8MP_CLK_IPP_DO_CLKO1>;
171-
frame-master;
172-
bitclock-master;
173172
};
174173
};
175174
};
@@ -381,10 +380,9 @@
381380
&sai3 {
382381
pinctrl-names = "default";
383382
pinctrl-0 = <&pinctrl_sai3>;
384-
assigned-clocks = <&clk IMX8MP_CLK_SAI3>,
385-
<&clk IMX8MP_AUDIO_PLL2> ;
386-
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL2_OUT>;
387-
assigned-clock-rates = <12288000>, <361267200>;
383+
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
384+
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
385+
assigned-clock-rates = <12288000>;
388386
fsl,sai-mclk-direction-output;
389387
status = "okay";
390388
};

arch/arm64/boot/dts/freescale/imx93-tqma9352-mba93xxla.dts

+1-1
Original file line numberDiff line numberDiff line change
@@ -437,7 +437,7 @@
437437
pinctrl-0 = <&pinctrl_usdhc2_hs>, <&pinctrl_usdhc2_gpio>;
438438
pinctrl-1 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
439439
pinctrl-2 = <&pinctrl_usdhc2_uhs>, <&pinctrl_usdhc2_gpio>;
440-
cd-gpios = <&gpio3 00 GPIO_ACTIVE_LOW>;
440+
cd-gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
441441
vmmc-supply = <&reg_usdhc2_vmmc>;
442442
bus-width = <4>;
443443
no-sdio;

arch/arm64/boot/dts/freescale/imx93-tqma9352.dtsi

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
linux,cma {
2020
compatible = "shared-dma-pool";
2121
reusable;
22-
alloc-ranges = <0 0x60000000 0 0x40000000>;
22+
alloc-ranges = <0 0x80000000 0 0x40000000>;
2323
size = <0 0x10000000>;
2424
linux,cma-default;
2525
};

arch/arm64/boot/dts/freescale/imx93.dtsi

+14-1
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,8 @@
786786
fsl,num-tx-queues = <3>;
787787
fsl,num-rx-queues = <3>;
788788
fsl,stop-mode = <&wakeupmix_gpr 0x0c 1>;
789+
nvmem-cells = <&eth_mac1>;
790+
nvmem-cell-names = "mac-address";
789791
status = "disabled";
790792
};
791793

@@ -807,7 +809,9 @@
807809
<&clk IMX93_CLK_SYS_PLL_PFD0_DIV2>;
808810
assigned-clock-rates = <100000000>, <250000000>;
809811
intf_mode = <&wakeupmix_gpr 0x28>;
810-
snps,clk-csr = <0>;
812+
snps,clk-csr = <6>;
813+
nvmem-cells = <&eth_mac2>;
814+
nvmem-cell-names = "mac-address";
811815
status = "disabled";
812816
};
813817

@@ -888,6 +892,15 @@
888892
reg = <0x47510000 0x10000>;
889893
#address-cells = <1>;
890894
#size-cells = <1>;
895+
896+
eth_mac1: mac-address@4ec {
897+
reg = <0x4ec 0x6>;
898+
};
899+
900+
eth_mac2: mac-address@4f2 {
901+
reg = <0x4f2 0x6>;
902+
};
903+
891904
};
892905

893906
s4muap: mailbox@47520000 {

arch/arm64/kernel/acpi_numa.c

+1-1
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

-3
Original file line numberDiff line numberDiff line change
@@ -371,9 +371,6 @@ void __init __no_sanitize_address setup_arch(char **cmdline_p)
371371
smp_init_cpus();
372372
smp_build_mpidr_hash();
373373

374-
/* Init percpu seeds for random tags after cpus are set up. */
375-
kasan_init_sw_tags();
376-
377374
#ifdef CONFIG_ARM64_SW_TTBR0_PAN
378375
/*
379376
* Make sure init_thread_info.ttbr0 always generates translation

arch/arm64/kernel/smp.c

+2
Original file line numberDiff line numberDiff line change
@@ -459,6 +459,8 @@ void __init smp_prepare_boot_cpu(void)
459459
init_gic_priority_masking();
460460

461461
kasan_init_hw_tags();
462+
/* Init percpu seeds for random tags after cpus are set up. */
463+
kasan_init_sw_tags();
462464
}
463465

464466
/*

arch/arm64/kvm/sys_regs.c

+6
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <trace/events/kvm.h>
3333

3434
#include "sys_regs.h"
35+
#include "vgic/vgic.h"
3536

3637
#include "trace.h"
3738

@@ -301,6 +302,11 @@ static bool access_gic_sgi(struct kvm_vcpu *vcpu,
301302
{
302303
bool g1;
303304

305+
if (!kvm_has_gicv3(vcpu->kvm)) {
306+
kvm_inject_undefined(vcpu);
307+
return false;
308+
}
309+
304310
if (!p->is_write)
305311
return read_from_write_only(vcpu, p, r);
306312

arch/arm64/kvm/vgic/vgic.h

+7
Original file line numberDiff line numberDiff line change
@@ -343,4 +343,11 @@ void vgic_v4_configure_vsgis(struct kvm *kvm);
343343
void vgic_v4_get_vlpi_state(struct vgic_irq *irq, bool *val);
344344
int vgic_v4_request_vpe_irq(struct kvm_vcpu *vcpu, int irq);
345345

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

arch/loongarch/include/asm/dma-direct.h

-11
This file was deleted.

arch/mips/kernel/cpu-probe.c

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

arch/openrisc/kernel/setup.c

+3-3
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,9 @@ void calibrate_delay(void)
255255

256256
void __init setup_arch(char **cmdline_p)
257257
{
258+
/* setup memblock allocator */
259+
setup_memory();
260+
258261
unflatten_and_copy_device_tree();
259262

260263
setup_cpuinfo();
@@ -278,9 +281,6 @@ void __init setup_arch(char **cmdline_p)
278281
}
279282
#endif
280283

281-
/* setup memblock allocator */
282-
setup_memory();
283-
284284
/* paging_init() sets up the MMU and marks all pages as reserved */
285285
paging_init();
286286

arch/parisc/kernel/irq.c

+2-2
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
498498

499499
old_regs = set_irq_regs(regs);
500500
local_irq_disable();
501-
irq_enter();
501+
irq_enter_rcu();
502502

503503
eirr_val = mfctl(23) & cpu_eiem & per_cpu(local_ack_eiem, cpu);
504504
if (!eirr_val)
@@ -533,7 +533,7 @@ asmlinkage void do_cpu_irq_mask(struct pt_regs *regs)
533533
#endif /* CONFIG_IRQSTACKS */
534534

535535
out:
536-
irq_exit();
536+
irq_exit_rcu();
537537
set_irq_regs(old_regs);
538538
return;
539539

arch/powerpc/boot/simple_alloc.c

+5-2
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,11 @@ static void *simple_realloc(void *ptr, unsigned long size)
112112
return ptr;
113113

114114
new = simple_malloc(size);
115-
memcpy(new, ptr, p->size);
116-
simple_free(ptr);
115+
if (new) {
116+
memcpy(new, ptr, p->size);
117+
simple_free(ptr);
118+
}
119+
117120
return new;
118121
}
119122

arch/powerpc/include/asm/topology.h

+13
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)