summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2025-11-21Merge tag 'thead-dt-for-v6.19' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux into soc/dt T-HEAD Devicetrees for v6.19 Add PWM controlled fan and it's associated thermal management for the Lichee Pi 4A board. Enable additional ISA extenstions supported by the T-Head C910 cores: Zfh, Ziccrse, XTheadvector. Add reset controllers of more TH1520 subsystems: AP, AO, DSP, MISC, VI. Signed-off-by: Drew Fustini <fustini@kernel.org> * tag 'thead-dt-for-v6.19' of git://git.kernel.org/pub/scm/linux/kernel/git/fustini/linux: riscv: dts: thead: Add reset controllers of more subsystems for TH1520 riscv: dts: thead: Add PWM fan and thermal control riscv: dts: thead: Add PWM controller node riscv: dts: thead: add zfh for th1520 riscv: dts: thead: add ziccrse for th1520 riscv: dts: thead: add xtheadvector to the th1520 devicetree Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-21Merge tag 'renesas-dts-for-v6.19-tag1' of ↵Arnd Bergmann
git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel into soc/dt Renesas DTS updates for v6.19 - Add thermal support for the RZ/G3S and RZ/G3E SoCs, - Add DT overlay support for the Raspberry Pi Display 2 and Argon40 fan hats on the Retronix Sparrow Hawk board, - Add eMMC support for the Eagle Function expansion board, - Add initial support for the R-Car X5H (R8A78000) SoC and the Ironhide development board, - Move interrupt-parent properties to root nodes, - Add system watchdog timer support for R-Car Gen3 and Gen4 SoCs, which is reserved for secure firmware on R-Car Gen3 boards, - Add ADC support for the RZ/T2H and RZ/N2H SoCs and their evaluation boards, - Add watchdog timer support on the R-Car V3M Starter Kit board, - Add Cortex-A55 PMU support on the RZ/V2H, RZ/V2N, RZ/T2H, and RZ/N2H SoCs, - Add Imagination Technologies PowerVR Series 6XT GX6250 GPU support on the R-Car M3-W and M3-W+ SoCs, - Miscellaneous fixes and improvements. * tag 'renesas-dts-for-v6.19-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-devel: (80 commits) arm64: dts: renesas: sparrow-hawk: Fix full-size DP connector node name and labels arm64: dts: renesas: r8a77961: Add GX6250 GPU node arm64: dts: renesas: r8a77960: Add GX6250 GPU node ARM: dts: renesas: kzm9g: Name interrupts for accelerometer arm64: dts: renesas: r9a09g087: Add Cortex-A55 PMU node arm64: dts: renesas: r9a09g077: Add Cortex-A55 PMU node arm64: dts: renesas: r9a09g056: Add Cortex-A55 PMU node arm64: dts: renesas: r9a09g057: Add Cortex-A55 PMU node ARM: dts: renesas: r9a06g032-rzn1d400-db: Drop invalid #cells properties arm64: dts: renesas: v3msk: Enable watchdog timer arm64: dts: renesas: r8a779h0: Add SWDT node arm64: dts: renesas: r8a779g0: Add SWDT node arm64: dts: renesas: r8a779f0: Add SWDT node arm64: dts: renesas: r8a779a0: Add SWDT node arm64: dts: renesas: rzt2h/rzn2h-evk: Enable ADCs arm64: dts: renesas: r9a09g087: Add ADCs support arm64: dts: renesas: r9a09g077: Add ADCs support ARM: dts: renesas: koelsch: Update ADV7180 binding ARM: dts: renesas: r9a06g032: Move interrupt-parent to root node ARM: dts: renesas: r8a7794: Move interrupt-parent to root node ... Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-21Merge tag 'aspeed-6.19-devicetree-0' of ↵Arnd Bergmann
https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux into soc/dt First batch of ASPEED Arm devicetree changes for 6.19 Significant changes: - The IBM Power11 FSI DTSIs have been rearranged to accommodate new systems New platforms: - IBM Balcones The Balcones system is similar to Bonnell but with a POWER11 processor. Like POWER10, the POWER11 is a dual-chip module, so a dual chip FSI tree is needed. - Meta Yosemite5 The Yosemite5 platform provides monitoring of voltages, power, temperatures, and other critical parameters across the motherboard, CXL board, E1.S expansion board, and NIC components. Updated platforms: - clemente (Meta): LEDs, shunt resistor configuration - santabarbara (Meta): AMD APML, EEPROMs, LEDs, GPIO line names, MCTP for NICs There are a scattering of one-off changes and devicetree cleanups for other platforms as well. * tag 'aspeed-6.19-devicetree-0' of https://git.kernel.org/pub/scm/linux/kernel/git/bmc/linux: ARM: dts: aspeed: santabarbara: Add eeprom device node for PRoT module ARM: dts: aspeed: santabarbara: Add AMD APML interface support ARM: dts: aspeed: santabarbara: Add gpio line name ARM: dts: aspeed: santabarbara: Add bmc_ready_noled Led ARM: dts: aspeed: santabarbara: Enable MCTP for frontend NIC ARM: dts: aspeed: santabarbara: Add sensor support for extension boards ARM: dts: aspeed: santabarbara: Add blank lines between nodes for readability ARM: dts: aspeed: yosemite5: Add Meta Yosemite5 BMC dt-bindings: arm: aspeed: add Meta Yosemite5 board ARM: dts: aspeed: clemente: Add HDD LED GPIO ARM: dts: aspeed: Fix max31785 fan properties ARM: dts: aspeed: Add Balcones system dt-bindings: arm: aspeed: add IBM Bonnell board dt-bindings: arm: aspeed: add IBM Balcones board ARM: dts: aspeed: harma: Add MCTP I2C controller node ARM: dts: aspeed: yosemite4: allocate ramoops for kernel panic ARM: dts: aspeed: clemente: add shunt-resistor-micro-ohms for LM5066i Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-21Merge tag 'pxa1908-dt-for-6.19' of https://gitlab.com/pxa1908-mainline/linux ↵Arnd Bergmann
into soc/dt PXA1908 DT changes for 6.19 Rollup of hardware support which has accumulated since support for the SoC and coreprimevelte board was merged. This most notably includes eMMC, PMIC, backlight and touchscreen. A few QoL fixes are also included. * tag 'pxa1908-dt-for-6.19' of https://gitlab.com/pxa1908-mainline/linux: arm64: dts: marvell: pxa1908: Add power domains arm64: dts: marvell: samsung,coreprimevelte: Add USB connector arm64: dts: marvell: samsung,coreprimevelte: Fill in memory node arm64: dts: marvell: samsung,coreprimevelte: Drop some reserved memory arm64: dts: marvell: pxa1908: Move ramoops to SoC dtsi arm64: dts: marvell: samsung,coreprimevelte: Add vibrator arm64: dts: marvell: pxa1908: Add PWMs arm64: dts: marvell: samsung,coreprimevelte: Enable eMMC arm64: dts: marvell: samsung,coreprimevelte: Correct CD GPIO arm64: dts: marvell: samsung,coreprimevelte: Add backlight arm64: dts: samsung,coreprimevelte: add SDIO arm64: dts: samsung,coreprimevelte: add touchscreen arm64: dts: samsung,coreprimevelte: add PMIC Signed-off-by: Arnd Bergmann <arnd@arndb.de>
2025-11-21Merge tag 'tenstorrent-dt-for-v6.19' of https://github.com/tenstorrent/linux ↵Arnd Bergmann
into soc/newsoc Tenstorrent device tree for v6.19 Add Tenstorrent as a vendor and enable support for the Blackhole SoC in Blackhole P100 and P150 PCIe cards. The SoC contains four RISC-V CPU tiles consisting of 4x SiFive X280 cores. There is a virtual UART implemented in OpenSBI firmware that allows a console program on the PCIe host to communicate through shared memory with Linux running on the Blackhole card. Link: https://github.com/tenstorrent/tt-bh-linux Link: https://github.com/tenstorrent/opensbi/ Signed-off-by: Drew Fustini <fustini@kernel.org> * tag 'tenstorrent-dt-for-v6.19' of https://github.com/tenstorrent/linux: riscv: defconfig: Enable Tenstorrent SoCs riscv: Kconfig.socs: Add ARCH_TENSTORRENT for Tenstorrent SoCs riscv: dts: Add Tenstorrent Blackhole SoC PCIe cards dt-bindings: interrupt-controller: Add Tenstorrent Blackhole compatible dt-bindings: timers: Add Tenstorrent Blackhole compatible dt-bindings: riscv: cpus: Add SiFive X280 compatible dt-bindings: riscv: Add Tenstorrent Blackhole compatible dt-bindings: vendor-prefixes: Add Tenstorrent AI ULC
2025-11-21MIPS: kernel: Fix random segmentation faultsThomas Bogendoerfer
Commit 69896119dc9d ("MIPS: vdso: Switch to generic storage implementation") switches to a generic vdso storage, which increases the number of data pages from 1 to 4. But there is only one page reserved, which causes segementation faults depending where the VDSO area is randomized to. To fix this use the same size of reservation and allocation of the VDSO data pages. Fixes: 69896119dc9d ("MIPS: vdso: Switch to generic storage implementation") Reviewed-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Reviewed-by: Huacai Chen <chenhuacai@loongson.cn> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2025-11-21MIPS: mm: Prevent a TLB shutdown on initial uniquificationMaciej W. Rozycki
Depending on the particular CPU implementation a TLB shutdown may occur if multiple matching entries are detected upon the execution of a TLBP or the TLBWI/TLBWR instructions. Given that we don't know what entries we have been handed we need to be very careful with the initial TLB setup and avoid all these instructions. Therefore read all the TLB entries one by one with the TLBR instruction, bypassing the content addressing logic, and truncate any large pages in place so as to avoid a case in the second step where an incoming entry for a large page at a lower address overlaps with a replacement entry chosen at another index. Then preinitialize the TLB using addresses outside our usual unique range and avoiding clashes with any entries received, before making the usual call to local_flush_tlb_all(). This fixes (at least) R4x00 cores if TLBP hits multiple matching TLB entries (SGI IP22 PROM for examples sets up all TLBs to the same virtual address). Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk> Fixes: 35ad7e181541 ("MIPS: mm: tlb-r4k: Uniquify TLB entries on init") Cc: stable@vger.kernel.org Reviewed-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Tested-by: Jiaxun Yang <jiaxun.yang@flygoat.com> # Boston I6400, M5150 sim Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
2025-11-21x86: Rework __bug_table helpersPeter Zijlstra
Rework the __bug_table helpers such that extension becomes easier. Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20251110115757.111187573@infradead.org
2025-11-21Merge branch 'objtool/core'Peter Zijlstra
Bring in the UDB and objtool data annotations to avoid conflicts while further extending the bug exceptions. Signed-off-by: Peter Zijlstra <peterz@infradead.org>
2025-11-21KVM: s390: vsie: Check alignment of BSCA headerEric Farman
The VSIE code currently checks that the BSCA struct fits within a page, and returns a validity exception 0x003b if it doesn't. The BSCA is pinned in memory rather than shadowed (see block comment at end of kvm_s390_cpu_feat_init()), so enforcing the CPU entries to be on the same pinned page makes sense. Except those entries aren't going to be used below the guest, and according to the definition of that validity exception only the header of the BSCA (everything but the CPU entries) needs to be within a page. Adjust the alignment check to account for that. Signed-off-by: Eric Farman <farman@linux.ibm.com> Reviewed-by: Christian Borntraeger <borntraeger@linux.ibm.com> Reviewed-by: Christoph Schlameuss <schlameuss@linux.ibm.com> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2025-11-21x86/mce: Add support for physical address valid bitAvadhut Naik
Starting with Zen6, AMD's Scalable MCA systems will incorporate two new bits in MCA_STATUS and MCA_CONFIG MSRs. These bits will indicate if a valid System Physical Address (SPA) is present in MCA_ADDR. PhysAddrValidSupported bit (MCA_CONFIG[11]) serves as the architectural indicator and states if PhysAddrV bit (MCA_STATUS[54]) is Reserved or if it indicates validity of SPA in MCA_ADDR. PhysAddrV bit (MCA_STATUS[54]) advertises if MCA_ADDR contains valid SPA or if it is implementation specific. Use and prefer MCA_STATUS[PhysAddrV] when checking for a usable address. Signed-off-by: Avadhut Naik <avadhut.naik@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://patch.msgid.link/20251118191731.181269-1-avadhut.naik@amd.com
2025-11-21x86/mce: Save and use APEI corrected threshold limitYazen Ghannam
The MCA threshold limit generally is not something that needs to change during runtime. It is common for a system administrator to decide on a policy for their managed systems. If MCA thresholding is OS-managed, then the threshold limit must be set at every boot. However, many systems allow the user to set a value in their BIOS. And this is reported through an APEI HEST entry even if thresholding is not in FW-First mode. Use this value, if available, to set the OS-managed threshold limit. Users can still override it through sysfs if desired for testing or debug. APEI is parsed after MCE is initialized. So reset the thresholding blocks later to pick up the threshold limit. Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Link: https://lore.kernel.org/20251104-wip-mca-updates-v8-0-66c8eacf67b9@amd.com
2025-11-21KVM: s390: Add capability that forwards operation exceptionsJanosch Frank
Setting KVM_CAP_S390_USER_OPEREXEC will forward all operation exceptions to user space. This also includes the 0x0000 instructions managed by KVM_CAP_S390_USER_INSTR0. It's helpful if user space wants to emulate instructions which do not (yet) have an opcode. While we're at it refine the documentation for KVM_CAP_S390_USER_INSTR0. Signed-off-by: Janosch Frank <frankja@linux.ibm.com> Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com> Acked-by: Christian Borntraeger <borntraeger@linux.ibm.com> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
2025-11-21arm64: dts: ti: k3-am62l: Fix unit address of cbass_wakeupVignesh Raghavendra
Fix the following warning with W=1: arch/arm64/boot/dts/ti/k3-am62l.dtsi:101.30-112.5: Warning (simple_bus_reg): /bus@f0000/bus@43000000: simple-bus unit address format error, expected "a80000" While at that, also remove extra space b/w label and node name. Fixes: 5f016758b0ab ("arm64: dts: ti: k3-am62l: add initial infrastructure") Link: https://patch.msgid.link/20251120143419.223238-1-vigneshr@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-11-21arm64: dts: ti: k3-j721e-sk: Fix pinmux for pin Y1 used by power regulatorSiddharth Vadapalli
The SoC pin Y1 is incorrectly defined in the WKUP Pinmux device-tree node (pinctrl@4301c000) leading to the following silent failure: pinctrl-single 4301c000.pinctrl: mux offset out of range: 0x1dc (0x178) According to the datasheet for the J721E SoC [0], the pin Y1 belongs to the MAIN Pinmux device-tree node (pinctrl@11c000). This is confirmed by the address of the pinmux register for it on page 142 of the datasheet which is 0x00011C1DC. Hence fix it. [0]: https://www.ti.com/lit/ds/symlink/tda4vm.pdf Fixes: 97b67cc102dc ("arm64: dts: ti: k3-j721e-sk: Add DT nodes for power regulators") Cc: stable@vger.kernel.org Signed-off-by: Siddharth Vadapalli <s-vadapalli@ti.com> Reviewed-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com> Link: https://patch.msgid.link/20251119160148.2752616-1-s-vadapalli@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-11-21arm64: dts: ti: Add missing applied DT overlay targetsRob Herring (Arm)
It's a requirement that DT overlays be applied at build time in order to validate them as overlays are not validated on their own. Add the missing TI overlays. Some of the TI overlays have the first part needed (a "*-dtbs" variable), but not the second part adding the target to dtb-y/dtb- variable. Signed-off-by: Rob Herring (Arm) <robh@kernel.org> [vigneshr@ti.com: create new target for J721e GESI EVM] Link: https://patch.msgid.link/20251120141936.190796-1-vigneshr@ti.com Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-11-21Merge tag 'v6.18-rc6' into drm-nextDave Airlie
Linux 6.18-rc6 Backmerge in order to merge msm next Signed-off-by: Dave Airlie <airlied@redhat.com>
2025-11-20arm64: dts: rockchip: Use default-state for power LED for Radxa boardsFUKAUMI Naoki
Currently, on Radxa boards, the power LED is turned on immediately after power-up, independent of software control. The heartbeat LED and other available LEDs are subsequently turned on by the initial software, such as U-Boot, to indicate software is running. However, the device tree description for this behavior is inconsistent and fragmented, with definitions split between the main Linux DTS files and separate U-Boot files (u-boot/arch/arm/dts/*-u-boot.dtsi). This patch addresses the inconsistency for the power LED by using default-state = "on" instead of linux,default-trigger = "default-on". Signed-off-by: FUKAUMI Naoki <naoki@radxa.com> Reviewed-by: Dragan Simic <dsimic@manjaro.org> Link: https://patch.msgid.link/20251113124222.4691-2-naoki@radxa.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: fix PCIe 3.3V regulator voltage on 9Tripod X3568 v4Coia Prant
The regulator type is "regulator-fixed" since its voltage always be 3.3v, min and max should be 3300000 make the regulator has a voltage The regulator is supplied by dc_12v, so add the vin-supply. Link: https://github.com/rockchip-linux/kernel/commit/17e9559f67d26f3c602e38a24feb5194e51ac782 Signed-off-by: Coia Prant <coiaprant@gmail.com> Link: https://patch.msgid.link/20251114092114.62664-2-coiaprant@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Add power-domain to RK3368 VOP controllerHeiko Stuebner
The VOP is also part of the VIO power-domain and it definitely needs to be on when accessing it to not cause SError faults, so add the power-domains property to it. Fixes: ef06b5ddee1e ("arm64: dts: rockchip: Add display subsystem for RK3368") Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de> Link: https://patch.msgid.link/20251021074254.87065-6-heiko@sntech.de Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Add power-domain to RK3368 DSI controllerHeiko Stuebner
The DSI controller is also part of the VIO power-domain and it definitely needs to be on when accessing it to not cause SError faults, so add the power-domains property to it. Fixes: 5023d0cd6183 ("arm64: dts: rockchip: Add DSI for RK3368") Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de> Link: https://patch.msgid.link/20251021074254.87065-5-heiko@sntech.de Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Add host wake pin for wifi on Indiedroid NovaChris Morgan
Add the pin definition for the host wake interrupt on the Indiedroid Nova. This necessitates adding a node for the wifi controller to properly define the interrupt. Additionally, we can consolidate both pinctrl definitions under a wifi node to note their common functionality. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Link: https://patch.msgid.link/20251118223048.4531-5-macroalpha82@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Correct pinctrl for pcie for Indiedroid NovaChris Morgan
Correct the pin definitions of the PCIE controller on the Indiedroid Nova according to the schematics. Since GPIO3 D1 is already defined as a reset pin in the rk3588-base-pinctrl.dtsi file we do not need a custom definition anymore. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Link: https://patch.msgid.link/20251118223048.4531-4-macroalpha82@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Define regulator for pcie2x1l2 on Indiedroid NovaChris Morgan
Add the correct regulator defined per the schematics to the PCIE interface for the Indiedroid Nova. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Link: https://patch.msgid.link/20251118223048.4531-3-macroalpha82@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20lib: mul_u64_u64_div_u64(): optimise multiply on 32bit x86David Laight
gcc generates horrid code for both ((u64)u32_a * u32_b) and (u64_a + u32_b). As well as the extra instructions it can generate a lot of spills to stack (including spills of constant zeros and even multiplies by constant zero). mul_u32_u32() already exists to optimise the multiply. Add a similar add_u64_32() for the addition. Disable both for clang - it generates better code without them. Move the 64x64 => 128 multiply into a static inline helper function for code clarity. No need for the a/b_hi/lo variables, the implicit casts on the function calls do the work for us. Should have minimal effect on the generated code. Use mul_u32_u32() and add_u64_u32() in the 64x64 => 128 multiply in mul_u64_add_u64_div_u64(). Link: https://lkml.kernel.org/r/20251105201035.64043-8-david.laight.linux@gmail.com Signed-off-by: David Laight <david.laight.linux@gmail.com> Reviewed-by: Nicolas Pitre <npitre@baylibre.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Borislav Betkov <bp@alien8.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Li RongQing <lirongqing@baidu.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleinxer <tglx@linutronix.de> Cc: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-11-20lib: add mul_u64_add_u64_div_u64() and mul_u64_u64_div_u64_roundup()David Laight
The existing mul_u64_u64_div_u64() rounds down, a 'rounding up' variant needs 'divisor - 1' adding in between the multiply and divide so cannot easily be done by a caller. Add mul_u64_add_u64_div_u64(a, b, c, d) that calculates (a * b + c)/d and implement the 'round down' and 'round up' using it. Update the x86-64 asm to optimise for 'c' being a constant zero. Add kerndoc definitions for all three functions. Link: https://lkml.kernel.org/r/20251105201035.64043-5-david.laight.linux@gmail.com Signed-off-by: David Laight <david.laight.linux@gmail.com> Reviewed-by: Nicolas Pitre <npitre@baylibre.com> Cc: Biju Das <biju.das.jz@bp.renesas.com> Cc: Borislav Betkov <bp@alien8.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Ingo Molnar <mingo@redhat.com> Cc: Jens Axboe <axboe@kernel.dk> Cc: Li RongQing <lirongqing@baidu.com> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleinxer <tglx@linutronix.de> Cc: Uwe Kleine-König <u.kleine-koenig@baylibre.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-11-20arm64: dts: rockchip: Add clk32k_in for Indiedroid NovaChris Morgan
The clk32k_in pin of the SoC is connected to the real time clock according to the schematics. Set the pin definition on the real time clock to reflect this. Signed-off-by: Chris Morgan <macromorgan@hotmail.com> Link: https://patch.msgid.link/20251118223048.4531-2-macroalpha82@gmail.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device treeMichael Opdenacker
Add initial device tree support for Asus Tinker Board 3 [1] and 3S [2], which are SBCs based on the Rockchip 3566 SoC. The "3S" version ("S" for "storage") just adds a 16 GB eMMC and a "mask ROM" DIP switch (to mask the eMMC and enter "Mask ROM" mode for recovery) to the "3" version. This adds support for: - Debug UART (/dev/ttyS2) - SD card (/dev/mmcblk1) - eMMC (/dev/mmcblk0, only on Tinker Board 3S) - I2C: - i2c0 (internal bus with a PMIC and regulators) - i2c2 (internal bus with an at24 eeprom and an RTC device) - USB 2.0 ports - 2 GPIO LEDS [1] https://tinker-board.asus.com/series/tinker-board-3.html [2] https://tinker-board.asus.com/series/tinker-board-3s.html Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com> Link: https://patch.msgid.link/20251118-tinker3-v3-2-2903693f2ebb@rootcommit.com Signed-off-by: Heiko Stuebner <heiko@sntech.de>
2025-11-20sched: Provide and use set_need_resched_current()Peter Zijlstra
set_tsk_need_resched(current) requires set_preempt_need_resched(current) to work correctly outside of the scheduler. Provide set_need_resched_current() which wraps this correctly and replace all the open coded instances. Signed-off-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://patch.msgid.link/20251116174750.665769842@linutronix.de
2025-11-20x86/boot: Drop unused sev_enable() fallbackArd Biesheuvel
The misc.h header is not included by the EFI stub, which is the only C caller of sev_enable(). This means the fallback for cases where CONFIG_AMD_MEM_ENCRYPT is not set is never used, so it can be dropped. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com> Link: https://patch.msgid.link/20250909080631.2867579-6-ardb+git@google.com
2025-11-20arm64: dts: rockchip: add QNAP TS233 devicetreeHeiko Stuebner
The TS233 is a 2 bay NAS similar to the TS433. Architecture-wise it really seems to be the same minus the additional PCIe connected components the TS433 has. So it just uses two of the SoCs SATA ports and the SoC's gigabit ethernet. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patch.msgid.link/20251112214206.423244-6-heiko@sntech.de
2025-11-20arm64: dts: rockchip: move common qnap tsx33 parts to dtsiHeiko Stuebner
The NAS series based around the rk3568 contains a number of models with 1-4 drives, that reuse most of the board structure. Therefore move the shared parts to a dtsi, to be included by the devices. As the smallest device is the 1-bay TS133, keep everything > slot1 in the individual devicetree. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patch.msgid.link/20251112214206.423244-4-heiko@sntech.de
2025-11-20arm64: dts: rockchip: describe mcu eeprom cells on rk3568-ts433Heiko Stuebner
The MCU's eeprom contains the unit's serial and a number of slots for mac-addresses. As the MCU seems to be used in different devices, up to 8 mac addresses can live there and the unused slots are actually initialized with empty mac-address strings like 00:00:00:00:05:09 . Interestingly on the TS-433, the PCIe ethernet adapter brings its own memory to hold its mac, and the gmac0 is supposed to get its mac from the second mac-slot, while the first one stays empty. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patch.msgid.link/20251112214206.423244-3-heiko@sntech.de
2025-11-20arm64: dts: rockchip: move cpu_thermal node to the correct positionHeiko Stuebner
The &cpu_thermal node was added at the wrong position, move it to the correctly sorted one. Signed-off-by: Heiko Stuebner <heiko@sntech.de> Link: https://patch.msgid.link/20251112214206.423244-2-heiko@sntech.de
2025-11-20Merge tag 'reset-gpio-for-v6.19' of https://git.pengutronix.de/git/pza/linux ↵Bartosz Golaszewski
into gpio/for-next Reset/GPIO/swnode changes for v6.19 * Extend software node implementation, allowing its properties to reference existing firmware nodes. * Update the GPIO property interface to use reworked swnode macros. * Rework reset-gpio code to use GPIO lookup via swnode. * Fix spi-cs42l43 driver to work with swnode changes.
2025-11-20arm64: remove duplicate ARCH_HAS_MEM_ENCRYPTCai Xinchen
The commit e7bafbf717775 ("arm64: mm: Add top-level dispatcher for internal mem_encrypt API") adds ARCH_HAS_MEM_ENCRYPT. And then the commit 42be24a4178fe ("arm64: Enable memory encrypt for Realms") adds duplicate config. Just remove it. Fixes: 42be24a4178f ("arm64: Enable memory encrypt for Realms") Signed-off-by: Cai Xinchen <caixinchen1@huawei.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2025-11-20arm64: mm: use untagged address to calculate page indexYang Shi
Nathan Chancellor reported the below bug: [ 0.149929] BUG: KASAN: invalid-access in change_memory_common+0x258/0x2d0 [ 0.151006] Read of size 8 at addr f96680000268a000 by task swapper/0/1 [ 0.152031] [ 0.152274] CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1-00012-g37cb0aab9068 #1 PREEMPT [ 0.152288] Hardware name: linux,dummy-virt (DT) [ 0.152292] Call trace: [ 0.152295] show_stack+0x18/0x30 (C) [ 0.152309] dump_stack_lvl+0x60/0x80 [ 0.152320] print_report+0x480/0x498 [ 0.152331] kasan_report+0xac/0xf0 [ 0.152343] kasan_check_range+0x90/0xb0 [ 0.152353] __hwasan_load8_noabort+0x20/0x34 [ 0.152364] change_memory_common+0x258/0x2d0 [ 0.152375] set_memory_ro+0x18/0x24 [ 0.152386] bpf_prog_pack_alloc+0x200/0x2e8 [ 0.152397] bpf_jit_binary_pack_alloc+0x78/0x188 [ 0.152409] bpf_int_jit_compile+0xa4c/0xc74 [ 0.152420] bpf_prog_select_runtime+0x1c0/0x2bc [ 0.152430] bpf_prepare_filter+0x5a4/0x7c0 [ 0.152443] bpf_prog_create+0xa4/0x100 [ 0.152454] ptp_classifier_init+0x80/0xd0 [ 0.152465] sock_init+0x12c/0x178 [ 0.152474] do_one_initcall+0xa0/0x260 [ 0.152484] kernel_init_freeable+0x2d8/0x358 [ 0.152495] kernel_init+0x20/0x140 [ 0.152510] ret_from_fork+0x10/0x20 It is because the KASAN tagged address was used when calculating the page index. The untagged address should be used. Fixes: 37cb0aab9068 ("arm64: mm: make linear mapping permission update more robust for patial range") Reported-by: Nathan Chancellor <nathan@kernel.org> Tested-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Yang Shi <yang@os.amperecomputing.com> Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2025-11-20Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/netJakub Kicinski
Cross-merge networking fixes after downstream PR (net-6.18-rc7). No conflicts, adjacent changes: tools/testing/selftests/net/af_unix/Makefile e1bb28bf13f4 ("selftest: af_unix: Add test for SO_PEEK_OFF.") 45a1cd8346ca ("selftests: af_unix: Add tests for ECONNRESET and EOF semantics") Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2025-11-20KVM: x86: Remove unused declaration kvm_mmu_may_ignore_guest_pat()Yue Haibing
Commit 3fee4837ef40 ("KVM: x86: remove shadow_memtype_mask") removed the functions but leave this declaration. Signed-off-by: Yue Haibing <yuehaibing@huawei.com> Link: https://patch.msgid.link/20251120120930.1448593-1-yuehaibing@huawei.com Signed-off-by: Sean Christopherson <seanjc@google.com>
2025-11-20KVM: x86: Enable support for emulating AVX MOV instructionsPaolo Bonzini
Some users of KVM have emulated devices (typically added to private forks of QEMU) that execute AVX instructions on PCI BARs. Whenever the guest OS tries to do that, an illegal instruction exception or emulation failure is triggered. Add the Avx flag to move instructions: - (66) 0f 10 - MOVUPS/MOVUPD from memory - (66) 0f 11 - MOVUPS/MOVUPD to memory - 66 0f 6f - MOVDQA from memory - 66 0f 7f - MOVDQA to memory - f3 0f 6f - MOVDQU from memory - f3 0f 7f - MOVDQU to memory - (66) 0f 28 - MOVAPS/MOVAPD from memory - (66) 0f 29 - MOVAPS/MOVAPD to memory - (66) 0f 2b - MOVNTPS/MOVNTPD to memory - 66 0f e7 - MOVNTDQ to memory - 66 0f 38 2a - MOVNTDQA to memory Co-developed-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Keith Busch <kbusch@kernel.org> Link: https://lore.kernel.org/kvm/BD108C42-0382-4B17-B601-434A4BD038E7@fb.com/T/ Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Link: https://patch.msgid.link/20251114003633.60689-11-pbonzini@redhat.com Signed-off-by: Sean Christopherson <seanjc@google.com>
2025-11-20arm64: dts: ti: sa67: add build time dtb for overlaysMichael Walle
Since commit d8c8a575f5aa ("kbuild: Ensure .dtbo targets are applied to a base .dtb") kbuild will throw a warning for any stray overlays. Add a new .dtb which will only be build if CONFIG_OF_ALL_DTBS is enabled. Signed-off-by: Michael Walle <mwalle@kernel.org> Link: https://patch.msgid.link/20251120080138.2397851-1-mwalle@kernel.org Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-11-20arm64: dts: ti: Enable build testing of PHYTEC board overlaysWadim Egorov
Add missing PHYTEC overlay build targets so they are included in CONFIG_OF_ALL_DTBS coverage. This ensures all PHYTEC board-overlay combinations are apply-tested during build time testing. Signed-off-by: Wadim Egorov <w.egorov@phytec.de> Link: https://patch.msgid.link/20251119123216.1481420-1-w.egorov@phytec.de Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
2025-11-20LoongArch: BPF: Disable trampoline for kernel module function traceVincent Li
The current LoongArch BPF trampoline implementation is incompatible with tracing functions in kernel modules. This causes several severe and user-visible problems: * The `bpf_selftests/module_attach` test fails consistently. * Kernel lockup when a BPF program is attached to a module function [1]. * Critical kernel modules like WireGuard experience traffic disruption when their functions are traced with fentry [2]. Given the severity and the potential for other unknown side-effects, it is safest to disable the feature entirely for now. This patch prevents the BPF subsystem from allowing trampoline attachments to kernel module functions on LoongArch. This is a temporary mitigation until the core issues in the trampoline code for kernel module handling can be identified and fixed. [root@fedora bpf]# ./test_progs -a module_attach -v bpf_testmod.ko is already unloaded. Loading bpf_testmod.ko... Successfully loaded bpf_testmod.ko. test_module_attach:PASS:skel_open 0 nsec test_module_attach:PASS:set_attach_target 0 nsec test_module_attach:PASS:set_attach_target_explicit 0 nsec test_module_attach:PASS:skel_load 0 nsec libbpf: prog 'handle_fentry': failed to attach: -ENOTSUPP libbpf: prog 'handle_fentry': failed to auto-attach: -ENOTSUPP test_module_attach:FAIL:skel_attach skeleton attach failed: -524 Summary: 0/0 PASSED, 0 SKIPPED, 1 FAILED Successfully unloaded bpf_testmod.ko. [1]: https://lore.kernel.org/loongarch/CAK3+h2wDmpC-hP4u4pJY8T-yfKyk4yRzpu2LMO+C13FMT58oqQ@mail.gmail.com/ [2]: https://lore.kernel.org/loongarch/CAK3+h2wYcpc+OwdLDUBvg2rF9rvvyc5amfHT-KcFaK93uoELPg@mail.gmail.com/ Cc: stable@vger.kernel.org Fixes: f9b6b41f0cf3 ("LoongArch: BPF: Add basic bpf trampoline support") Acked-by: Hengqi Chen <hengqi.chen@gmail.com> Signed-off-by: Vincent Li <vincent.mc.li@gmail.com> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-20LoongArch: Don't panic if no valid cache info for PCIHuacai Chen
If there is no valid cache info detected (may happen in virtual machine) for pci_dfl_cache_line_size, kernel shouldn't panic. Because in the PCI core it will be evaluated to (L1_CACHE_BYTES >> 2). Cc: <stable@vger.kernel.org> Signed-off-by: Jiaxun Yang <jiaxun.yang@flygoat.com> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-20LoongArch: Mask all interrupts during kexec/kdumpHuacai Chen
If the default state of the interrupt controllers in the first kernel don't mask any interrupts, it may cause the second kernel to potentially receive interrupts (which were previously allocated by the first kernel) immediately after a CPU becomes online during its boot process. These interrupts cannot be properly routed, leading to bad IRQ issues. This patch calls machine_kexec_mask_interrupts() to mask all interrupts during the kexec/kdump process. Signed-off-by: Tianyang Zhang <zhangtianyang@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-20LoongArch: Fix NUMA node parsing with numa_memblksBibo Mao
On physical machine, NUMA node id comes from high bit 44:48 of physical address. However it is not true on virt machine. With general method, it comes from ACPI SRAT table. Here the common function numa_memblks_init() is used to parse NUMA node information with numa_memblks. Cc: <stable@vger.kernel.org> Signed-off-by: Bibo Mao <maobibo@loongson.cn> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-20LoongArch: Consolidate CPU names in /proc/cpuinfoHuacai Chen
Some processors have no IOCSR.VENDOR and IOCSR.CPUNAME, some processors have these registers but there is no valid information. Consolidate CPU names in /proc/cpuinfo: 1. Add "PRID" to display the PRID & Core-Name; 2. Let "Model Name" display "Unknown" if no valid name. Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-20LoongArch: Use UAPI types in ptrace UAPI headerThomas Weißschuh
The kernel UAPI headers already contain fixed-width integer types, there is no need to rely on the libc types. There may not be a libc available or the libc may not provides the <stdint.h>, like for example on nolibc. This also aligns the header with the rest of the LoongArch UAPI headers. Fixes: 803b0fc5c3f2 ("LoongArch: Add process management") Signed-off-by: Thomas Weißschuh <linux@weissschuh.net> Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
2025-11-19KVM: x86: Add emulator support for decoding VEX prefixesPaolo Bonzini
After all the changes done in the previous patches, the only thing left to support AVX MOV instructions is to expand the VEX prefix into the appropriate REX, 66/F3/F2 and map prefixes. Three-operand instructions are not supported. The Avx bit in this case is not cleared, in fact it is used as the sign that the instruction does support VEX encoding. Until it is added to any instruction, however, the only functional change is to change some not-implemented instructions to #UD if they correspond to a VEX prefix with an invalid map. Co-developed-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Keith Busch <kbusch@kernel.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Link: https://patch.msgid.link/20251114003633.60689-10-pbonzini@redhat.com Signed-off-by: Sean Christopherson <seanjc@google.com>
2025-11-19KVM: x86: Refactor REX prefix handling in instruction emulationChang S. Bae
Restructure how to represent and interpret REX fields, preparing for handling of both REX2 and VEX. REX uses the upper four bits of a single byte as a fixed identifier, and the lower four bits containing the data. VEX and REX2 extends this so that the first byte identifies the prefix and the rest encode additional bits; and while VEX only has the same four data bits as REX, eight zero bits are a valid value for the data bits of REX2. So, stop storing the REX byte as-is. Instead, store only the low bits of the REX prefix and track separately whether a REX-like prefix was used. No functional changes intended. Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com> Message-ID: <20251110180131.28264-11-chang.seok.bae@intel.com> [Extracted from APX series; removed bitfields and REX2-specific default. - Paolo] Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Link: https://patch.msgid.link/20251114003633.60689-9-pbonzini@redhat.com [sean: name REX_{BXRW} enum "rex_bits"] Signed-off-by: Sean Christopherson <seanjc@google.com>