summaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
13 daysarm64: tegra: Enable GPIO keys on Jetson AGX ThorThierry Reding
The power and force-recovery keys are mapped to standard GPIOs so they can be enabled for all derived boards. In addition, the power key can be used to wake the system from sleep, so it needs to be marked as a wakeup source. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Use consistent key code for force-recovery buttonThierry Reding
Some boards use the KEY_SLEEP input key code for the force-recovery button, whereas others use BTN_1. The latter isn't valid because it only applies to devices marked CAP_POINTER. Use KEY_SLEEP consistently for all devices. On certain Tegra234 devices there are definitions for a suspend key that uses KEY_SLEEP, but I couldn't find any references to this key in any of the board documents, so remove them. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Fix up cooling map names on Tegra210Thierry Reding
Cooling map nodes should be prefixed with map-, so make the necessary adjustments on Tegra210. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Fix up cooling map names on Tegra186Thierry Reding
Cooling map nodes should be prefixed with map-, so make the necessary adjustments on Tegra186. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Fix up cooling map names on Tegra194Thierry Reding
Cooling map nodes should be prefixed with map-, so make the necessary adjustments on Tegra194. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Clean up some whitespace issues on Tegra264Thierry Reding
Properly align property names and values, and remove gratuitous wrapping. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Clean up AHUB on Tegra264Thierry Reding
Use #address-cells = <1> and #size-cells = <1> because we don't need 64-bit register addressing for this hardware. While at it, also adjust the ranges property to encompass the entire AHUB range as per the TRM. Signed-off-by: Thierry Reding <treding@nvidia.com> --- Changes in v2: - remove strange rebase artifact
13 daysarm64: tegra: Clean up AHUB on Tegra234Thierry Reding
Use #address-cells = <1> and #size-cells = <1> because we don't need 64-bit register addressing for this hardware. While at it, also adjust the ranges property to encompass the entire AHUB range as per the TRM. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Clean up AHUB on Tegra194Thierry Reding
Use #address-cells = <1> and #size-cells = <1> because we don't need 64-bit register addressing for this hardware. While at it, also adjust the ranges property to encompass the entire AHUB range as per the TRM. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Clean up AHUB on Tegra186Thierry Reding
Use #address-cells = <1> and #size-cells = <1> because we don't need 64-bit register addressing for this hardware. While at it, also adjust the ranges property to encompass the entire AHUB range as per the TRM. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Adjust AHUB range on Tegra210Thierry Reding
The AHUB range is a full 64 KiB according to the TRM, so update the ranges property accordingly. This is merely cosmetic. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysarm64: tegra: Clean up AHUB on Tegra132Thierry Reding
Use #address-cells = <1> and #size-cells = <1> because we don't need 64-bit register addressing for this hardware. While at it, also adjust the ranges property to encompass the entire AHUB range as per the TRM. Signed-off-by: Thierry Reding <treding@nvidia.com>
13 daysx86/mm: Don't force unencrypted DMA for IOMMU-backed devicesAneesh Kumar K.V (Arm)
Commit 8277a12d0d60 ("dma-pool: track decrypted atomic pools and select them via attrs") exposed an issue with force_dma_unencrypted() on systems using host memory encryption. force_dma_unencrypted() checks whether the device DMA mask can address the encryption bit and, if not, requires DMA allocations to use unencrypted memory. However, this check is not applicable when the device is using the IOMMU. In that case, the device DMA mask constrains the IOVA seen by the device, not the backing physical address, so it does not need to cover the C-bit. This currently causes dma_alloc_attrs() to set __DMA_ATTR_ALLOC_CC_SHARED for such devices. iommu_dma_alloc() does not support that attribute and rejects the allocation, causing DMA allocations to fail. Do not force DMA allocations to be unencrypted when the device is using the IOMMU. This allows the IOMMU to map the encrypted physical pages as before and avoids incorrectly requesting CC_SHARED allocations. Fixes: 8277a12d0d60 ("dma-pool: track decrypted atomic pools and select them via attrs") Reported-by: Timo Witte <timo.witte@gmail.com> Closes: https://lore.kernel.org/all/CANB4YXS=Nf-co3t8eMHtqrW4sn=1BDcP6o=EoTrgZm0WYMYTyw@mail.gmail.com/ Signed-off-by: Aneesh Kumar K.V (Arm) <aneesh.kumar@kernel.org> Link: https://lore.kernel.org/r/20260908113232.247457-1-aneesh.kumar@kernel.org [mszyprow: adjusted url and changed 'link' tag to the 'closes' one] Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
13 dayscrypto: hisilicon/sec - remove SEC crypto block cipher acceleratorChenghai Huang
The Hisilicon SEC crypto cipher accelerator has been superseded by the newer SEC2 driver (drivers/crypto/hisilicon/sec2/). SEC2 provides wider algorithm coverage and is the maintained path forward, and users have migrated to it. The legacy SEC driver has had no active users for some time, and its primary maintainer, Jonathan Cameron, has moved on from Huawei and is no longer in a position to maintain it. With thanks to Jonathan for his contributions to this driver over the years, and with no one left to keep it up to date, remove it from the tree. This drops the legacy SEC driver together with all of its residual configuration, devicetree binding and board description references: - drivers/crypto/hisilicon/sec/ - CONFIG_CRYPTO_DEV_HISI_SEC Kconfig option - sec/ entry from drivers/crypto/hisilicon/Makefile - Documentation/devicetree/bindings/crypto/hisilicon,hip06-sec.yaml - hisilicon,hip07-sec device nodes and their supporting mbigen_alg / smmu_alg infrastructure from arch/arm64/boot/dts/hisilicon/hip07.dtsi Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Reviewed-by: Longfang Liu <liulongfang@huawei.com> Acked-by: Eric Biggers <ebiggers@kernel.org> Acked-by: Wei Xu <xuwei5@hisilicon.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@oss.qualcomm.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
13 daysarm64: dts: qcom: glymur: Add Lenovo Yoga Slim 7x Gen11Konrad Dybcio
Introduce a device tree for the Glymur-based Lenovo Yoga Slim 7x Gen11 laptop. It's fairly similar to the reference design, although there are a couple of major differences, including a different EC. Currently working: - Audio playback and capture - GPU, Display - Keyboard, touchpad, touchscreen, lid switch - Privacy LED - Charging, Type-C - Wi-Fi, Bluetooth - Modem should work on the SKUs that have it, but it remains untested due to lack of access to such a device Co-developed-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com> Co-developed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Tested-by: Oleg Keri <okerixx@gmail.com> Link: https://lore.kernel.org/r/20260731-topic-yoga_submission-v2-2-f1887031da4f@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysx86/amd_node: Fix PCI device reference counting in amd_smn_init()Yazen Ghannam
The local "root" pointer is a temporary variable used during the device search. Therefore, refcount related to the search iterators should be cleaned up after the search is complete. Use the __free() cleanup macro to ensure the refcount is decremented when the temporary pointer goes out of scope. Additionally, increment the refcount when caching a root pointer. This ensures the in-use refcount is separate from the temporary search refcounting. Finally, drop the redundant "root = NULL" before the second search loop. The pci_get_class() iterator always decrements the refcount of its "from" argument, so the first loop can only fall through with "root" already NULL. Fixes: 0a4b61d9c2e4 ("x86/amd_node: Fix AMD root device caching") Closes: https://sashiko.dev/#/patchset/20260806160159.230453-1-jason.andryuk%40amd.com Reported-by: Sashiko <sashiko-bot@kernel.org> Assisted-by: LLM Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Mario Limonciello (AMD) <superm1@kernel.org> Cc: <stable@kernel.org> Link: https://patch.msgid.link/20260903154325.74343-1-yazen.ghannam@amd.com
13 daysriscv: dts: spacemit: enable onboard eeprom for OrangePiChukun Pan
Enable the i2c2 bus and add the connected GT24C02B EEPROM. [ 6.766] TlvInfo Header: [ 6.766] Id String: TlvInfo [ 6.769] Version: 1 [ 6.772] Total Length: 38 [ 6.775] TLV Name Code Len Value [ 6.779] -------------------- ---- --- ----- [ 6.783] Base MAC Address 0x24 6 ..... [ 6.788] MAC Addresses 0x2A 2 2 [ 6.792] Product Name 0x21 15 x1_orangepi-r2s [ 6.797] Unknown 0x41 1 0x01 [ 6.801] CRC-32 0xFE 4 0xE5A74B18 [ 6.806] Checksum is valid. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Tested-by: Gong Shuai <gsh517025@gmail.com> # OrangePi-RV2 Reviewed-by: Yixun Lan <dlan@kernel.org> Link: https://patch.msgid.link/20260901080010.95040-1-amadeus@jmu.edu.cn Signed-off-by: Yixun Lan <dlan@kernel.org>
13 daysriscv: dts: spacemit: sort nodes on OrangePi RV2Chukun Pan
Sort the nodes for DT. Also reorder the properties of the sdhci0 node. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Acked-by: Yixun Lan <dlan@kernel.org> Link: https://patch.msgid.link/20260802100101.327815-1-amadeus@jmu.edu.cn Signed-off-by: Yixun Lan <dlan@kernel.org>
13 daysarm64: dts: qcom: eliza: Connect USB3 PHY pipe clock to GCCAbel Vesa
The GCC USB3 primary PHY pipe clock is sourced by the USB3 pipe output of the USB/DP QMP PHY. The corresponding GCC clock input was left as an empty clock specifier when the USB nodes were added. Connect the QMP PHY USB3 output to GCC so the USB3 PHY pipe clock can propagate to the USB controller. Fixes: 88ddafb01ec0 ("arm64: dts: qcom: eliza: Describe the ADSP and USB related nodes") Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260826-dts-qcom-eliza-add-missing-usb-dp-phy-clk-to-gcc-v2-1-bf6746a849ba@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: Drop redundant qcom-rpmpd.h includesShawn Guo
qcom-rpmpd.h already includes qcom,rpmhpd.h via its own #include directive, so any DTS file including both headers carries a redundant include. All affected files only reference RPMH_* constants (defined in qcom,rpmhpd.h) and none use RPMPD_* constants, so drop the superfluous qcom-rpmpd.h includes. Assisted-by: LLM Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Reviewed-by: Taniya Das <taniya.das@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260826085323.539860-1-shengchao.guo@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: Drop deprecated qcom,bus-id from SPMI nodesShawn Guo
The qcom,bus-id property was deprecated by commit 345fbbca3f76 ("dt-bindings: spmi: Deprecate qcom,bus-id"). The property is not referenced anywhere in the spmi-pmic-arb driver, so the value has no effect at all. Drop it from the remaining users to avoid spreading. No functional change intended. Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260830122633.203250-1-shengchao.guo@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: defconfig: Enable QMP PCIe Multi-PHY driverQiang Yu
Enable CONFIG_PHY_QCOM_QMP_PCIE_MULTIPHY as a module to support the shared PCIe3 PHY used by PCIe3a and PCIe3b on the Qualcomm Glymur SoC. Signed-off-by: Qiang Yu <qiang.yu@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260825-glymur_linkmode_0826-v10-5-56ab597d77e4@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: sm7225-fairphone-fp4: Disable PMK8350 PONLuca Weiss
Two PMICs on this phone have a PON block, the PM6350 and PMK8350. Only one should be enabled at one time, so disable PMK8350 PON and keep the PM6350 PON. Fixes: 582e7c1026fa ("arm64: dts: qcom: sm7225-fairphone-fp4: Add pmk8350 PMIC") Signed-off-by: Luca Weiss <luca.weiss@fairphone.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260901-fp4-pmk8350-pon-v1-1-e05937e9c860@fairphone.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: talos: Add RPi Touch Display 2 5-inch overlayAbhishek Thomas Varghese
Add a DT overlay to connect the Raspberry Pi Touch Display 2 5-inch panel to DSI0 on the Qualcomm IQ615/QCS615 EVK. The overlay describes the display controller, panel, touch controller, power supplies, and backlight. Disable the ADV7511 bridge to avoid a conflicting device on DSI virtual channel 0. Display output, touch input, backlight control, and concurrent DisplayPort operation have been tested. Signed-off-by: Abhishek Thomas Varghese <tessolveupstream@gmail.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260901-talos-rpi-touch-display-v2-1-40f0e92b2071@gmail.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza-cqs-som: Enable Adreno A722 GPUAbel Vesa
Enable the Adreno 722 GPU on the Eliza CQS SoM board and provide the zap shader firmware path. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260902-dts-qcom-eliza-evk-enable-gpu-v2-1-51b452a460a2@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: shikra: enable ST33 TPMKhalid Faisal Ansari
Enable ST33HTPM TPM over SPI5 on the Shikra IoT EVK by adding the required SPI and TPM nodes. Signed-off-by: Khalid Faisal Ansari <khalid.ansari@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260903-shikra-dtpm-v5-2-e8ea3ac8a135@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza-mtp: Add support for SD cardAbel Vesa
The MTP comes with an SD card slot. So enable the second SD host controller, describe the card detect GPIO and the board-specific supplies, in order to provide support for the SD card. Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260903-dts-qcom-eliza-mtp-add-sd-card-support-v1-1-25c906b12707@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza-evk: Add power and volume keysAbel Vesa
The Eliza EVK has three tactile switches: SYS_ON, Volume Down, and Volume Up. Enable the existing PMK8550 PON power and resin keys for SYS_ON and Volume Down. Describe Volume Up, which is connected to PM7550 GPIO6. Do this in the Eliza EVK dtsi so it can be reused by the Eliza CQM EVK board. Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260903-dts-qcom-eliza-evk-add-volume-up-v2-1-375fc9ecc3b6@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza-cqs-som: Enable CDSP remoteprocAbel Vesa
Enable the CDSP remoteproc node on the Eliza CQS SoM by providing the firmware names and marking the node as available. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260904-dts-qcom-eliza-add-cdsp-v6-3-d4f38936902e@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza-mtp: Enable CDSP remoteprocAbel Vesa
Enable the CDSP remoteproc node on the Eliza MTP by providing the firmware names and marking the node as available. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260904-dts-qcom-eliza-add-cdsp-v6-2-d4f38936902e@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: eliza: Describe the CDSP remoteprocAbel Vesa
Describe the CDSP remoteproc along with the glink-edge subnode and the related SMP2P. FastRPC subnode will be added later. Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Signed-off-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260904-dts-qcom-eliza-add-cdsp-v6-1-d4f38936902e@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysarm64: dts: qcom: x1e80100-medion-sprchrgd-14-s1: Drop NOP overrideKonrad Dybcio
Commit d12cd85a4ff4 ("arm64: dts: qcom: hamoa: Add sound DAI prefixes for DP") took care of adding the prefixes for all Hamoa devices, drop the unnecessary override. Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260907-topic-medion_touchup-v1-1-10267ae55aae@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysx86/div64: Fix addition of large constants in mul_u64_add_u64_div_u64()David Laight
Adding constants over 2^31 fails to compile because the ADD instruction only supports 32bit signed immediates. Replace the "irm" constraint with "erm" so that the compiler loads large constants into a register. Found by a patch to drivers/iio/frequency/ad9910.c [ bp: Massage commit message. ] Fixes: 6480241f31f5 ("lib: add mul_u64_add_u64_div_u64() and mul_u64_u64_div_u64_roundup()") Signed-off-by: David Laight <david.laight.linux@gmail.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: H. Peter Anvin <hpa@zytor.com> Link: https://patch.msgid.link/20260803094702.3852-2-david.laight.linux@gmail.com
13 daysarm64: dts: qcom: glymur-asus-zenbook-a16: Fix up the mic sample rateKonrad Dybcio
Set the correct value for the hardware, matching the readout from Windows during audio recording. The microphone seems to work fine either way. Fixes: e8fbbca94db7 ("arm64: dts: qcom: glymur: Add Asus Zenbook A16 (UX3607OA)") Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Abel Vesa <abel.vesa@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260910-topic-zenbook_mic_sampling-v1-1-2532136d5a9b@oss.qualcomm.com Signed-off-by: Bjorn Andersson <andersson@kernel.org>
13 daysARM: dts: mediatek: Add basic support for Amazon ford boardZakariya Hadrami
This tablet uses a MediaTek MT8127 system-on-chip with 1GB of RAM. It can currently boot into initramfs with a working UART and Simple Framebuffer using already initialized panel by the bootloader. Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Signed-off-by: Zakariya Hadrami <zkh@mailbox.org> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
13 daysARM: dts: mediatek: mt8127: Add watchdog supportZakariya Hadrami
Add watchdog node and disable it by default as it was not present initially. Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Signed-off-by: Zakariya Hadrami <zkh@mailbox.org> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
14 daysxtensa: time: Fix clk reference leak in calibrate_ccount()赵宇
In calibrate_ccount(), of_clk_get() acquires a reference to the CPU clock, but clk_put() is never called to release it. The clock reference is used only to read the frequency via clk_get_rate(), then the function returns immediately, leaking the reference. Fix this by calling clk_put(clk) before returning. Signed-off-by: 赵宇 <1466528493@qq.com> Message-ID: <tencent_7AF43562265F45B58A25576CAFCE66967708@qq.com> Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
14 dayskexec_file: remove unused arch_kexec_locate_mem_hole hookSourabh Jain
No architecture provides an implementation of arch_kexec_locate_mem_hole(). Use kexec_locate_mem_hole() directly and remove the unused fallback wrapper from the kexec header. This simplifies the kexec memory allocation path without changing its behavior. No functional changes intended. The arch hook was introduced by commit f891f19736bd ("kexec_file: Allow archs to handle special regions while locating memory hole"), and its last user was removed by commit 6e5250eaa665 ("powerpc/crash: use generic APIs to locate memory hole for kdump"). Cc: Albert Ou <aou@eecs.berkeley.edu> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Mike Rapoport <rppt@kernel.org> Cc: Palmer Dabbelt <palmer@dabbelt.com> Cc: Pasha Tatashin <pasha.tatashin@soleen.com> Cc: Paul Walmsley <pjw@kernel.org> Cc: Pratyush Yadav <pratyush@kernel.org> Cc: linux-riscv@lists.infradead.org Cc: kexec@lists.infradead.org Acked-by: Baoquan He <baoquan.he@linux.dev> Reviewed-by: Mukesh Pilaniya <mpilaniy@redhat.com> Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com> Link: https://patch.msgid.link/20260905145835.501635-1-sourabhjain@linux.ibm.com Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
14 daysx86/cfi: Fix FineIBT hash offset in cfi_get_func_hash()Soheil Hassas Yeganeh
The switch of the FineIBT preamble from "subl $hash, %r10d" to the shorter "subl $hash, %eax" moved the hash immediate from offset 7 to offset 5 of the preamble. fineibt_preamble_hash was updated to match, but the open-coded offset in cfi_get_func_hash() was missed and it still reads the hash at offset 7. cfi_get_func_hash() is used by the BPF JIT to give a struct_ops trampoline the CFI hash of the stub function it stands in for. With FineIBT the trampoline now gets the upper half of the real hash followed by the first two bytes of the next instruction, so the first indirect call from the kernel into a struct_ops program, tcp_init_congestion_control() calling ->init() of a BPF congestion control for example, fails the FineIBT check and the kernel dies with a CFI failure. Move the FineIBT preamble template and its offset defines above cfi_get_func_hash() and use fineibt_preamble_hash there, so every reader of the preamble shares one definition of its layout. The CFI_FINEIBT arm is only built with CONFIG_FINEIBT, the only configuration in which cfi_mode can take that value. cfi_get_func_arity() does not need the same treatment: the __bhi_args call whose displacement it reads still ends at the function address. Fixes: 85a2d4a890dc ("x86,ibt: Use UDB instead of 0xEA") Assisted-by: LLM Signed-off-by: Soheil Hassas Yeganeh <soheil.kdev@gmail.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: stable@vger.kernel.org # 6.18+ Link: https://patch.msgid.link/20260831-b4-x86-cfi-fineibt-func-hash-v1-1-6ffc0af5c4ec@gmail.com
14 daysperf/x86/intel: Prevent drain_pebs() reentryDapeng Mi
The PEBS buffer is shared by all events on a CPU, so drain_pebs() must not be reentered. If so, one instance may observe stale buffer state and potentially access out-of-bound memory. Most invocations happen in NMI context, which naturally prevents reentry. However, drain_pebs() is also reachable from process context via intel_pmu_drain_pebs_buffer(). In those paths, the PMU is often already disabled, but not guaranteed. For example, __intel_pmu_pebs_disable() only disables the target counter, so other active counters can still raise a PMI and interrupt an in-flight drain_pebs(). Here is an example, __perf_addr_filters_adjust() perf_event_stop() __perf_event_stop() x86_pmu_stop() (event->pmu->stop) intel_pmu_disable_event() intel_pmu_pebs_disable() __intel_pmu_pebs_disable() intel_pmu_drain_large_pebs() intel_pmu_drain_pebs_buffer() Introduce __intel_pmu_quiesce() and __intel_pmu_resume() helpers and use them in intel_pmu_drain_large_pebs() to disable the full PMU around the intel_pmu_drain_pebs_buffer() call, preventing reentry. Also add a warning in intel_pmu_drain_pebs_buffer() when the full PMU is not disabled. Fixes: b752ea0c28e3 ("perf/x86/intel/ds: Flush PEBS DS when changing PEBS_DATA_CFG") Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260813064346.335458-1-dapeng1.mi@linux.intel.com
14 daysperf/x86/intel: Correct pt_regs->flags update for PEBS pathDapeng Mi
pt_regs->flags holds the saved CPU FLAGS register. In the PEBS path, it was incorrectly set to PERF_EFLAGS_EXACT instead of being populated from the PEBS flags snapshot. Update pt_regs->flags from PEBS GPR flags if GPRs group is present. Fixes: c22497f5838c ("perf/x86/intel: Support adaptive PEBS v4") Signed-off-by: Dapeng Mi <dapeng1.mi@linux.intel.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://patch.msgid.link/20260908075102.540715-1-dapeng1.mi@linux.intel.com
14 dayspowerpc/pasemi: Add a null pointer check to the pas_setup_mce_regsKunwu Chan
kasprintf() returns a pointer to dynamically allocated memory which can be NULL upon failure. Ensure the allocation was successful by checking the pointer validity. Signed-off-by: Kunwu Chan <chentao@kylinos.cn> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20240117091706.153431-1-chentao@kylinos.cn
14 dayspowerpc/prom: Remove redundant early_init_dt_scan_root() callSourabh Jain
Commit 554b66233623 ("of/fdt: Scan the root node properties earlier") moved the invocation of early_init_dt_scan_root() into early_init_dt_verify(). early_init_devtree() already calls early_init_dt_verify(), so the root node properties are parsed before reaching the explicit call in this function. Keeping the call here results in scanning the root node twice. Remove the redundant call and rely on the invocation from early_init_dt_verify(). This change keeps the behavior the same and removes an unnecessary duplicate call. Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com> Tested-by: Shivang Upadhyay <shivangu@linux.ibm.com> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260418091250.134111-1-sourabhjain@linux.ibm.com
14 dayspowerpc/kexec_file: print configured kernel command lineSourabh Jain
Kexec with the -d option prints extra logs about the kexec/kdump kernel that help debug kexec and kdump. For example, it shows what kexec segments are loaded, their locations, and sizes. One key piece of information still missing is the kernel command line configured for the kexec/kdump kernel. With this patch included, the kernel will print the kernel command line configured for the kexec/kdump kernel as shown below: kexec --initrd=./initrd ./kernel -lspd --command-line="test1 test2" Loaded elf core header at 0x22e30000, bufsz=0x2000 memsz=0x80000 kexec_elf: Command line: elfcorehdr=0x22e30000 test1 test2 <--- New kexec_elf: Loaded initrd at 0x22eb0000 Signed-off-by: Sourabh Jain <sourabhjain@linux.ibm.com> Tested-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> Reviewed-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20250725124438.327593-1-sourabhjain@linux.ibm.com
14 daysKVM: PPC: Book3S HV: Set irqfd->producer only on successleixiang
Set irqfd->producer only after kvmppc_set_passthru_irq() succeeds to avoid leaving a dangling pointer on failure. The bypass manager does not register a failed producer, so the pointer is never cleared. Fixes: c57875f5f9be ("KVM: PPC: Book3S HV: Enable IRQ bypass") Suggested-by: Sean Christopherson <seanjc@google.com> Cc: stable@vger.kernel.org Signed-off-by: leixiang <leixiang@kylinos.cn> Reviewed-by: Amit Machhiwal <amachhiw@linux.ibm.com> Reviewed-by: Vaibhav Jain <vaibhav@linux.ibm.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260709055755.31297-1-leixiang@kylinos.cn
14 dayspowerpc/pseries/htmdump: Fix leak in htmdump_init_debugfsMichail Tatas
If any allocation fails during init all previous allocations are leaked and the debugfs directory is left. Fix by freeing the allocations that have already happened and also remove the directory that has been created. Signed-off-by: Michail Tatas <michail.tatas@gmail.com> Reviewed-by: Athira Rajeev <atrajeev@linux.ibm.com> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/anJDq-JckR6j-6EJ@michalis-linux
14 daysarm64: dts: mediatek: mt8188-geralt: Enlarge SCP core0 memory regionJustin Yeh
The SCP firmware in linux-firmware for this platform (mediatek/mt8188/scp_c0.img) supports MDP, which the mdp3-rdma node drives through scp_c0. On top of the segments it loads, the firmware allocates a 1 MiB DMA region at 0x50800000 at run time. That lies outside the 8 MiB reserved for SCP core0, so Linux is free to allocate over memory the firmware uses. Enlarge the region to 9 MiB. apu_mem starts at 0x55000000, so no other reserved region has to move. Fixes: e36be19823f0 ("arm64: dts: mediatek: mt8188-geralt: Enable first SCP core") Signed-off-by: Justin Yeh <justin.yeh@mediatek.com> Reviewed-by: Chen-Yu Tsai <wenst@chromium.org> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
14 dayspowerpc/entry: Fix double accounting of user time on interrupt entryAboorva Devarajan
Since the switch to generic entry, an interrupt from user mode accounts user time twice: once in arch_interrupt_enter_prepare() and again in arch_enter_from_user_mode(), which irqentry_enter() invokes for the same interrupt: arch_interrupt_enter_prepare() account_cpu_user_entry() /* first */ irqentry_enter() arch_enter_from_user_mode() account_cpu_user_entry() /* second */ The second call charges the same interval again, because account_cpu_user_entry() accumulates the time spent in user mode since the last return to user space. The two calls come from the GENERIC_ENTRY preparation series, where each step was a no-op on its own. Commit 09a9d3a8499d ("powerpc: introduce arch_enter_from_user_mode") added the hook with the user-time accounting in it, but nothing called it yet. Commit 893082ac769b ("powerpc: Prepare for IRQ entry exit") copied interrupt_enter_prepare() verbatim into entry-common.h as arch_interrupt_enter_prepare(); that copy was equally unused, as handlers still called interrupt_enter_prepare(). Commit bee25f97ad24 ("powerpc: Enable GENERIC_ENTRY feature") made both live. On the syscall side it did the full conversion: system_call_exception() now accounts once through the hook via syscall_enter_from_user_mode(), rather than calling account_cpu_user_entry() directly. On the interrupt side it switched the handler macros to arch_interrupt_enter_prepare() followed by irqentry_enter(), which also runs the hook, but the accounting in arch_interrupt_enter_prepare() was not removed to match. The double accounting starts with that commit. With CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y this roughly doubles the reported user time of any workload that takes interrupts. The other accounting modes compile account_cpu_user_entry() to an empty stub, so they are not affected. Remove the accounting from arch_interrupt_enter_prepare() and rely on arch_enter_from_user_mode(), which already runs for both syscalls and interrupts. The duplicate account_stolen_time() call is removed the same way. On a pseries LPAR a busy loop reports 6s user time in 3s elapsed (~210% CPU) before the fix, and 3s (~105% CPU) after it: $ python3 -c 'while True: pass' & $ sleep 3; ps -p $! -o etime,time,pcpu ELAPSED TIME %CPU Before 00:03 00:00:06 210 After 00:03 00:00:03 105 A 50% load reports ~70% usr / 30% idle before the fix, and ~49% usr / 51% idle after it: $ taskset -c 6 stress-ng --cpu 1 --cpu-load 50 & $ mpstat -P 6 1 CPU %usr %idle Before 6 69.74 30.26 After 6 48.51 50.50 Fixes: bee25f97ad24 ("powerpc: Enable GENERIC_ENTRY feature") Reviewed-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> Signed-off-by: Aboorva Devarajan <aboorvad@linux.ibm.com> Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com> Reviewed-by: Amit Machhiwal <amachhiw@linux.ibm.com> Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com> Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org> Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com> Link: https://patch.msgid.link/20260904025831.3439809-1-aboorvad@linux.ibm.com
2026-09-09arm64: hibernate: pass HVC_SET_VECTORS args to the resume hvcBradley Morgan
swsusp_arch_suspend_exit() reinstalls the restored kernel's hyp stub vectors with an hvc, but never passes the arguments. x0 is not set to HVC_SET_VECTORS and x1 is not set to the vector address, so the stub dispatch falls through and returns without writing vbar_el2. EL2 is left pointing at the trans_pgd copy of the vectors, a page that swsusp_free() releases right after resume. Set the arguments up the same way __hyp_set_vectors() does. Without this fix, Vladimir was able to trigger a hang when resuming from hibernation with CONFIG_PAGE_POISONING=y and page_poison=on. Fixes: 788bfdd97434 ("arm64: trans_pgd: hibernate: Add trans_pgd_copy_el2_vectors") Cc: stable@vger.kernel.org Signed-off-by: Bradley Morgan <include@grrlz.net> Reviewed-by: Vladimir Murzin <vladimir.murzin@arm.com> Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> Acked-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Will Deacon <will@kernel.org>
2026-09-09arc: kernel: Fix clk reference leak in show_cpuinfo()blaze
In show_cpuinfo(), clk_get() acquires a reference to the CPU clock, but clk_put() is never called to release it. Since show_cpuinfo() is the seq_file show callback for /proc/cpuinfo, this causes a clock reference count leak every time /proc/cpuinfo is read. The frequency is extracted via clk_get_rate() into a local variable, so the clock reference can be safely released immediately after. Fix this by calling clk_put(cpu_clk) right after clk_get_rate(). Fixes: 98f2892607c5 ("ARC: [cpuinfo] Add clk info in /proc/cpuinfo") Signed-off-by: blaze <1466528493@qq.com> Signed-off-by: Vineet Gupta <vgupta@kernel.org>