Skip to content

Commit a79828b

Browse files
committed
Merge remote-tracking branch 'stable/linux-6.12.y' into rpi-6.12.y
2 parents 9899d46 + b0c51e9 commit a79828b

File tree

105 files changed

+907
-399
lines changed

Some content is hidden

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

105 files changed

+907
-399
lines changed

Documentation/devicetree/bindings/display/msm/qcom,mdp5.yaml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@ properties:
6060
- const: bus
6161
- const: core
6262
- const: vsync
63-
- const: lut
6463
- const: tbu
6564
- const: tbu_rt
6665
# MSM8996 has additional iommu clock

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

arch/mips/boot/dts/lantiq/danube_easy50712.dts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,16 @@
8282
};
8383
};
8484

85-
etop@e180000 {
85+
ethernet@e180000 {
8686
compatible = "lantiq,etop-xway";
8787
reg = <0xe180000 0x40000>;
8888
interrupt-parent = <&icu0>;
8989
interrupts = <73 78>;
90+
interrupt-names = "tx", "rx";
9091
phy-mode = "rmii";
9192
mac-address = [ 00 11 22 33 44 55 ];
93+
lantiq,rx-burst-length = <4>;
94+
lantiq,tx-burst-length = <4>;
9295
};
9396

9497
stp0: stp@e100bb0 {

arch/mips/lantiq/xway/sysctrl.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ void __init ltq_soc_init(void)
497497
ifccr = CGU_IFCCR_VR9;
498498
pcicr = CGU_PCICR_VR9;
499499
} else {
500-
clkdev_add_pmu("1e180000.etop", NULL, 1, 0, PMU_PPE);
500+
clkdev_add_pmu("1e180000.ethernet", NULL, 1, 0, PMU_PPE);
501501
}
502502

503503
if (!of_machine_is_compatible("lantiq,ase"))
@@ -531,9 +531,9 @@ void __init ltq_soc_init(void)
531531
CLOCK_133M, CLOCK_133M);
532532
clkdev_add_pmu("1e101000.usb", "otg", 1, 0, PMU_USB0);
533533
clkdev_add_pmu("1f203018.usb2-phy", "phy", 1, 0, PMU_USB0_P);
534-
clkdev_add_pmu("1e180000.etop", "ppe", 1, 0, PMU_PPE);
535-
clkdev_add_cgu("1e180000.etop", "ephycgu", CGU_EPHY);
536-
clkdev_add_pmu("1e180000.etop", "ephy", 1, 0, PMU_EPHY);
534+
clkdev_add_pmu("1e180000.ethernet", "ppe", 1, 0, PMU_PPE);
535+
clkdev_add_cgu("1e180000.ethernet", "ephycgu", CGU_EPHY);
536+
clkdev_add_pmu("1e180000.ethernet", "ephy", 1, 0, PMU_EPHY);
537537
clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_ASE_SDIO);
538538
clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);
539539
} else if (of_machine_is_compatible("lantiq,grx390")) {
@@ -592,7 +592,7 @@ void __init ltq_soc_init(void)
592592
clkdev_add_pmu("1e101000.usb", "otg", 1, 0, PMU_USB0 | PMU_AHBM);
593593
clkdev_add_pmu("1f203034.usb2-phy", "phy", 1, 0, PMU_USB1_P);
594594
clkdev_add_pmu("1e106000.usb", "otg", 1, 0, PMU_USB1 | PMU_AHBM);
595-
clkdev_add_pmu("1e180000.etop", "switch", 1, 0, PMU_SWITCH);
595+
clkdev_add_pmu("1e180000.ethernet", "switch", 1, 0, PMU_SWITCH);
596596
clkdev_add_pmu("1e103000.sdio", NULL, 1, 0, PMU_SDIO);
597597
clkdev_add_pmu("1e103100.deu", NULL, 1, 0, PMU_DEU);
598598
clkdev_add_pmu("1e116000.mei", "dfe", 1, 0, PMU_DFE);

arch/powerpc/kernel/kvm.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -632,28 +632,28 @@ static void __init kvm_check_ins(u32 *inst, u32 features)
632632
#endif
633633
}
634634

635-
switch (inst_no_rt & ~KVM_MASK_RB) {
636635
#ifdef CONFIG_PPC_BOOK3S_32
636+
switch (inst_no_rt & ~KVM_MASK_RB) {
637637
case KVM_INST_MTSRIN:
638638
if (features & KVM_MAGIC_FEAT_SR) {
639639
u32 inst_rb = _inst & KVM_MASK_RB;
640640
kvm_patch_ins_mtsrin(inst, inst_rt, inst_rb);
641641
}
642642
break;
643-
#endif
644643
}
644+
#endif
645645

646-
switch (_inst) {
647646
#ifdef CONFIG_BOOKE
647+
switch (_inst) {
648648
case KVM_INST_WRTEEI_0:
649649
kvm_patch_ins_wrteei_0(inst);
650650
break;
651651

652652
case KVM_INST_WRTEEI_1:
653653
kvm_patch_ins_wrtee(inst, 0, 1);
654654
break;
655-
#endif
656655
}
656+
#endif
657657
}
658658

659659
extern u32 kvm_template_start[];

arch/riscv/kvm/vcpu_vector.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,8 @@ int kvm_riscv_vcpu_set_reg_vector(struct kvm_vcpu *vcpu,
181181
struct kvm_cpu_context *cntx = &vcpu->arch.guest_context;
182182
unsigned long reg_val;
183183

184+
if (reg_size != sizeof(reg_val))
185+
return -EINVAL;
184186
if (copy_from_user(&reg_val, uaddr, reg_size))
185187
return -EFAULT;
186188
if (reg_val != cntx->vector.vlenb)

arch/x86/kernel/cpu/microcode/amd.c

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,28 @@ static int cmp_id(const void *key, const void *elem)
159159
return 1;
160160
}
161161

162+
static u32 cpuid_to_ucode_rev(unsigned int val)
163+
{
164+
union zen_patch_rev p = {};
165+
union cpuid_1_eax c;
166+
167+
c.full = val;
168+
169+
p.stepping = c.stepping;
170+
p.model = c.model;
171+
p.ext_model = c.ext_model;
172+
p.ext_fam = c.ext_fam;
173+
174+
return p.ucode_rev;
175+
}
176+
162177
static bool need_sha_check(u32 cur_rev)
163178
{
179+
if (!cur_rev) {
180+
cur_rev = cpuid_to_ucode_rev(bsp_cpuid_1_eax);
181+
pr_info_once("No current revision, generating the lowest one: 0x%x\n", cur_rev);
182+
}
183+
164184
switch (cur_rev >> 8) {
165185
case 0x80012: return cur_rev <= 0x800126f; break;
166186
case 0x80082: return cur_rev <= 0x800820f; break;
@@ -741,8 +761,6 @@ static struct ucode_patch *cache_find_patch(struct ucode_cpu_info *uci, u16 equi
741761
n.equiv_cpu = equiv_cpu;
742762
n.patch_id = uci->cpu_sig.rev;
743763

744-
WARN_ON_ONCE(!n.patch_id);
745-
746764
list_for_each_entry(p, &microcode_cache, plist)
747765
if (patch_cpus_equivalent(p, &n, false))
748766
return p;

arch/x86/kernel/cpu/topology_amd.c

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -80,20 +80,25 @@ static bool parse_8000_001e(struct topo_scan *tscan, bool has_topoext)
8080

8181
cpuid_leaf(0x8000001e, &leaf);
8282

83-
tscan->c->topo.initial_apicid = leaf.ext_apic_id;
84-
8583
/*
86-
* If leaf 0xb is available, then the domain shifts are set
87-
* already and nothing to do here. Only valid for family >= 0x17.
84+
* If leaf 0xb/0x26 is available, then the APIC ID and the domain
85+
* shifts are set already.
8886
*/
89-
if (!has_topoext && tscan->c->x86 >= 0x17) {
87+
if (!has_topoext) {
88+
tscan->c->topo.initial_apicid = leaf.ext_apic_id;
89+
9090
/*
91-
* Leaf 0x80000008 set the CORE domain shift already.
92-
* Update the SMT domain, but do not propagate it.
91+
* Leaf 0x8000008 sets the CORE domain shift but not the
92+
* SMT domain shift. On CPUs with family >= 0x17, there
93+
* might be hyperthreads.
9394
*/
94-
unsigned int nthreads = leaf.core_nthreads + 1;
95+
if (tscan->c->x86 >= 0x17) {
96+
/* Update the SMT domain, but do not propagate it. */
97+
unsigned int nthreads = leaf.core_nthreads + 1;
9598

96-
topology_update_dom(tscan, TOPO_SMT_DOMAIN, get_count_order(nthreads), nthreads);
99+
topology_update_dom(tscan, TOPO_SMT_DOMAIN,
100+
get_count_order(nthreads), nthreads);
101+
}
97102
}
98103

99104
store_node(tscan, leaf.nnodes_per_socket + 1, leaf.node_id);

arch/x86/kvm/lapic.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -860,6 +860,8 @@ static int __pv_send_ipi(unsigned long *ipi_bitmap, struct kvm_apic_map *map,
860860
if (min > map->max_apic_id)
861861
return 0;
862862

863+
min = array_index_nospec(min, map->max_apic_id + 1);
864+
863865
for_each_set_bit(i, ipi_bitmap,
864866
min((u32)BITS_PER_LONG, (map->max_apic_id - min + 1))) {
865867
if (map->phys_map[min + i]) {

arch/x86/kvm/x86.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9969,8 +9969,11 @@ static void kvm_sched_yield(struct kvm_vcpu *vcpu, unsigned long dest_id)
99699969
rcu_read_lock();
99709970
map = rcu_dereference(vcpu->kvm->arch.apic_map);
99719971

9972-
if (likely(map) && dest_id <= map->max_apic_id && map->phys_map[dest_id])
9973-
target = map->phys_map[dest_id]->vcpu;
9972+
if (likely(map) && dest_id <= map->max_apic_id) {
9973+
dest_id = array_index_nospec(dest_id, map->max_apic_id + 1);
9974+
if (map->phys_map[dest_id])
9975+
target = map->phys_map[dest_id]->vcpu;
9976+
}
99749977

99759978
rcu_read_unlock();
99769979

0 commit comments

Comments
 (0)