Linux 6.13.11
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.13.11 kernel.
All users of the 6.13 kernel series must upgrade.
The updated 6.13.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.13.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/devicetree/bindings/vendor-prefixes.yaml | 2 Makefile | 2 arch/arm/Kconfig | 2 arch/arm/include/asm/vmlinux.lds.h | 12 arch/arm64/include/asm/mem_encrypt.h | 11 arch/arm64/kernel/compat_alignment.c | 2 arch/loongarch/Kconfig | 4 arch/loongarch/include/asm/cache.h | 2 arch/loongarch/include/asm/irq.h | 2 arch/loongarch/include/asm/stacktrace.h | 3 arch/loongarch/include/asm/unwind_hints.h | 10 arch/loongarch/kernel/env.c | 2 arch/loongarch/kernel/kgdb.c | 5 arch/loongarch/net/bpf_jit.c | 12 arch/loongarch/net/bpf_jit.h | 5 arch/powerpc/configs/mpc885_ads_defconfig | 2 arch/powerpc/crypto/Makefile | 1 arch/powerpc/kexec/relocate_32.S | 7 arch/powerpc/perf/vpa-pmu.c | 1 arch/powerpc/platforms/cell/spufs/gang.c | 1 arch/powerpc/platforms/cell/spufs/inode.c | 63 - arch/powerpc/platforms/cell/spufs/spufs.h | 2 arch/riscv/errata/Makefile | 6 arch/riscv/include/asm/cpufeature.h | 4 arch/riscv/include/asm/ftrace.h | 4 arch/riscv/kernel/elf_kexec.c | 3 arch/riscv/kernel/traps_misaligned.c | 14 arch/riscv/kernel/unaligned_access_speed.c | 36 arch/riscv/kernel/vec-copy-unaligned.S | 2 arch/riscv/kvm/main.c | 4 arch/riscv/kvm/vcpu_pmu.c | 1 arch/riscv/mm/hugetlbpage.c | 76 - arch/riscv/purgatory/entry.S | 1 arch/s390/include/asm/io.h | 2 arch/s390/include/asm/pgtable.h | 3 arch/s390/kernel/entry.S | 2 arch/s390/mm/pgtable.c | 10 arch/um/include/shared/os.h | 1 arch/um/kernel/Makefile | 2 arch/um/kernel/maccess.c | 19 arch/um/os-Linux/process.c | 51 arch/x86/Kconfig | 3 arch/x86/Kconfig.cpu | 2 arch/x86/Makefile.um | 7 arch/x86/coco/tdx/tdx.c | 26 arch/x86/entry/calling.h | 2 arch/x86/entry/common.c | 2 arch/x86/entry/vdso/vdso-layout.lds.S | 2 arch/x86/entry/vdso/vma.c | 2 arch/x86/events/intel/core.c | 43 arch/x86/events/intel/ds.c | 13 arch/x86/events/perf_event.h | 3 arch/x86/hyperv/hv_vtl.c | 1 arch/x86/hyperv/ivm.c | 5 arch/x86/include/asm/tdx.h | 4 arch/x86/include/asm/tlbflush.h | 2 arch/x86/include/asm/vdso/vsyscall.h | 1 arch/x86/kernel/cpu/bus_lock.c | 20 arch/x86/kernel/cpu/mce/severity.c | 11 arch/x86/kernel/cpu/microcode/amd.c | 2 arch/x86/kernel/cpu/resctrl/rdtgroup.c | 3 arch/x86/kernel/cpu/sgx/driver.c | 10 arch/x86/kernel/dumpstack.c | 5 arch/x86/kernel/fpu/core.c | 6 arch/x86/kernel/process.c | 9 arch/x86/kernel/traps.c | 18 arch/x86/kernel/tsc.c | 4 arch/x86/kernel/uprobes.c | 14 arch/x86/kvm/svm/sev.c | 13 arch/x86/kvm/x86.c | 15 arch/x86/lib/copy_user_64.S | 18 arch/x86/mm/mem_encrypt_identity.c | 4 arch/x86/mm/pat/cpa-test.c | 2 arch/x86/mm/pat/memtype.c | 52 crypto/api.c | 17 crypto/bpf_crypto_skcipher.c | 1 drivers/acpi/acpi_video.c | 9 drivers/acpi/nfit/core.c | 2 drivers/acpi/processor_idle.c | 4 drivers/acpi/resource.c | 7 drivers/acpi/x86/utils.c | 3 drivers/auxdisplay/Kconfig | 1 drivers/auxdisplay/panel.c | 4 drivers/base/power/main.c | 21 drivers/base/power/runtime.c | 2 drivers/block/ublk_drv.c | 39 drivers/clk/imx/clk-imx8mp-audiomix.c | 6 drivers/clk/meson/g12a.c | 38 drivers/clk/meson/gxbb.c | 14 drivers/clk/mmp/clk-pxa1908-apmu.c | 4 drivers/clk/qcom/gcc-ipq5424.c | 24 drivers/clk/qcom/gcc-msm8953.c | 2 drivers/clk/qcom/gcc-sm8650.c | 4 drivers/clk/qcom/gcc-x1e80100.c | 30 drivers/clk/qcom/mmcc-sdm660.c | 2 drivers/clk/renesas/r9a08g045-cpg.c | 5 drivers/clk/renesas/rzg2l-cpg.c | 13 drivers/clk/renesas/rzg2l-cpg.h | 10 drivers/clk/rockchip/clk-rk3328.c | 2 drivers/clk/samsung/clk.c | 2 drivers/cpufreq/Kconfig.arm | 2 drivers/cpufreq/armada-8k-cpufreq.c | 2 drivers/cpufreq/cpufreq-dt.c | 2 drivers/cpufreq/cpufreq_governor.c | 45 drivers/cpufreq/mediatek-cpufreq-hw.c | 2 drivers/cpufreq/mediatek-cpufreq.c | 2 drivers/cpufreq/mvebu-cpufreq.c | 2 drivers/cpufreq/qcom-cpufreq-hw.c | 2 drivers/cpufreq/qcom-cpufreq-nvmem.c | 8 drivers/cpufreq/scmi-cpufreq.c | 2 drivers/cpufreq/scpi-cpufreq.c | 7 drivers/cpufreq/sun50i-cpufreq-nvmem.c | 6 drivers/cpufreq/virtual-cpufreq.c | 2 drivers/cpuidle/cpuidle-arm.c | 8 drivers/cpuidle/cpuidle-big_little.c | 2 drivers/cpuidle/cpuidle-psci.c | 4 drivers/cpuidle/cpuidle-qcom-spm.c | 2 drivers/cpuidle/cpuidle-riscv-sbi.c | 4 drivers/crypto/hisilicon/sec2/sec.h | 1 drivers/crypto/hisilicon/sec2/sec_crypto.c | 125 -- drivers/crypto/intel/iaa/iaa_crypto_main.c | 4 drivers/crypto/intel/qat/qat_420xx/adf_420xx_hw_data.c | 1 drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c | 59 - drivers/crypto/nx/nx-common-pseries.c | 37 drivers/crypto/tegra/tegra-se-aes.c | 401 ++++--- drivers/crypto/tegra/tegra-se-hash.c | 287 +++-- drivers/crypto/tegra/tegra-se-key.c | 29 drivers/crypto/tegra/tegra-se-main.c | 16 drivers/crypto/tegra/tegra-se.h | 39 drivers/dma/fsl-edma-main.c | 14 drivers/edac/i10nm_base.c | 2 drivers/edac/ie31200_edac.c | 19 drivers/edac/igen6_edac.c | 21 drivers/edac/skx_common.c | 33 drivers/edac/skx_common.h | 11 drivers/firmware/cirrus/cs_dsp.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h | 3 drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c | 2 drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c | 2 drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c | 1 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c | 15 drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c | 16 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 5 drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c | 4 drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c | 12 drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4.c | 3 drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 2 drivers/gpu/drm/amd/pm/swsmu/smu_cmn.c | 3 drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c | 12 drivers/gpu/drm/bridge/ite-it6505.c | 7 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 2 drivers/gpu/drm/display/drm_dp_mst_topology.c | 8 drivers/gpu/drm/mediatek/mtk_crtc.c | 7 drivers/gpu/drm/mediatek/mtk_dp.c | 6 drivers/gpu/drm/mediatek/mtk_dsi.c | 6 drivers/gpu/drm/mediatek/mtk_hdmi.c | 33 drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c | 2 drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c | 4 drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c | 3 drivers/gpu/drm/msm/dsi/dsi_host.c | 8 drivers/gpu/drm/msm/dsi/dsi_manager.c | 32 drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c | 2 drivers/gpu/drm/msm/msm_dsc_helper.h | 11 drivers/gpu/drm/panel/panel-ilitek-ili9882t.c | 2 drivers/gpu/drm/panthor/panthor_fw.c | 9 drivers/gpu/drm/panthor/panthor_fw.h | 6 drivers/gpu/drm/panthor/panthor_sched.c | 2 drivers/gpu/drm/solomon/ssd130x-spi.c | 7 drivers/gpu/drm/solomon/ssd130x.c | 6 drivers/gpu/drm/vkms/vkms_drv.c | 15 drivers/gpu/drm/xe/Kconfig | 2 drivers/gpu/drm/xe/xe_guc_pc.c | 53 drivers/gpu/drm/xlnx/zynqmp_dp.c | 2 drivers/gpu/drm/xlnx/zynqmp_dpsub.c | 2 drivers/greybus/gb-beagleplay.c | 4 drivers/hid/Makefile | 1 drivers/hid/i2c-hid/i2c-hid-core.c | 2 drivers/hwmon/nct6775-core.c | 4 drivers/hwtracing/coresight/coresight-catu.c | 2 drivers/hwtracing/coresight/coresight-core.c | 20 drivers/hwtracing/coresight/coresight-etm4x-core.c | 48 drivers/i3c/master/svc-i3c-master.c | 2 drivers/iio/accel/mma8452.c | 10 drivers/iio/accel/msa311.c | 26 drivers/iio/adc/ad4130.c | 41 drivers/iio/adc/ad7124.c | 35 drivers/iio/adc/ad7173.c | 25 drivers/iio/adc/ad7768-1.c | 15 drivers/iio/dac/adi-axi-dac.c | 8 drivers/iio/industrialio-backend.c | 4 drivers/iio/light/veml6075.c | 8 drivers/infiniband/core/device.c | 18 drivers/infiniband/core/mad.c | 38 drivers/infiniband/core/sysfs.c | 1 drivers/infiniband/hw/erdma/erdma_cm.c | 1 drivers/infiniband/hw/mana/main.c | 2 drivers/infiniband/hw/mlx5/cq.c | 2 drivers/infiniband/hw/mlx5/mr.c | 41 drivers/infiniband/hw/mlx5/odp.c | 10 drivers/leds/led-core.c | 22 drivers/media/dvb-frontends/dib8000.c | 5 drivers/media/platform/allegro-dvt/allegro-core.c | 1 drivers/media/platform/ti/omap3isp/isp.c | 7 drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c | 1 drivers/media/rc/streamzap.c | 2 drivers/media/test-drivers/vimc/vimc-streamer.c | 6 drivers/memory/omap-gpmc.c | 20 drivers/mfd/sm501.c | 6 drivers/mmc/host/omap.c | 19 drivers/mmc/host/sdhci-omap.c | 4 drivers/mmc/host/sdhci-pxav3.c | 1 drivers/net/arcnet/com20020-pci.c | 17 drivers/net/dsa/mv88e6xxx/chip.c | 11 drivers/net/dsa/mv88e6xxx/phy.c | 3 drivers/net/dsa/realtek/Kconfig | 2 drivers/net/ethernet/ibm/ibmveth.c | 39 drivers/net/ethernet/intel/e1000e/defines.h | 3 drivers/net/ethernet/intel/e1000e/ich8lan.c | 80 + drivers/net/ethernet/intel/e1000e/ich8lan.h | 4 drivers/net/ethernet/intel/idpf/idpf_main.c | 6 drivers/net/ethernet/marvell/mvpp2/mvpp2.h | 3 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 3 drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c | 201 ++- drivers/net/ethernet/marvell/octeontx2/af/rvu.c | 2 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en/params.c | 8 drivers/net/phy/broadcom.c | 6 drivers/net/usb/rndis_host.c | 16 drivers/net/usb/usbnet.c | 6 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 20 drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 86 + drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c | 8 drivers/net/wireless/mediatek/mt76/mt7921/main.c | 1 drivers/net/wireless/mediatek/mt76/mt7925/mcu.c | 1 drivers/ntb/hw/intel/ntb_hw_gen3.c | 3 drivers/ntb/hw/mscc/ntb_hw_switchtec.c | 2 drivers/ntb/test/ntb_perf.c | 4 drivers/nvme/host/ioctl.c | 2 drivers/nvme/host/pci.c | 37 drivers/nvme/host/tcp.c | 5 drivers/nvme/target/debugfs.c | 2 drivers/pci/controller/cadence/pcie-cadence-ep.c | 3 drivers/pci/controller/cadence/pcie-cadence.h | 2 drivers/pci/controller/dwc/pcie-designware-ep.c | 1 drivers/pci/controller/dwc/pcie-histb.c | 12 drivers/pci/controller/pcie-brcmstb.c | 16 drivers/pci/controller/pcie-xilinx-cpm.c | 10 drivers/pci/hotplug/pciehp_hpc.c | 4 drivers/pci/iov.c | 48 drivers/pci/pci-sysfs.c | 4 drivers/pci/pci.c | 22 drivers/pci/pcie/aspm.c | 17 drivers/pci/pcie/bwctrl.c | 6 drivers/pci/pcie/portdrv.c | 8 drivers/pci/probe.c | 5 drivers/pci/setup-bus.c | 4 drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c | 50 drivers/pinctrl/intel/pinctrl-intel.c | 1 drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c | 10 drivers/pinctrl/renesas/pinctrl-rza2.c | 2 drivers/pinctrl/renesas/pinctrl-rzg2l.c | 3 drivers/pinctrl/renesas/pinctrl-rzv2m.c | 2 drivers/pinctrl/tegra/pinctrl-tegra.c | 3 drivers/platform/surface/surface_aggregator_registry.c | 5 drivers/platform/x86/amd/pmf/pmf.h | 5 drivers/platform/x86/amd/pmf/tee-if.c | 82 + drivers/platform/x86/dell/dell-uart-backlight.c | 2 drivers/platform/x86/dell/dell-wmi-ddv.c | 6 drivers/platform/x86/intel/hid.c | 7 drivers/platform/x86/intel/speed_select_if/isst_if_common.c | 2 drivers/platform/x86/intel/vsec.c | 7 drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c | 2 drivers/platform/x86/thinkpad_acpi.c | 11 drivers/power/supply/bq27xxx_battery.c | 1 drivers/power/supply/max77693_charger.c | 2 drivers/regulator/pca9450-regulator.c | 6 drivers/remoteproc/qcom_q6v5_mss.c | 21 drivers/remoteproc/qcom_q6v5_pas.c | 13 drivers/remoteproc/remoteproc_core.c | 1 drivers/rtc/rtc-renesas-rtca3.c | 15 drivers/soundwire/slave.c | 1 drivers/spi/spi-bcm2835.c | 18 drivers/spi/spi-cadence-xspi.c | 2 drivers/staging/gpib/agilent_82357a/agilent_82357a.c | 513 ++++----- drivers/staging/gpib/cb7210/cb7210.c | 2 drivers/staging/gpib/common/gpib_os.c | 7 drivers/staging/gpib/hp_82341/hp_82341.c | 2 drivers/staging/gpib/include/gpibP.h | 2 drivers/staging/gpib/ni_usb/ni_usb_gpib.c | 545 +++++----- drivers/staging/gpib/ni_usb/ni_usb_gpib.h | 2 drivers/staging/rtl8723bs/Kconfig | 1 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 28 drivers/thermal/intel/int340x_thermal/int3402_thermal.c | 3 drivers/tty/n_tty.c | 13 drivers/tty/serial/fsl_lpuart.c | 312 ++--- drivers/usb/host/xhci-mem.c | 6 drivers/usb/typec/ucsi/ucsi_ccg.c | 5 drivers/vhost/scsi.c | 25 drivers/video/console/Kconfig | 6 drivers/video/fbdev/au1100fb.c | 4 drivers/video/fbdev/sm501fb.c | 7 drivers/w1/masters/w1-uart.c | 4 fs/9p/vfs_inode_dotl.c | 2 fs/affs/file.c | 9 fs/autofs/autofs_i.h | 2 fs/exec.c | 15 fs/exfat/fatent.c | 2 fs/exfat/file.c | 29 fs/exfat/inode.c | 41 fs/exfat/namei.c | 5 fs/ext4/dir.c | 3 fs/ext4/super.c | 27 fs/fsopen.c | 2 fs/fuse/dax.c | 1 fs/fuse/dir.c | 2 fs/fuse/file.c | 4 fs/hostfs/hostfs.h | 2 fs/hostfs/hostfs_kern.c | 7 fs/hostfs/hostfs_user.c | 59 - fs/isofs/dir.c | 3 fs/jfs/jfs_dtree.c | 3 fs/jfs/xattr.c | 15 fs/netfs/direct_read.c | 6 fs/nfs/delegation.c | 63 - fs/nfs/nfs4xdr.c | 18 fs/nfs/sysfs.c | 22 fs/nfs/write.c | 4 fs/nfsd/nfs4state.c | 37 fs/nfsd/nfsctl.c | 44 fs/nfsd/vfs.c | 28 fs/ntfs3/attrib.c | 3 fs/ntfs3/file.c | 22 fs/ntfs3/frecord.c | 6 fs/ntfs3/index.c | 4 fs/ntfs3/ntfs.h | 2 fs/ocfs2/alloc.c | 8 fs/proc/base.c | 2 fs/smb/client/cifsacl.c | 34 fs/smb/client/cifssmb.c | 46 fs/smb/client/connect.c | 16 fs/smb/client/smb2pdu.c | 96 - fs/smb/common/smbacl.h | 3 fs/smb/server/auth.c | 6 fs/smb/server/connection.h | 11 fs/smb/server/mgmt/user_session.c | 37 fs/smb/server/mgmt/user_session.h | 2 fs/smb/server/oplock.c | 12 fs/smb/server/smb2pdu.c | 54 fs/smb/server/smbacl.c | 50 fs/smb/server/smbacl.h | 2 include/drm/display/drm_dp_mst_helper.h | 7 include/linux/context_tracking_irq.h | 8 include/linux/coresight.h | 4 include/linux/dma-direct.h | 13 include/linux/fwnode.h | 2 include/linux/interrupt.h | 8 include/linux/mem_encrypt.h | 23 include/linux/nfs_fs_sb.h | 4 include/linux/nmi.h | 4 include/linux/pgtable.h | 28 include/linux/pm_runtime.h | 2 include/linux/rcupdate.h | 2 include/linux/sched/smt.h | 2 include/linux/seccomp.h | 8 include/linux/thermal.h | 2 include/linux/trace_events.h | 14 include/linux/uprobes.h | 2 include/rdma/ib_verbs.h | 1 init/Kconfig | 5 io_uring/net.c | 23 kernel/bpf/core.c | 19 kernel/bpf/verifier.c | 7 kernel/cpu.c | 5 kernel/events/core.c | 46 kernel/events/ring_buffer.c | 2 kernel/events/uprobes.c | 15 kernel/fork.c | 4 kernel/kexec_elf.c | 2 kernel/locking/semaphore.c | 13 kernel/sched/deadline.c | 2 kernel/sched/fair.c | 50 kernel/seccomp.c | 14 kernel/trace/bpf_trace.c | 2 kernel/trace/ring_buffer.c | 4 kernel/trace/trace_events.c | 21 kernel/trace/trace_events_hist.c | 133 ++ kernel/trace/trace_events_synth.c | 36 kernel/trace/trace_functions_graph.c | 1 kernel/trace/trace_irqsoff.c | 2 kernel/trace/trace_osnoise.c | 1 kernel/trace/trace_sched_wakeup.c | 2 kernel/watch_queue.c | 9 kernel/watchdog.c | 25 kernel/watchdog_perf.c | 28 lib/842/842_compress.c | 2 lib/stackinit_kunit.c | 30 lib/vsprintf.c | 2 mm/gup.c | 3 mm/memory.c | 13 mm/zswap.c | 30 net/can/af_can.c | 12 net/can/af_can.h | 12 net/can/proc.c | 46 net/core/devmem.c | 4 net/core/dst.c | 8 net/core/rtnetlink.c | 3 net/core/rtnl_net_debug.c | 2 net/ipv4/ip_tunnel_core.c | 4 net/ipv4/udp.c | 42 net/ipv6/addrconf.c | 37 net/ipv6/calipso.c | 21 net/ipv6/route.c | 42 net/mac80211/driver-ops.c | 10 net/mac80211/iface.c | 11 net/mac80211/rx.c | 10 net/mac80211/sta_info.c | 20 net/mac80211/util.c | 5 net/netfilter/nf_tables_api.c | 4 net/netfilter/nft_set_hash.c | 3 net/netfilter/nft_tunnel.c | 6 net/openvswitch/actions.c | 6 net/sched/act_tunnel_key.c | 2 net/sched/cls_flower.c | 2 net/sched/sch_skbprio.c | 3 net/sctp/sysctl.c | 4 net/vmw_vsock/af_vsock.c | 6 net/xdp/xsk.c | 5 rust/Makefile | 4 rust/kernel/print.rs | 7 samples/bpf/Makefile | 2 samples/trace_events/trace-events-sample.h | 8 scripts/package/debian/rules | 6 scripts/selinux/install_policy.sh | 15 security/smack/smack.h | 6 security/smack/smack_lsm.c | 34 sound/core/timer.c | 147 +- sound/pci/hda/patch_realtek.c | 50 sound/soc/amd/acp/acp-legacy-common.c | 10 sound/soc/codecs/cs35l41-spi.c | 5 sound/soc/codecs/cs42l43-jack.c | 13 sound/soc/codecs/cs42l43.c | 15 sound/soc/codecs/cs42l43.h | 3 sound/soc/codecs/rt1320-sdw.c | 3 sound/soc/codecs/rt5665.c | 24 sound/soc/codecs/wsa884x.c | 4 sound/soc/fsl/imx-card.c | 4 sound/soc/tegra/tegra210_adx.c | 6 sound/soc/ti/j721e-evm.c | 2 sound/usb/mixer_quirks.c | 7 tools/arch/x86/lib/insn.c | 2 tools/bpf/runqslower/Makefile | 3 tools/lib/bpf/btf.c | 4 tools/lib/bpf/linker.c | 2 tools/lib/bpf/str_error.c | 2 tools/lib/bpf/str_error.h | 7 tools/objtool/check.c | 35 tools/perf/Makefile.config | 10 tools/perf/Makefile.perf | 2 tools/perf/arch/powerpc/util/header.c | 4 tools/perf/arch/x86/util/topdown.c | 2 tools/perf/bench/syscall.c | 22 tools/perf/builtin-report.c | 2 tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json | 10 tools/perf/pmu-events/empty-pmu-events.c | 8 tools/perf/pmu-events/jevents.py | 8 tools/perf/tests/hwmon_pmu.c | 16 tools/perf/tests/pmu.c | 85 - tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S | 2 tools/perf/tests/shell/record_bpf_filter.sh | 4 tools/perf/tests/shell/stat_all_pmu.sh | 48 tools/perf/tests/tool_pmu.c | 4 tools/perf/util/arm-spe.c | 8 tools/perf/util/bpf-filter.l | 2 tools/perf/util/comm.c | 2 tools/perf/util/debug.c | 2 tools/perf/util/dso.h | 4 tools/perf/util/evlist.c | 13 tools/perf/util/expr.c | 2 tools/perf/util/hwmon_pmu.c | 14 tools/perf/util/hwmon_pmu.h | 16 tools/perf/util/intel-tpebs.c | 2 tools/perf/util/parse-events.c | 2 tools/perf/util/pmu.c | 263 +++- tools/perf/util/pmu.h | 10 tools/perf/util/pmus.c | 20 tools/perf/util/python.c | 17 tools/perf/util/stat-shadow.c | 3 tools/perf/util/stat.c | 13 tools/perf/util/tool_pmu.c | 3 tools/perf/util/units.c | 2 tools/power/x86/turbostat/turbostat.8 | 2 tools/power/x86/turbostat/turbostat.c | 3 tools/testing/selftests/bpf/Makefile | 1 tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c | 5 tools/testing/selftests/bpf/prog_tests/tailcalls.c | 1 tools/testing/selftests/bpf/progs/strncmp_bench.c | 5 tools/testing/selftests/mm/cow.c | 2 tools/testing/selftests/net/netfilter/br_netfilter.sh | 7 tools/testing/selftests/net/netfilter/br_netfilter_queue.sh | 7 tools/testing/selftests/net/netfilter/nft_queue.sh | 1 tools/testing/selftests/pcie_bwctrl/Makefile | 2 505 files changed, 5294 insertions(+), 3183 deletions(-)
Aaron Kling (1):
cpufreq: tegra194: Allow building for Tegra234
Acs, Jakub (1):
ext4: fix OOB read when checking dotdot dir
Adrián Larumbe (1):
drm/panthor: Fix race condition when gathering fdinfo group samples
Akhil R (10):
crypto: tegra - Use separate buffer for setkey
crypto: tegra - Do not use fixed size buffers
crypto: tegra - check return value for hash do_one_req
crypto: tegra - Transfer HASH init function to crypto engine
crypto: tegra - Fix HASH intermediate result handling
crypto: tegra - Use HMAC fallback when keyslots are full
crypto: tegra - Fix CMAC intermediate result handling
crypto: tegra - Set IV to NULL explicitly for AES ECB
crypto: tegra - finalize crypto req on error
crypto: tegra - Reserve keyslots to allocate dynamically
Al Viro (3):
spufs: fix a leak on spufs_new_file() failure
spufs: fix gang directory lifetimes
spufs: fix a leak in spufs_create_context()
Alex Deucher (3):
drm/amdgpu/umsch: fix ucode check
drm/amdgpu/gfx11: fix num_mec
drm/amdgpu/gfx12: fix num_mec
Alexander Wetzel (3):
wifi: mac80211: Cleanup sta TXQs on flush
wifi: mac80211: remove debugfs dir for virtual monitor
wifi: mac80211: Fix sparse warning for monitor_sdata
Alexandre Ghiti (2):
riscv: Fix missing __free_pages() in check_vector_unaligned_access()
riscv: Fix hugetlb retrieval of number of ptes in case of !present pte
Alexandru Gagniuc (1):
kbuild: deb-pkg: don't set KBUILD_BUILD_VERSION unconditionally
Alexey Klimov (1):
ASoC: codecs: wsa884x: report temps to hwmon in millidegree of Celsius
Alice Ryhl (1):
rust: fix signature of rust_fmt_argument
Alistair Popple (1):
fuse: fix dax truncate/punch_hole fault path
Andrew Jones (3):
riscv: Annotate unaligned access init functions
riscv: Fix riscv_online_cpu_vec
riscv: Fix check_unaligned_access_all_cpus
Andrii Nakryiko (1):
libbpf: Fix hypothetical STT_SECTION extern NULL deref case
Andy Shevchenko (3):
auxdisplay: panel: Fix an API misuse in panel.c
pinctrl: npcm8xx: Fix incorrect struct npcm8xx_pincfg assignment
pinctrl: intel: Fix wrong bypass assignment in intel_pinctrl_probe_pwm()
Angelo Dureghello (1):
iio: dac: adi-axi-dac: modify stream enable
AngeloGioacchino Del Regno (2):
drm/mediatek: mtk_hdmi: Unregister audio platform device on failure drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member
Angelos Oikonomopoulos (1):
arm64: Don't call NULL in do_compat_alignment_fixup()
Anshuman Khandual (1):
arch/powerpc: drop GENERIC_PTDUMP from mpc885_ads_defconfig
Antheas Kapenekakis (1):
ALSA: hda/realtek: Fix Asus Z13 2025 audio
Antoine Tenart (1):
net: decrease cached dst counters in dst_release
Armin Wolf (1):
platform/x86: dell-ddv: Fix temperature calculation
Arnaldo Carvalho de Melo (5):
perf units: Fix insufficient array space
perf python: Fixup description of sample.id event member perf python: Decrement the refcount of just created event on failure perf python: Don't keep a raw_data pointer to consumed ring buffer space perf python: Check if there is space to copy all the event
Arnd Bergmann (6):
x86/platform: Only allow CONFIG_EISA for 32-bit
dummycon: fix default rows/cols
mdacon: rework dependency list
crypto: bpf - Add MODULE_DESCRIPTION for skcipher x86/Kconfig: Add cmpxchg8b support back to Geode CPUs
ASoC: cs42l43: convert to SYSTEM_SLEEP_PM_OPS
Artur Weber (1):
power: supply: max77693: Fix wrong conversion of charge input threshold value
Ashley Smith (1):
drm/panthor: Update CS_STATUS_ defines to correct values
Atish Patra (2):
RISC-V: KVM: Disable the kernel perf counter during configure
RISC-V: KVM: Teardown riscv specific bits after kvm_exit
Aurabindo Pillai (1):
drm/amd/display: fix an indent issue in DML21
Bairavi Alagappan (2):
crypto: qat - set parity error mask for qat_420xx
crypto: qat - remove access to parity register for QAT GEN4
Bard Liao (1):
ASoC: rt1320: set wake_capable = 0 explicitly
Barnabás Czémán (1):
clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
Bart Van Assche (2):
drm: zynqmp_dp: Fix a deadlock in zynqmp_dp_ignore_hpd_set() fs/procfs: fix the comment above proc_pid_wchan()
Benjamin Berg (3):
x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
um: remove copy_from_kernel_nofault_allowed
um: hostfs: avoid issues on inode number reuse by host
Benjamin Gaignard (1):
media: verisilicon: HEVC: Initialize start_bit field
Björn Töpel (1):
riscv/purgatory: 4B align purgatory_start
Boris Ostrovsky (1):
x86/microcode/AMD: Fix __apply_microcode_amd()'s return value
Caleb Sander Mateos (2):
io_uring/net: only import send_zc buffer once nvme/ioctl: don't warn on vectorized uring_cmd with fixed buffer
Candice Li (1):
Remove unnecessary firmware version check for gc v9_4_2
Chao Gao (1):
x86/fpu/xstate: Fix inconsistencies in guest FPU xfeatures
Charles Han (1):
clk: mmp: Fix NULL vs IS_ERR() check
Cheng Xu (1):
RDMA/erdma: Prevent use-after-free in erdma_accept_newconn()
Chenyuan Yang (2):
thermal: int340x: Add NULL check for adev
w1: fix NULL pointer dereference in probe
Chiara Meiohas (1):
RDMA/mlx5: Fix calculation of total invalidated pages
Christian Brauner (1):
fs: support O_PATH fds with FSCONFIG_SET_FD
Christian Eggers (1):
ARM: 9444/1: add KEEP() keyword to ARM_VECTORS
Christian Schoenebeck (1):
fs/9p: fix NULL pointer dereference on mkdir
Christophe JAILLET (2):
PCI: histb: Fix an error handling path in histb_pcie_probe()
ASoC: codecs: rt5665: Fix some error handling paths in rt5665_probe()
Christophe Leroy (2):
crypto: powerpc: Mark ghashp8-ppc.o as an OBJECT_FILES_NON_STANDARD powerpc/kexec: fix physical address calculation in clear_utlb_entry()
Chuck Lever (3):
NFSD: nfsd_unlink() clobbers non-zero status returned from fh_fill_pre_attrs()
NFSD: Never return NFS4ERR_FILE_OPEN when removing a directory
NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up
Claudiu Beznea (3):
pinctrl: renesas: rzg2l: Suppress binding attributes
clk: renesas: r8a08g045: Check the source of the CPU PLL settings
rtc: renesas-rtca3: Disable interrupts only if the RTC is enabled
Cong Wang (1):
net_sched: skbprio: Remove overly strict queue assertions
Cyan Yang (1):
selftests/mm/cow: fix the incorrect error handling
Dan Carpenter (7):
PCI: Remove stray put_device() in pci_register_host_bridge() drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()
PCI: dwc: ep: Return -ENOMEM for allocation failures fs/ntfs3: Fix a couple integer overflows on 32bit systems fs/ntfs3: Prevent integer overflow in hdr_first_de()
nfs: Add missing release on error in nfs_lock_and_join_requests() platform/x86/amd/pmf: fix cleanup in amd_pmf_init_smart_pc()
Daniel Bárta (1):
ALSA: hda: Fix speakers on ASUS EXPERTBOOK P5405CSA 1.0
Daniel Stodden (1):
PCI/ASPM: Fix link state exit during switch upstream function removal
Danila Chernetsov (1):
fbdev: sm501fb: Add some geometry checks.
Dapeng Mi (1):
perf x86/topdown: Fix topdown leader sampling test error on hybrid
Dave Marquardt (1):
net: ibmveth: make veth_pool_store stop hanging
Dave Penkler (9):
staging: gpib: Fix pr_err format warning
staging: gpib: Fix cb7210 pcmcia Oops
staging: gpib: ni_usb console messaging cleanup
staging: gpib: Fix Oops after disconnect in ni_usb
staging: gpib: Add missing mutex unlock in agilent usb driver
staging: gpib: Fix NULL pointer dereference in detach
staging: gpib: Agilent usb code cleanup
staging: gpib: agilent usb console messaging cleanup
staging: gpib: Fix Oops after disconnect in agilent usb
David E. Box (1):
platform/x86/intel/vsec: Add Diamond Rapids support
David Gow (1):
um: Pass the correct Rust target and options with gcc
David Hildenbrand (3):
x86/mm/pat: Fix VM_PAT handling when fork() fails in copy_page_range() kernel/events/uprobes: handle device-exclusive entries correctly in __replace_page() mm/gup: reject FOLL_SPLIT_PMD with hugetlb VMAs
David Howells (1):
netfs: Fix netfs_unbuffered_read() to return ssize_t rather than int
David Laight (1):
objtool: Fix verbose disassembly if CROSS_COMPILE isn't set
David Oberhollenzer (1):
net: dsa: mv88e6xxx: propperly shutdown PPU re-enable timer on destroy
Debin Zhu (1):
netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets
Dmitry Baryshkov (1):
drm/msm/dpu: don't use active in atomic_check()
Dmitry Panchenko (1):
platform/x86: intel-hid: fix volume buttons on Microsoft Surface Go 4 tablet
Douglas Anderson (1):
drm/mediatek: dp: drm_err => dev_err in HPD path to avoid NULL ptr
Douglas Raillard (2):
tracing: Ensure module defining synth event cannot be unloaded while tracing
tracing: Fix synth event printk format for str fields
Eduard Christian Dumitrescu (1):
platform/x86: thinkpad_acpi: disable ACPI fan access for T495* and E560
Emil Tantilov (1):
idpf: fix adapter NULL pointer dereference on reboot
Emmanuel Grumbach (2):
wifi: iwlwifi: mvm: use the right version of the rate API
wifi: mac80211: flush the station before moving it to UN-AUTHORIZED state
Eric Dumazet (1):
sctp: add mutual exclusion in proc_sctp_do_udp_port()
Eric Sandeen (1):
watch_queue: fix pipe accounting mismatch
Fabrizio Castro (3):
pinctrl: renesas: rza2: Fix missing of_node_put() call
pinctrl: renesas: rzg2l: Fix missing of_node_put() call
pinctrl: renesas: rzv2m: Fix missing of_node_put() call
Feng Tang (1):
PCI/portdrv: Only disable pciehp interrupts early when needed
Feng Yang (1):
ring-buffer: Fix bytes_dropped calculation issue
Fernando Fernandez Mancera (1):
ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS
Florian Fainelli (2):
spi: bcm2835: Do not call gpiod_put() on invalid descriptor
spi: bcm2835: Restore native CS probing when pinctrl-bcm2835 is absent
Florian Westphal (2):
selftests: netfilter: skip br_netfilter queue tests if kernel is tainted
netfilter: nf_tables: don't unregister hook when table is dormant
Frieder Schrempf (1):
regulator: pca9450: Fix enable register for LDO5
Geert Uytterhoeven (2):
auxdisplay: MAX6959 should select BITREVERSE drm/bridge: ti-sn65dsi86: Fix multiple instances
Geetha sowjanya (2):
octeontx2-af: Fix mbox INTR handler when num VFs > 64
octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
Gergo Koteles (1):
ACPI: video: Handle fetching EDID as ACPI_TYPE_PACKAGE
Giovanni Gherdovich (1):
ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
Greg Kroah-Hartman (1):
Linux 6.13.11
Guilherme G. Piccoli (1):
x86/tsc: Always save/restore TSC sched_clock() on suspend/resume
Guillaume Nault (1):
tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().
Hans Zhang (1):
PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload
Hans de Goede (1):
ACPI: x86: Extend Lenovo Yoga Tab 3 quirk with skip GPIO event-handlers
Heiko Stuebner (1):
phy: phy-rockchip-samsung-hdptx: Don't use dt aliases to determine phy-id
Hengqi Chen (3):
LoongArch: BPF: Fix off-by-one error in build_prologue()
LoongArch: BPF: Don't override subprog's return value
LoongArch: BPF: Use move_addr() for BPF_PSEUDO_FUNC
Henry Martin (2):
ASoC: imx-card: Add NULL check in imx_card_probe()
arcnet: Add NULL check in com20020pci_probe()
Herbert Xu (3):
crypto: iaa - Test the correct request flag
crypto: api - Fix larval relookup type and mask
crypto: nx - Fix uninitialised hv_nxc on error
Hermes Wu (1):
drm/bridge: it6505: fix HDCP V match check is not performed correctly
Herton R. Krzesinski (1):
x86/uaccess: Improve performance by aligning writes to 8 bytes in copy_user_generic(), on non-FSRM/ERMS CPUs
Hou Tao (1):
bpf: Use preempt_count() directly in bpf_send_signal_common()
Huacai Chen (2):
LoongArch: Increase ARCH_DMA_MINALIGN up to 16
LoongArch: Increase MAX_IO_PICS up to 8
Ian Rogers (7):
libbpf: Add namespace for errstr making it libbpf_errstr perf stat: Fix find_stat for mixed legacy/non-legacy events perf stat: Don't merge counters purely on name
perf pmu: Rename name matching for no suffix or wildcard variants tools/x86: Fix linux/unaligned.h include path in lib/insn.c perf debug: Avoid stack overflow in recursive error message perf evlist: Add success path to evlist__create_syswide_maps
Icenowy Zheng (2):
nvme-pci: clean up CMBMSC when registering CMB fails
nvme-pci: skip CMB blocks incompatible with PCI P2P DMA
Ido Schimmel (2):
ipv6: Start path selection from the first nexthop
ipv6: Do not consider link down nexthops in path selection
Ilkka Koskinen (2):
coresight: catu: Fix number of pages while using 64k pages perf vendor events arm64 AmpereOneX: Fix frontend_bound calculation
Ilpo Järvinen (6):
platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: Make symbol static platform/x86: dell-uart-backlight: Make dell_uart_bl_serdev_driver static
PCI: Remove add_align overwrite unrelated to size0
PCI: Fix BAR resizing when VF BARs are assigned
PCI: pciehp: Don't enable HPIE when resuming in poll mode PCI/bwctrl: Fix pcie_bwctrl_select_speed() return type
Jacky Bai (2):
cpuidle: Init cpuidle only for present CPUs
cpufreq: Init cpufreq only for present CPUs
Jakub Kicinski (1):
net: dsa: rtl8366rb: don't prompt users for LED control
James Clark (4):
perf: Always feature test reallocarray
perf tests: Fix Tool PMU test segfault
perf pmu: Don't double count common sysfs and json events
perf: intel-tpebs: Fix incorrect usage of zfree()
James Morse (1):
x86/resctrl: Fix allocation of cleanest CLOSID on platforms with no monitors
Jann Horn (3):
x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs
Jason-JH Lin (1):
drm/mediatek: Fix config_updating flag never false when no mbox channel
Javier Martinez Canillas (1):
drm/ssd130x: Set SPI .id_table to prevent an SPI core warning
Jayesh Choudhary (1):
ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible
Jeff Layton (1):
nfsd: allow SC_STATUS_FREEABLE when searching via nfs4_lookup_stateid()
Jens Axboe (1):
io_uring/net: improve recv bundles
Jerome Brunet (4):
clk: amlogic: gxbb: drop incorrect flag on 32k clock
clk: amlogic: g12b: fix cluster A parent data
clk: amlogic: gxbb: drop non existing 32k clock parent
clk: amlogic: g12a: fix mmc A peripheral clock
Jiayuan Chen (1):
bpf: Fix array bounds error with may_goto
Jie Zhan (1):
cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
Jim Liu (1):
net: phy: broadcom: Correct BCM5221 PHY model detection
Jim Quinlan (4):
PCI: brcmstb: Set generation limit before PCIe link up
PCI: brcmstb: Use internal register to change link capability
PCI: brcmstb: Fix error path after a call to regulator_bulk_get()
PCI: brcmstb: Fix potential premature regulator disabling
Jinghao Jia (1):
samples/bpf: Fix broken vmlinux path for VMLINUX_BTF
Jiri Kosina (1):
HID: remove superfluous (and wrong) Makefile entry for CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER
Jiri Olsa (1):
uprobes/x86: Harden uretprobe syscall trampoline check
Jiri Slaby (SUSE) (1):
tty: n_tty: use uint for space returned by tty_write_room()
Joe Hattori (2):
media: platform: allgro-dvt: unregister v4l2_device on the error path
soundwire: slave: fix an OF node reference leak in soundwire slave device
Johannes Berg (2):
wifi: iwlwifi: fw: allocate chained SG tables for dump
wifi: mac80211: fix SA Query processing in MLO
John Keeping (3):
drm/ssd130x: fix ssd132x encoding
drm/ssd130x: ensure ssd132x pitch is correct
drm/panel: ilitek-ili9882t: fix GPIO name in error messageJonathan Cameron (2):
iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
iio: accel: msa311: Fix failure to release runtime pm if direct mode claim fails.
Jonathan Santos (1):
iio: adc: ad7768-1: set MOSI idle state to prevent accidental reset
Josh Poimboeuf (9):
x86/traps: Make exc_double_fault() consistently noreturn objtool, nvmet: Fix out-of-bounds stack access in nvmet_ctrl_state_show() objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
objtool: Fix segfault in ignore_unreachable_insn()
sched/smt: Always inline sched_smt_active()
context_tracking: Always inline ct_{nmi,irq}_{enter,exit}()
rcu-tasks: Always inline rcu_irq_work_resched() objtool/loongarch: Add unwind hints in prepare_frametrace()
spi: cadence: Fix out-of-bounds array access in cdns_mrvl_xspi_setup_clock()
José Expósito (1):
drm/vkms: Fix use after free and double free on init error
Juhan Jin (1):
riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra
Kai-Heng Feng (1):
PCI: Use downstream bridges for distributing resources
Kan Liang (2):
perf tools: Add skip check in tool_pmu__event_to_str() perf/x86/intel: Avoid disable PMU if !cpuc->enabled in sample read
Karan Sanghavi (1):
iio: light: Add check for array bounds in veml6075_read_int_time_ms
Karel Balej (1):
mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
Kees Bakker (1):
RDMA/mana_ib: Ensure variable err is initialized
Kees Cook (1):
kunit/stackinit: Use fill byte different from Clang i386 pattern
Keith Busch (1):
nvme-pci: fix stuck reset on concurrent DPC and HP
Kevin Loughlin (1):
x86/sev: Add missing RIP_REL_REF() invocations during sme_enable()
Konrad Dybcio (1):
clk: qcom: gcc-x1e80100: Unregister GCC_GPU_CFG_AHB_CLK/GCC_DISP_XO_CLK
Konstantin Andreev (2):
smack: dont compile ipv6 code unless ipv6 is configured
smack: ipv4/ipv6: tcp/dccp/sctp: fix incorrect child socket label
Konstantin Komarov (1):
fs/ntfs3: Update inode->i_mapping->a_ops on compression state
Krzysztof Kozlowski (1):
drm/msm/dsi/phy: Program clock inverters in correct register
Kuniyuki Iwashima (3):
rtnetlink: Use register_pernet_subsys() in rtnl_net_debug_init().
udp: Fix multiple wraparounds of sk->sk_rmem_alloc.
udp: Fix memory accounting leak.
Lama Kayal (1):
net/mlx5e: SHAMPO, Make reserved size independent of page size
Laurentiu Mihalcea (1):
clk: clk-imx8mp-audiomix: fix dsp/ocram_a clock parents
Len Brown (1):
tools/power turbostat: report CoreThr per measurement interval
Leo Yan (1):
perf arm-spe: Fix load-store operation checking
Li Huafei (1):
watchdog/hardlockup/perf: Fix perf_event memory leak
Li Lingfeng (1):
nfsd: put dl_stid if fail to queue dl_recall
Likhitha Korrapati (1):
perf tools: Fix is_compat_mode build break in ppc64
Lin Ma (2):
netfilter: nft_tunnel: fix geneve_opt type confusion addition
net: fix geneve_opt length integer overflow
Lo-an Chen (1):
drm/amd/display: Fix incorrect fw_state address in dmub_srv
Lubomir Rintel (1):
rndis_host: Flag RNDIS modems as WWAN devices
Luca Ceresoli (1):
perf build: Fix in-tree build due to symbolic link
Luca Weiss (4):
remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
remoteproc: qcom: pas: add minidump_id to SC7280 WPSS
remoteproc: qcom_q6v5_pas: Use resource with CX PD for MSM8226
remoteproc: qcom_q6v5_mss: Handle platforms with one power domain
Lukas Hetzenecker (1):
platform/surface: aggregator_registry: Add Support for Surface Pro 11
Lukas Wunner (1):
PCI/bwctrl: Fix NULL pointer dereference on bus number exhaustion
Maciej Strozek (1):
ASoC: cs42l43: Add jack delay debounce after suspend
Maher Sanalla (1):
IB/mad: Check available slots before posting receive WRs
Maksim Davydov (1):
x86/split_lock: Fix the delayed detection logic
Manikanta Mylavarapu (2):
drivers: clk: qcom: ipq5424: fix the freq table of sdcc1_apps clock
clk: qcom: ipq5424: fix software and hardware flow control error of UART
Marcus Meissner (1):
perf tools: annotate asm_pure_loop.S
Marijn Suijten (2):
drm/msm/dsi: Use existing per-interface slice count in DSC timing drm/msm/dsi: Set PHY usescase (and mode) before registering DSI host
Mario Limonciello (2):
ucsi_ccg: Don't show failed to get FW build information error drm/amd: Keep display off while going into S4
Mark Zhang (1):
rtnetlink: Allocate vfinfo size for VF GUIDs when supported
Markus Elfring (2):
fbdev: au1100fb: Move a variable assignment behind a null pointer check
ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()
Masami Hiramatsu (Google) (2):
tracing/hist: Add poll(POLLIN) support on hist file tracing/hist: Support POLLPRI event for poll on histogram
Matthias Proske (1):
wifi: brcmfmac: keep power during suspend if board requires it
Maud Spierings (1):
dt-bindings: vendor-prefixes: add GOcontroll
Maurizio Lombardi (1):
nvme-pci: skip nvme_write_sq_db on empty rqlist
Miaoqian Lin (3):
ksmbd: use aead_request_free to match aead_request_alloc
LoongArch: Fix device node refcount leak in fdt_cpu_clk_init()
mmc: omap: Fix memory leak in mmc_omap_new_slot
Michael Guralnik (2):
RDMA/mlx5: Fix page_size variable overflow RDMA/mlx5: Fix MR cache initialization error flow
Michael Kelley (1):
x86/hyperv: Fix output argument to hypercall that changes page visibility
Mike Christie (1):
vhost-scsi: Fix handling of multiple calls to vhost_scsi_set_endpoint
Mike Rapoport (Microsoft) (1):
x86/mm/pat: cpa-test: fix length for CPA_ARRAY test
Ming Lei (1):
ublk: make sure ubq->canceling is set when queue is frozen
Ming Yen Hsieh (2):
wifi: mt76: mt7925: remove unused acpi function for clc
wifi: mt76: mt7921: fix kernel panic due to null pointer dereference
Murad Masimov (2):
acpi: nfit: fix narrowing conversion in acpi_nfit_ctl
media: streamzap: fix race between device disconnection and urb callback
Naman Jain (1):
x86/hyperv/vtl: Stop kernel from probing VTL0 low memory
Namhyung Kim (2):
perf report: Switch data file correctly in TUI perf bpf-filter: Fix a parsing error with comma
Namjae Jeon (8):
ksmbd: fix multichannel connection failure
ksmbd: fix r_count dec/increment mismatch
smb: common: change the data type of num_aces to le16
cifs: fix incorrect validation for num_aces field of smb_acl
ksmbd: add bounds check for durable handle context
ksmbd: fix use-after-free in ksmbd_sessions_deregister()
ksmbd: fix session use-after-free in multichannel connection
ksmbd: fix null pointer dereference in alloc_preauth_hash()
Nathan Chancellor (2):
crypto: tegra - Fix format specifier in tegra_sha_prep_cmd()
ARM: 9443/1: Require linker to support KEEP within OVERLAY for DCE
Navon John Lukose (1):
ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx
Neil Armstrong (1):
clk: qcom: gcc-sm8650: Do not turn off USB GDSCs during gdsc_disable()
NeilBrown (1):
NFS: fix open_owner_id_maxsz and related fields.
Nihar Chaithanya (3):
staging: gpib: Modify gpib_register_driver() to return error if it fails
staging: gpib: ni_usb: Handle gpib_register_driver() errors
staging: gpib: agilent_82357a: Handle gpib_register_driver() errors
Nikita Shubin (1):
ntb: intel: Fix using link status DB's
Nikita Zhandarovich (2):
mfd: sm501: Switch to BIT() to mitigate integer overflows
media: vimc: skip .s_stream() for stopped entities
Niklas Neronin (1):
usb: xhci: correct debug message page size calculation
Niklas Schnelle (1):
s390: Remove ioremap_wt() and pgprot_writethrough()
Nishanth Aravamudan (1):
PCI: Avoid reset when disabled via sysfs
Norbert Szetei (3):
ksmbd: add bounds check for create lease context
ksmbd: fix overflow in dacloffset bounds check
ksmbd: validate zero num_subauth before sub_auth is accessed
Nuno Sá (1):
iio: backend: make sure to NULL terminate stack buffer
Oleg Nesterov (2):
seccomp: fix the __secure_computing() stub for !HAVE_ARCH_SECCOMP_FILTER
exec: fix the racy usage of fs_struct->in_exec
Olga Kornievskaia (1):
nfsd: fix management of listener transports
Oliver Hartkopp (1):
can: statistics: use atomic access in hot path
Olivia Mackintosh (1):
ALSA: usb-audio: separate DJM-A9 cap lvl options
Pablo Neira Ayuso (1):
netfilter: nft_set_hash: GC reaps elements with conncount for dynamic sets only
Palmer Dabbelt (1):
RISC-V: errata: Use medany for relocatable builds
Paolo Bonzini (1):
KVM: x86: block KVM_CAP_SYNC_REGS if guest state is protected
Patrisious Haddad (1):
RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
Paul Menzel (1):
ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
Paulo Alcantara (1):
smb: client: don't retry IO on failed negprotos with soft mounts
Peng Fan (3):
remoteproc: core: Clear table_sz when rproc_shutdown
dmaengine: fsl-edma: cleanup chan after dma_async_device_unregister
dmaengine: fsl-edma: free irq correctly in remove path
Peter Geis (1):
clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent
Peter Zijlstra (2):
lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock perf/core: Fix perf_pmu_register() vs. perf_init_event()
Peter Zijlstra (Intel) (1):
perf/x86/intel: Apply static call for drain_pebs
Prathamesh Shete (1):
pinctrl: tegra: Set SFIO mode to Mux Register
Qasim Ijaz (2):
isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
jfs: fix slab-out-of-bounds read in ea_get()
Qiuxu Zhuo (5):
EDAC/igen6: Fix the flood of invalid error reports EDAC/{skx_common,i10nm}: Fix some missing error reports on Emerald Rapids EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer EDAC/ie31200: Fix the DIMM size mask for several SoCs EDAC/ie31200: Fix the error path order of ie31200_init()
Rafael J. Wysocki (2):
PM: sleep: Adjust check before setting power.must_resume
PM: sleep: Fix handling devices with direct_complete set on errors
Ran Xiaokai (1):
tracing/osnoise: Fix possible recursive locking for cpus_read_lock()
Remi Pommarel (1):
leds: Fix LED_OFF brightness race
Richard Fitzgerald (1):
firmware: cs_dsp: Ensure cs_dsp_load[_coeff]() returns 0 on success
Ritu Chaudhary (1):
ASoC: tegra: Use non-atomic timeout for ADX status register
Rob Clark (1):
drm/msm/a6xx: Fix a6xx indexed-regs in devcoreduump
Robin Murphy (1):
media: omap3isp: Handle ARM dma_iommu_mapping
Rodrigo Vivi (1):
drm/xe/guc_pc: Retry and wait longer for GuC PC start
Roger Quadros (1):
memory: omap-gpmc: drop no compatible check
Roman Gushchin (1):
RDMA/core: Don't expose hw_counters outside of init net namespace
Roman Smirnov (1):
jfs: add index corruption check to DT_GETPAGE()
Sagi Grimberg (1):
nvme-tcp: fix possible UAF in nvme_tcp_poll
Saket Kumar Bhaskar (1):
selftests/bpf: Select NUMA_NO_NODE to create map
Santosh Mahto (1):
staging: gpib: Replace semaphore with completion for one-time signaling
Sean Christopherson (1):
KVM: SVM: Don't change target vCPU state on AP Creation VMGEXIT error
Sebastian Andrzej Siewior (1):
lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
Shay Drory (1):
PCI: Fix NULL dereference in SR-IOV VF creation error path
Sherry Sun (4):
tty: serial: fsl_lpuart: Use u32 and u8 for register variables
tty: serial: fsl_lpuart: use port struct directly to simply code
tty: serial: fsl_lpuart: Fix unused variable 'sport' build warning
tty: serial: lpuart: only disable CTS instead of overwriting the whole UARTMODIR register
Shrikanth Hegde (1):
sched/deadline: Use online cpus for validating runtime
Shuai Xue (1):
x86/mce: use is_copy_from_user() to determine copy-from-user context
Shyam Sundar S K (2):
platform/x86/amd/pmf: Propagate PMF-TA return codes platform/x86/amd/pmf: Update PMF Driver for Compatibility with new PMF-TA
Sicelo A. Mhlongo (1):
power: supply: bq27xxx_battery: do not update cached flags prematurely
Simon Tatham (2):
affs: generate OFS sequence numbers starting at 1
affs: don't write overlarge OFS data block size fields
Sourabh Jain (1):
kexec: initialize ELF lowest address to ULONG_MAX
Srinivas Pandruvada (1):
platform/x86: ISST: Correct command storage data length
Srinivasan Shanmugam (2):
drm/amdgpu: Replace Mutex with Spinlock for RLCG register access to avoid Priority Inversion in SRIOV drm/amdkfd: Fix Circular Locking Dependency in 'svm_range_cpu_invalidate_pagetables'
Stanislav Spassov (1):
x86/fpu: Fix guest FPU state buffer allocation size
Stanley Chu (1):
i3c: master: svc: Fix missing the IBI rules
Stefan Binding (7):
ALSA: hda/realtek: Add support for ASUS ROG Strix G814 Laptop using CS35L41 HDA
ALSA: hda/realtek: Add support for ASUS ROG Strix GA603 Laptops using CS35L41 HDA
ALSA: hda/realtek: Add support for ASUS ROG Strix G614 Laptops using CS35L41 HDA
ALSA: hda/realtek: Add support for various ASUS Laptops using CS35L41 HDA
ALSA: hda/realtek: Add support for ASUS B3405 and B3605 Laptops using CS35L41 HDA
ALSA: hda/realtek: Add support for ASUS B5405 and B5605 Laptops using CS35L41 HDA
ALSA: hda/realtek: Add support for ASUS Zenbook UM3406KA Laptops using CS35L41 HDA
Stefan Wahren (3):
staging: vchiq_arm: Register debugfs after cdev
staging: vchiq_arm: Fix possible NPR of keep-alive thread
staging: vchiq_arm: Stop kthreads if vchiq cdev register fails
Stefano Garzarella (1):
vsock: avoid timeout during connect() if the socket is closing
Stephen Brennan (1):
perf dso: fix dso__is_kallsyms() check
Steven Price (1):
drm/panthor: Clean up FW version information display
Steven Rostedt (3):
tracing: Switch trace_events_hist.c code over to use guard()
tracing: Verify event formats that have "%*p.."
tracing: Do not use PERF enums when perf is not defined
Sungjong Seo (2):
exfat: fix random stack corruption after get_block
exfat: fix potential wrong error return from get_block
Suzuki K Poulose (3):
dma: Fix encryption bit clearing for dma_to_phys
dma: Introduce generic dma_addr_*crypted helpers
arm64: realm: Use aliased addresses for device DMA to shared buffers
Sven Schnelle (1):
s390/entry: Fix setting _CIF_MCCK_GUEST with lowcore relocation
Taehee Yoo (1):
net: devmem: do not WARN conditionally after netdev_rx_queue_restart()
Takashi Iwai (4):
ALSA: hda/realtek: Always honor no_shutup_pins
ALSA: timer: Don't take register_mutex with copy_from/to_user()
ALSA: hda/realtek: Fix built-in mic breakage on ASUS VivoBook X515JA
ALSA: hda/realtek: Fix built-in mic on another ASUS VivoBook model
Tanya Agarwal (1):
lib: 842: Improve error handling in sw842_compress()
Tao Chen (1):
perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
Tasos Sahanidis (1):
hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}Tengda Wu (3):
selftests/bpf: Fix freplace_link segfault in tailcalls prog test
tracing: Correct the refcount if the hist/hist_debug file fails to open
tracing: Fix use-after-free in print_graph_function_flags during tracer switching
Thadeu Lima de Souza Cascardo (1):
drm/amd/display: avoid NPD when ASIC does not support DMUB
Theodore Ts'o (1):
ext4: don't over-report free space or inodes in statvfs
Thippeswamy Havalige (1):
PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe
Thomas Richter (2):
perf test: Fix Hwmon PMU test endianess issue perf bench: Fix perf bench syscall loop count
Thomas Weißschuh (1):
x86/vdso: Fix latent bug in vclock_pages calculation
Tianchen Ding (1):
sched/eevdf: Force propagating min_slice of cfs_rq when {en,de}queue tasks
Tianyu Lan (1):
x86/hyperv: Fix check of return value from snp_set_vmsa()
Tim Schumacher (1):
selinux: Chain up tool resolving errors in install_policy.sh
Tingbo Liao (1):
riscv: Fix the __riscv_copy_vec_words_unaligned implementation
Tobias Waldekranz (1):
net: mvpp2: Prevent parser TCAM memory corruption
Tomi Valkeinen (1):
drm: xlnx: zynqmp: Fix max dma segment size
Tony Ambardar (2):
selftests/bpf: Fix runqslower cross-endian build
libbpf: Fix accessing BTF.ext core_relo header
Trond Myklebust (5):
NFSv4: Don't trigger uneccessary scans for return-on-close delegations
NFSv4: Avoid unnecessary scans of filesystems for returning delegations
NFSv4: Avoid unnecessary scans of filesystems for expired delegations
NFSv4: Avoid unnecessary scans of filesystems for delayed delegations
NFS: Shut down the nfs_client only after all the superblocks
Tushar Dave (1):
PCI/ACS: Fix 'pci=config_acs=' parameter
Ulf Hansson (1):
mmc: sdhci-omap: Disable MMC_CAP_AGGRESSIVE_PM for eMMC/SD
Uwe Kleine-König (3):
iio: adc: ad4130: Fix comparison of channel setups
iio: adc: ad7124: Fix comparison of channel configs
iio: adc: ad7173: Fix comparison of channel configs
Vaibhav Jain (1):
powerpc/perf: Fix ref-counting on the PMU 'vpa_pmu'
Vasiliy Kovalev (1):
ocfs2: validate l_tree_depth to avoid out-of-bounds access
Venkata Prasad Potturu (1):
ASoC: amd: acp: Fix for enabling DMIC on acp platforms via _DSD entry
Veronika Molnarova (1):
perf test stat_all_pmu.sh: Correctly check 'perf stat' result
Viktor Malik (1):
selftests/bpf: Fix string read in strncmp benchmark
Vishal Annapurve (1):
x86/tdx: Fix arch_safe_halt() execution for TDX VMs
Vitalii Mordan (1):
gpu: cdns-mhdp8546: fix call balance of mhdp->clk handling routines
Vitaliy Shevtsov (2):
ASoC: cs35l41: check the return value from spi_setup() drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()
Vitaly Kuznetsov (1):
x86/entry: Add __init to ia32_emulation_override_cmdline()
Vitaly Lifshits (1):
e1000e: change k1 configuration on MTP and later platforms
Vladimir Lypak (1):
clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
Vladis Dronov (1):
x86/sgx: Warn explicitly if X86_FEATURE_SGX_LC is not enabled
WANG Rui (1):
rust: Fix enabling Rust and building with GCC for LoongArch
Waiman Long (1):
locking/semaphore: Use wake_q to wake up processes outside lock critical section
Wang Liang (2):
RDMA/core: Fix use-after-free when rename device name
xsk: Fix __xsk_generic_xmit() error code when cq is full
Wang Zhaolong (1):
smb: client: Fix netns refcount imbalance causing leaks and use-after-free
Wayne Lin (1):
drm/dp_mst: Fix drm RAD print
Wenkai Lin (3):
crypto: hisilicon/sec2 - fix for aead authsize alignment
crypto: hisilicon/sec2 - fix for sec spec check
crypto: hisilicon/sec2 - fix for aead auth key length
Wentao Guan (1):
HID: i2c-hid: improve i2c_hid_get_report error message
Wentao Liang (1):
greybus: gb-beagleplay: Add error handling for gb_greybus_init
Will McVicker (1):
clk: samsung: Fix UBSAN panic in samsung_clk_init()
Yajun Deng (1):
ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans
Yang Wang (1):
drm/amdgpu: refine smu send msg debug log format
Yao Zi (1):
riscv/kexec_file: Handle R_RISCV_64 in purgatory relocator
Yeoreum Yun (1):
perf/core: Fix child_total_time_enabled accounting bug at task exit
Yi Lai (1):
selftests/pcie_bwctrl: Add 'set_pcie_speed.sh' to TEST_PROGS
Ying Lu (1):
usbnet:fix NPE during rx_complete
Yosry Ahmed (1):
mm: zswap: fix crypto_free_acomp() deadlock in zswap_cpu_comp_dead()
Yuanfang Zhang (1):
coresight-etm4x: add isb() before reading the TRCSTATR
Yue Haibing (2):
pinctrl: nuvoton: npcm8xx: Fix error handling in npcm8xx_gpio_fw() drm/xe: Fix unmet direct dependencies warning
Yuezhang Mo (3):
exfat: fix the infinite loop in exfat_find_last_cluster()
exfat: fix missing shutdown check
exfat: add a check for invalid data size
Yuli Wang (1):
LoongArch: Rework the arch_kgdb_breakpoint() implementation
Zhang Rui (1):
tools/power turbostat: Restore GFX sysfs fflush() call
Zijun Hu (1):
of: property: Increase NR_FWNODE_REFERENCE_ARGS
xueqin Luo (1):
thermal: core: Remove duplicate struct declaration
zihan zhou (1):
sched: Cancel the slice protection of the idle entity
zuoqian (1):
cpufreq: scpi: compare kHz instead of Hz
谢致邦 (XIE Zhibang) (2):
staging: rtl8723bs: select CONFIG_CRYPTO_LIB_AES
LoongArch: Fix help text of CMDLINE_EXTEND in Kconfig
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/vendor-prefixes.yaml +2 -0
@@ -589,6 +589,8 @@ patternProperties: description: GlobalTop Technology, Inc. "^gmt,.*": description: Global Mixed-mode Technology, Inc. + "^gocontroll,.*": + description: GOcontroll Modular Embedded Electronics B.V. "^goldelico,.*": description: Golden Delicious Computers GmbH & Co. KG "^goodix,.*":
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 13 -SUBLEVEL = 10 +SUBLEVEL = 11 EXTRAVERSION = NAME = Baby Opossum Posse
arch/arm/Kconfig +1 -1
@@ -118,7 +118,7 @@ config ARM select HAVE_KERNEL_XZ select HAVE_KPROBES if !XIP_KERNEL && !CPU_ENDIAN_BE32 && !CPU_V7M select HAVE_KRETPROBES if HAVE_KPROBES - select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_IS_LLD) + select HAVE_LD_DEAD_CODE_DATA_ELIMINATION if (LD_VERSION >= 23600 || LD_CAN_USE_KEEP_IN_OVERLAY) select HAVE_MOD_ARCH_SPECIFIC select HAVE_NMI select HAVE_OPTPROBES if !THUMB2_KERNEL
arch/arm/include/asm/vmlinux.lds.h +9 -3
@@ -34,6 +34,12 @@#define NOCROSSREFS #endif +#ifdef CONFIG_LD_CAN_USE_KEEP_IN_OVERLAY +#define OVERLAY_KEEP (x) KEEP(x) +#else +#define OVERLAY_KEEP (x) x +#endif +/* Set start/end symbol names to the LMA for the section */ #define ARM_LMA (sym, section) \ sym##_start = LOADADDR(section); \
@@ -125,13 +131,13 @@ __vectors_lma = .; \ OVERLAY 0xffff0000 : NOCROSSREFS AT(__vectors_lma) { \ .vectors { \ - *(.vectors) \ + OVERLAY_KEEP(*(.vectors)) \ } \ .vectors.bhb.loop8 { \ - *(.vectors.bhb.loop8) \ + OVERLAY_KEEP(*(.vectors.bhb.loop8)) \ } \ .vectors.bhb.bpiall { \ - *(.vectors.bhb.bpiall) \ + OVERLAY_KEEP(*(.vectors.bhb.bpiall)) \ } \ } \ ARM_LMA(__vectors, .vectors); \
arch/arm64/include/asm/mem_encrypt.h +11 -0
@@ -21,4 +21,15 @@ static inline bool force_dma_unencrypted(struct device *dev) return is_realm_world(); } +/* +* For Arm CCA guests, canonical addresses are "encrypted", so no changes +* required for dma_addr_encrypted(). +* The unencrypted DMA buffers must be accessed via the unprotected IPA, +* "top IPA bit" set. +*/ +#define dma_addr_unencrypted (x) ((x) | PROT_NS_SHARED) + +/* Clear the "top" IPA bit while converting back */ +#define dma_addr_canonical (x) ((x) & ~PROT_NS_SHARED) +#endif /* __ASM_MEM_ENCRYPT_H */
arch/arm64/kernel/compat_alignment.c +2 -0
@@ -368,6 +368,8 @@ int do_compat_alignment_fixup(unsigned long addr, struct pt_regs *regs)return 1 ; } +if (!handler) +return 1 ; type =handler (addr, instr, regs);if (type ==TYPE_ERROR || type ==TYPE_FAULT )
arch/loongarch/Kconfig +2 -2
@@ -378,8 +378,8 @@ config CMDLINE_BOOTLOADER config CMDLINE_EXTEND bool "Use built-in to extend bootloader kernel arguments" help - The command-line arguments provided during boot will be - appended to the built-in command line. This is useful in + The built-in command line will be appended to the command- + line arguments provided during boot. This is useful in cases where the provided arguments are insufficient and you don't want to or cannot modify them.
arch/loongarch/include/asm/cache.h +2 -0
@@ -8,6 +8,8 @@#define L1_CACHE_SHIFT CONFIG_L1_CACHE_SHIFT#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT) +#define ARCH_DMA_MINALIGN (16) +#define __read_mostly __section(".data..read_mostly")#endif /* _ASM_CACHE_H */
arch/loongarch/include/asm/irq.h +1 -1
@@ -53,7 +53,7 @@ void spurious_interrupt(void);#define arch_trigger_cpumask_backtrace arch_trigger_cpumask_backtracevoid arch_trigger_cpumask_backtrace (const struct cpumask *mask,int exclude_cpu); -#define MAX_IO_PICS 2 +#define MAX_IO_PICS 8#define NR_IRQS (64 + NR_VECTORS * (NR_CPUS + MAX_IO_PICS))struct acpi_vector_group {
arch/loongarch/include/asm/stacktrace.h +3 -0
@@ -8,6 +8,7 @@#include <asm/asm.h> #include <asm/ptrace.h> #include <asm/loongarch.h> +#include <asm/unwind_hints.h> #include <linux/stringify.h> enum stack_type {
@@ -43,6 +44,7 @@ int get_stack_info(unsigned long stack, struct task_struct *task, struct stack_i static __always_inline void prepare_frametrace(struct pt_regs *regs) { __asm__ __volatile__( + UNWIND_HINT_SAVE /* Save $ra */ STORE_ONE_REG(1)/* Use $ra to save PC */
@@ -80,6 +82,7 @@ static __always_inline void prepare_frametrace(struct pt_regs *regs) STORE_ONE_REG(29) STORE_ONE_REG(30) STORE_ONE_REG(31) + UNWIND_HINT_RESTORE : "=m" (regs->csr_era) : "r" (regs->regs) : "memory");
arch/loongarch/include/asm/unwind_hints.h +9 -1
@@ -23,6 +23,14 @@ UNWIND_HINT sp_reg=ORC_REG_SP type=UNWIND_HINT_TYPE_CALL .endm -#endif /* __ASSEMBLY__ */ +#else /* !__ASSEMBLY__ */ + +#define UNWIND_HINT_SAVE \ + UNWIND_HINT(UNWIND_HINT_TYPE_SAVE, 0, 0, 0) + +#define UNWIND_HINT_RESTORE \ + UNWIND_HINT(UNWIND_HINT_TYPE_RESTORE, 0, 0, 0) + +#endif /* !__ASSEMBLY__ */ #endif /* _ASM_LOONGARCH_UNWIND_HINTS_H */
arch/loongarch/kernel/env.c +2 -0
@@ -68,6 +68,8 @@ static int __init fdt_cpu_clk_init(void)return -ENODEV ; clk =of_clk_get (np,0 ); +of_node_put (np); +if (IS_ERR (clk))return -ENODEV ;
arch/loongarch/kernel/kgdb.c +3 -2
@@ -8,6 +8,7 @@#include <linux/hw_breakpoint.h> #include <linux/kdebug.h> #include <linux/kgdb.h> +#include <linux/objtool.h> #include <linux/processor.h> #include <linux/ptrace.h> #include <linux/sched.h>
@@ -224,13 +225,13 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc) regs->csr_era = pc; } -void arch_kgdb_breakpoint (void ) +noinline void arch_kgdb_breakpoint(void) { __asm__ __volatile__ ( \".globl kgdb_breakinst\n\t" \ -"nop\n" \"kgdb_breakinst:\tbreak 2\n\t" );/* BRK_KDB = 2 */ } +STACK_FRAME_NON_STANDARD (arch_kgdb_breakpoint);/* * Calls linux_debug_hook before the kernel dies. If KGDB is enabled,
arch/loongarch/net/bpf_jit.c +10 -2
@@ -142,6 +142,8 @@ static void build_prologue(struct jit_ctx *ctx)*/ if (seen_tail_call (ctx) &&seen_call (ctx))move_reg (ctx,TCC_SAVED ,REG_TCC ); +else +emit_insn (ctx, nop); ctx->stack_size = stack_adjust; }
@@ -905,7 +907,10 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool extmove_addr (ctx, t1, func_addr);emit_insn (ctx, jirl,LOONGARCH_GPR_RA , t1,0 ); -move_reg (ctx, regmap[BPF_REG_0 ],LOONGARCH_GPR_A0 ); + +if (insn->src_reg !=BPF_PSEUDO_CALL ) +move_reg (ctx, regmap[BPF_REG_0 ],LOONGARCH_GPR_A0 ); +break ;/* tail call */
@@ -930,7 +935,10 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx, bool ext {const u64 imm64 = (u64)(insn +1 )->imm <<32 | (u32 )insn->imm; -move_imm (ctx, dst, imm64, is32); +if (bpf_pseudo_func (insn)) +move_addr (ctx, dst, imm64); +else +move_imm (ctx, dst, imm64, is32);return 1 ; }
arch/loongarch/net/bpf_jit.h +5 -0
@@ -27,6 +27,11 @@ struct jit_data {struct jit_ctx ctx; }; +static inline void emit_nop (union loongarch_instruction *insn) +{ + insn->word =INSN_NOP ; +} +#define emit_insn (ctx, func, ...) \ do { \ if (ctx->image != NULL) { \
arch/powerpc/configs/mpc885_ads_defconfig +1 -1
@@ -78,4 +78,4 @@ CONFIG_DEBUG_VM_PGTABLE=y CONFIG_DETECT_HUNG_TASK=y CONFIG_BDI_SWITCH=y CONFIG_PPC_EARLY_DEBUG=y -CONFIG_GENERIC_PTDUMP=y +CONFIG_PTDUMP_DEBUGFS=y
arch/powerpc/crypto/Makefile +1 -0
@@ -56,3 +56,4 @@ $(obj)/aesp8-ppc.S $(obj)/ghashp8-ppc.S: $(obj)/%.S: $(src)/%.pl FORCE OBJECT_FILES_NON_STANDARD_aesp10-ppc.o := y OBJECT_FILES_NON_STANDARD_ghashp10-ppc.o := y OBJECT_FILES_NON_STANDARD_aesp8-ppc.o := y +OBJECT_FILES_NON_STANDARD_ghashp8-ppc.o := y
arch/powerpc/kexec/relocate_32.S +2 -5
@@ -348,16 +348,13 @@ write_utlb: rlwinm r10, r24, 0, 22, 27 cmpwi r10, PPC47x_TLB0_4K - bne 0f li r10, 0x1000 /* r10 = 4k */ - ANNOTATE_INTRA_FUNCTION_CALL - bl 1f + beq 0f -0: /* Defaults to 256M */ lis r10, 0x1000 - bcl 20,31,$+4 +0: bcl 20,31,$+4 1: mflr r4 addi r4, r4, (2f-1b) /* virtual address of 2f */
arch/powerpc/perf/vpa-pmu.c +1 -0
@@ -156,6 +156,7 @@ static void vpa_pmu_del(struct perf_event *event, int flags) }static struct pmu vpa_pmu = { + .module =THIS_MODULE , .task_ctx_nr = perf_sw_context, .name ="vpa_pmu" , .event_init = vpa_pmu_event_init,
arch/powerpc/platforms/cell/spufs/gang.c +1 -0
@@ -25,6 +25,7 @@ struct spu_gang *alloc_spu_gang(void)mutex_init (&gang->aff_mutex);INIT_LIST_HEAD (&gang->list);INIT_LIST_HEAD (&gang->aff_list_head); + gang->alive =1 ; out:return gang;
arch/powerpc/platforms/cell/spufs/inode.c +53 -10
133 lines not on this page · raw message
arch/powerpc/platforms/cell/spufs/spufs.h +2 -0
@@ -151,6 +151,8 @@ struct spu_gang {int aff_flags;struct spu *aff_ref_spu;atomic_t aff_sched_count; + +int alive; };/* Flag bits for spu_gang aff_flags */
arch/riscv/errata/Makefile +5 -1
@@ -1,5 +1,9 @@ ifdef CONFIG_RELOCATABLE -KBUILD_CFLAGS += -fno-pie +# We can't use PIC/PIE when handling early-boot errata parsing, as the kernel +# doesn't have a GOT setup at that point. So instead just use medany: it's +# usually position-independent, so it should be good enough for the errata +# handling. +KBUILD_CFLAGS += -fno-pie -mcmodel=medany endif ifdef CONFIG_RISCV_ALTERNATIVE_EARLY
arch/riscv/include/asm/cpufeature.h +2 -2
@@ -61,7 +61,7 @@ void __init riscv_user_isa_enable(void);#define __RISCV_ISA_EXT_SUPERSET_VALIDATE (_name, _id, _sub_exts, _validate) \ _RISCV_ISA_EXT_DATA(_name, _id, _sub_exts, ARRAY_SIZE(_sub_exts), _validate) -bool check_unaligned_access_emulated_all_cpus (void ); +bool __init check_unaligned_access_emulated_all_cpus (void );#if defined(CONFIG_RISCV_SCALAR_MISALIGNED )void check_unaligned_access_emulated (struct work_struct *work__always_unused );void unaligned_emulation_finish (void );
@@ -74,7 +74,7 @@ static inline bool unaligned_ctl_available(void) }#endif -bool check_vector_unaligned_access_emulated_all_cpus (void ); +bool __init check_vector_unaligned_access_emulated_all_cpus (void );#if defined(CONFIG_RISCV_VECTOR_MISALIGNED )void check_vector_unaligned_access_emulated (struct work_struct *work__always_unused );DECLARE_PER_CPU (long, vector_misaligned_access);
arch/riscv/include/asm/ftrace.h +2 -2
@@ -92,7 +92,7 @@ struct dyn_arch_ftrace {#define make_call_t0 (caller, callee, call) \ do { \ unsigned int offset = \ - (unsigned long) callee - (unsigned long) caller; \ + (unsigned long) (callee) - (unsigned long) (caller); \ call[0] = to_auipc_t0(offset); \ call[1] = to_jalr_t0(offset); \ } while (0)
@@ -108,7 +108,7 @@ do { \#define make_call_ra (caller, callee, call) \ do { \ unsigned int offset = \ - (unsigned long) callee - (unsigned long) caller; \ + (unsigned long) (callee) - (unsigned long) (caller); \ call[0] = to_auipc_ra(offset); \ call[1] = to_jalr_ra(offset); \ } while (0)
arch/riscv/kernel/elf_kexec.c +3 -0
@@ -468,6 +468,9 @@ int arch_kexec_apply_relocations_add(struct purgatory_info *pi,case R_RISCV_ALIGN :case R_RISCV_RELAX :break ; +case R_RISCV_64 : + *(u64 *)loc = val; +break ;default :pr_err ("Unknown rela relocation: %d\n" , r_type);return -ENOEXEC ;
arch/riscv/kernel/traps_misaligned.c +4 -10
@@ -605,16 +605,10 @@ void check_vector_unaligned_access_emulated(struct work_struct *work __always_unkernel_vector_end (); } -bool check_vector_unaligned_access_emulated_all_cpus (void ) +bool __init check_vector_unaligned_access_emulated_all_cpus (void ) {int cpu; -if (!has_vector ()) { -for_each_online_cpu (cpu) -per_cpu (vector_misaligned_access, cpu) =RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED ; -return false; - } -schedule_on_each_cpu (check_vector_unaligned_access_emulated);for_each_online_cpu (cpu)
@@ -625,7 +619,7 @@ bool check_vector_unaligned_access_emulated_all_cpus(void) return true; }#else -bool check_vector_unaligned_access_emulated_all_cpus (void ) +bool __init check_vector_unaligned_access_emulated_all_cpus (void ) {return false; }
@@ -659,7 +653,7 @@ void check_unaligned_access_emulated(struct work_struct *work __always_unused) } } -bool check_unaligned_access_emulated_all_cpus (void ) +bool __init check_unaligned_access_emulated_all_cpus (void ) {int cpu;
@@ -684,7 +678,7 @@ bool unaligned_ctl_available(void) return unaligned_ctl; }#else -bool check_unaligned_access_emulated_all_cpus (void ) +bool __init check_unaligned_access_emulated_all_cpus (void ) {return false; }
arch/riscv/kernel/unaligned_access_speed.c +22 -14
@@ -121,7 +121,7 @@ static int check_unaligned_access(void *param)return 0 ; } -static void check_unaligned_access_nonboot_cpu (void *param) +static void __init check_unaligned_access_nonboot_cpu (void *param) {unsigned int cpu =smp_processor_id ();struct page **pages = param;
@@ -175,7 +175,7 @@ static void set_unaligned_access_static_branches(void)modify_unaligned_access_branches (&fast_and_online,num_online_cpus ()); } -static int lock_and_set_unaligned_access_static_branch (void ) +static int __init lock_and_set_unaligned_access_static_branch (void ) {cpus_read_lock ();set_unaligned_access_static_branches ();
@@ -218,7 +218,7 @@ static int riscv_offline_cpu(unsigned int cpu) }/* Measure unaligned access speed on all CPUs present at boot in parallel. */ -static int check_unaligned_access_speed_all_cpus (void ) +static int __init check_unaligned_access_speed_all_cpus (void ) {unsigned int cpu;unsigned int cpu_count =num_possible_cpus ();
@@ -264,7 +264,7 @@ static int check_unaligned_access_speed_all_cpus(void) return 0; }#else /* CONFIG_RISCV_PROBE_UNALIGNED_ACCESS */ -static int check_unaligned_access_speed_all_cpus (void ) +static int __init check_unaligned_access_speed_all_cpus (void ) {return 0 ; }
@@ -349,7 +349,7 @@ static void check_vector_unaligned_access(struct work_struct *work __always_unuspr_warn ("cpu%d: rdtime lacks granularity needed to measure unaligned vector access speed\n" , cpu); -return ; + goto free; }if (word_cycles < byte_cycles)
@@ -363,14 +363,19 @@ static void check_vector_unaligned_access(struct work_struct *work __always_unus (speed == RISCV_HWPROBE_MISALIGNED_VECTOR_FAST) ? "fast" : "slow");per_cpu (vector_misaligned_access, cpu) = speed; + +free: +__free_pages (page,MISALIGNED_BUFFER_ORDER ); }static int riscv_online_cpu_vec (unsigned int cpu) { -if (!has_vector ()) +if (!has_vector ()) { +per_cpu (vector_misaligned_access, cpu) =RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED ;return 0 ; + } -if (per_cpu (vector_misaligned_access, cpu) !=RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED ) +if (per_cpu (vector_misaligned_access, cpu) !=RISCV_HWPROBE_MISALIGNED_VECTOR_UNKNOWN )return 0 ;check_vector_unaligned_access_emulated (NULL );
@@ -379,7 +384,7 @@ static int riscv_online_cpu_vec(unsigned int cpu) }/* Measure unaligned access speed on all CPUs present at boot in parallel. */ -static int vec_check_unaligned_access_speed_all_cpus (void *unused__always_unused ) +static int __init vec_check_unaligned_access_speed_all_cpus (void *unused__always_unused ) {schedule_on_each_cpu (check_vector_unaligned_access);
@@ -393,21 +398,24 @@ static int vec_check_unaligned_access_speed_all_cpus(void *unused __always_unuse return 0; }#else /* CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS */ -static int vec_check_unaligned_access_speed_all_cpus (void *unused__always_unused ) +static int __init vec_check_unaligned_access_speed_all_cpus (void *unused__always_unused ) {return 0 ; }#endif -static int check_unaligned_access_all_cpus (void ) +static int __init check_unaligned_access_all_cpus (void ) { -bool all_cpus_emulated, all_cpus_vec_unsupported; +bool all_cpus_emulated; +int cpu; all_cpus_emulated =check_unaligned_access_emulated_all_cpus (); - all_cpus_vec_unsupported =check_vector_unaligned_access_emulated_all_cpus (); -if (!all_cpus_vec_unsupported && -IS_ENABLED (CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS )) { +if (!has_vector ()) { +for_each_online_cpu (cpu) +per_cpu (vector_misaligned_access, cpu) =RISCV_HWPROBE_MISALIGNED_VECTOR_UNSUPPORTED ; + }else if (!check_vector_unaligned_access_emulated_all_cpus () && +IS_ENABLED (CONFIG_RISCV_PROBE_VECTOR_UNALIGNED_ACCESS )) {kthread_run (vec_check_unaligned_access_speed_all_cpus,NULL ,"vec_check_unaligned_access_speed_all_cpus" ); }
arch/riscv/kernel/vec-copy-unaligned.S +1 -1
@@ -11,7 +11,7 @@ #define WORD_SEW CONCATENATE(e, WORD_EEW) #define VEC_L CONCATENATE(vle, WORD_EEW).v -#define VEC_S CONCATENATE(vle, WORD_EEW).v +#define VEC_S CONCATENATE(vse, WORD_EEW).v /* void __riscv_copy_vec_words_unaligned(void *, const void *, size_t) */ /* Performs a memcpy without aligning buffers, using word loads and stores. */
arch/riscv/kvm/main.c +2 -2
@@ -172,8 +172,8 @@ module_init(riscv_kvm_init); static void __exit riscv_kvm_exit(void) { -kvm_riscv_teardown (); -kvm_exit (); + +kvm_riscv_teardown (); }module_exit (riscv_kvm_exit);
arch/riscv/kvm/vcpu_pmu.c +1 -0
@@ -666,6 +666,7 @@ int kvm_riscv_vcpu_pmu_ctr_cfg_match(struct kvm_vcpu *vcpu, unsigned long ctr_ba .type = etype, .size = sizeof(struct perf_event_attr), .pinned = true, + .disabled = true,/* * It should never reach here if the platform doesn't support the sscofpmf * extension as mode filtering won't work without it.
arch/riscv/mm/hugetlbpage.c +45 -31
122 lines not on this page · raw message
arch/riscv/purgatory/entry.S +1 -0
@@ -12,6 +12,7 @@ .text +.align 2 SYM_CODE_START(purgatory_start) lla sp, .Lstack
arch/s390/include/asm/io.h +0 -2
@@ -34,8 +34,6 @@ void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr);#define ioremap_wc (addr, size) \ ioremap_prot((addr), (size), pgprot_val(pgprot_writecombine(PAGE_KERNEL))) -#define ioremap_wt (addr, size) \ - ioremap_prot((addr), (size), pgprot_val(pgprot_writethrough(PAGE_KERNEL)))static inline void __iomem *ioport_map (unsigned long port,unsigned int nr) {
arch/s390/include/asm/pgtable.h +0 -3
@@ -1391,9 +1391,6 @@ void gmap_pmdp_idte_global(struct mm_struct *mm, unsigned long vmaddr);#define pgprot_writecombine pgprot_writecombinepgprot_t pgprot_writecombine (pgprot_t prot); -#define pgprot_writethrough pgprot_writethrough -pgprot_t pgprot_writethrough (pgprot_t prot); -#define PFN_PTE_SHIFT PAGE_SHIFT/*
arch/s390/kernel/entry.S +1 -1
@@ -481,7 +481,7 @@ SYM_CODE_START(mcck_int_handler) clgrjl %r9,%r14, 4f larl %r14,.Lsie_leave clgrjhe %r9,%r14, 4f - lg %r10,__LC_PCPU + lg %r10,__LC_PCPU(%r13) oi __PCPU_FLAGS+7(%r10), _CIF_MCCK_GUEST 4: BPENTER __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST SIEEXIT __SF_SIE_CONTROL(%r15),%r13
arch/s390/mm/pgtable.c +0 -10
@@ -34,16 +34,6 @@ pgprot_t pgprot_writecombine(pgprot_t prot) }EXPORT_SYMBOL_GPL (pgprot_writecombine); -pgprot_t pgprot_writethrough (pgprot_t prot) -{ -/* -* mio_wb_bit_mask may be set on a different CPU, but it is only set -* once at init and only read afterwards. -*/ -return __pgprot (pgprot_val (prot) & ~mio_wb_bit_mask); -} -EXPORT_SYMBOL_GPL (pgprot_writethrough); -static inline void ptep_ipte_local (struct mm_struct *mm,unsigned long addr,pte_t *ptep,int nodat) {
arch/um/include/shared/os.h +0 -1
@@ -213,7 +213,6 @@ extern int os_protect_memory(void *addr, unsigned long len,extern int os_unmap_memory (void *addr,int len);extern int os_drop_memory (void *addr,int length);extern int can_drop_memory (void ); -extern int os_mincore (void *addr,unsigned long len);void os_set_pdeathsig (void );
arch/um/kernel/Makefile +1 -1
@@ -17,7 +17,7 @@ extra-y := vmlinux.lds obj-y = config.o exec.o exitcode.o irq.o ksyms.o mem.o \ physmem.o process.o ptrace.o reboot.o sigio.o \ signal.o sysrq.o time.o tlb.o trap.o \ - um_arch.o umid.o maccess.o kmsg_dump.o capflags.o skas/ + um_arch.o umid.o kmsg_dump.o capflags.o skas/ obj-y += load_file.o obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o
arch/um/kernel/maccess.c deleted +0 -19
@@ -1,19 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* -* Copyright (C) 2013 Richard Weinberger <[email protected]> -*/ - -#include <linux/uaccess.h> -#include <linux/kernel.h> -#include <os.h> - -bool copy_from_kernel_nofault_allowed (const void *src,size_t size) -{ -void *psrc = (void *)rounddown ((unsigned long )src,PAGE_SIZE ); - -if ((unsigned long )src <PAGE_SIZE || size <=0 ) -return false; -if (os_mincore (psrc, size + src - psrc) <=0 ) -return false; -return true; -}
arch/um/os-Linux/process.c +0 -51
57 lines not on this page · raw message
arch/x86/Kconfig +2 -1
@@ -229,7 +229,7 @@ config X86 select HAVE_SAMPLE_FTRACE_DIRECT_MULTI if X86_64 select HAVE_EBPF_JIT select HAVE_EFFICIENT_UNALIGNED_ACCESS - select HAVE_EISA + select HAVE_EISA if X86_32 select HAVE_EXIT_THREAD select HAVE_GUP_FAST select HAVE_FENTRY if X86_64 || DYNAMIC_FTRACE
@@ -897,6 +897,7 @@ config INTEL_TDX_GUEST depends on X86_64 && CPU_SUP_INTEL depends on X86_X2APIC depends on EFI_STUB + depends on PARAVIRT select ARCH_HAS_CC_PLATFORM select X86_MEM_ENCRYPT select X86_MCE
arch/x86/Kconfig.cpu +1 -1
@@ -368,7 +368,7 @@ config X86_HAVE_PAE config X86_CMPXCHG64 def_bool y - depends on X86_HAVE_PAE || M586TSC || M586MMX || MK6 || MK7 + depends on X86_HAVE_PAE || M586TSC || M586MMX || MK6 || MK7 || MGEODEGX1 || MGEODE_LX # this should be set for all -march=.. options where the compiler # generates cmov.
arch/x86/Makefile.um +4 -3
@@ -7,12 +7,13 @@ core-y += arch/x86/crypto/ # GCC versions < 11. See: # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99652 # -ifeq ($(CONFIG_CC_IS_CLANG),y) -KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json +ifeq ($(call gcc-min-version, 110000)$(CONFIG_CC_IS_CLANG),y) +KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse2,-sse3,-ssse3,-sse4.1,-sse4.2,-avx,-avx2 endif +KBUILD_RUSTFLAGS += --target=$(objtree)/scripts/target.json + ifeq ($(CONFIG_X86_32),y) START := 0x8048000
arch/x86/coco/tdx/tdx.c +25 -1
@@ -14,6 +14,7 @@#include <asm/ia32.h> #include <asm/insn.h> #include <asm/insn-eval.h> +#include <asm/paravirt_types.h> #include <asm/pgtable.h> #include <asm/set_memory.h> #include <asm/traps.h>
@@ -386,7 +387,7 @@ static int handle_halt(struct ve_info *ve)return ve_instr_len (ve); } -void __cpuidle tdx_safe_halt(void) +void __cpuidle tdx_halt(void) {const bool irq_disabled = false;
@@ -397,6 +398,16 @@ void __cpuidle tdx_safe_halt(void)WARN_ONCE (1 ,"HLT instruction emulation failed\n" ); } +static void __cpuidle tdx_safe_halt(void) +{ +tdx_halt (); +/* +* "__cpuidle" section doesn't support instrumentation, so stick +* with raw_* variant that avoids tracing hooks. +*/ +raw_local_irq_enable (); +} +static int read_msr (struct pt_regs *regs,struct ve_info *ve) {struct tdx_module_args args = {
@@ -1083,6 +1094,19 @@ void __init tdx_early_init(void) x86_platform.guest.enc_kexec_begin = tdx_kexec_begin; x86_platform.guest.enc_kexec_finish = tdx_kexec_finish; +/* +* Avoid "sti;hlt" execution in TDX guests as HLT induces a #VE that +* will enable interrupts before HLT TDCALL invocation if executed +* in STI-shadow, possibly resulting in missed wakeup events. +* +* Modify all possible HLT execution paths to use TDX specific routines +* that directly execute TDCALL and toggle the interrupt state as +* needed after TDCALL completion. This also reduces HLT related #VEs +* in addition to having a reliable halt logic execution. +*/ + pv_ops.irq.safe_halt = tdx_safe_halt; + pv_ops.irq.halt = tdx_halt; +/* * TDX intercepts the RDMSR to read the X2APIC ID in the parallel * bringup low level code. That raises #VE which cannot be handled
arch/x86/entry/calling.h +2 -0
@@ -70,6 +70,8 @@ For 32-bit we have the following conventions - kernel is built with pushq %rsi /* pt_regs->si */ movq 8(%rsp), %rsi /* temporarily store the return address in %rsi */ movq %rdi, 8(%rsp) /* pt_regs->di (overwriting original return address) */ +/* We just clobbered the return address - use the IRET frame for unwinding: */ +UNWIND_HINT_IRET_REGS offset=3 *8 .else pushq %rdi /* pt_regs->di */ pushq %rsi/* pt_regs->si */
arch/x86/entry/common.c +1 -1
@@ -142,7 +142,7 @@ static __always_inline int syscall_32_enter(struct pt_regs *regs)#ifdef CONFIG_IA32_EMULATION bool __ia32_enabled__ro_after_init = !IS_ENABLED (CONFIG_IA32_EMULATION_DEFAULT_DISABLED ); -static int ia32_emulation_override_cmdline (char *arg) +static int __init ia32_emulation_override_cmdline (char *arg) {return kstrtobool (arg, &__ia32_enabled); }
arch/x86/entry/vdso/vdso-layout.lds.S +1 -1
@@ -24,7 +24,7 @@ SECTIONS timens_page = vvar_start + PAGE_SIZE; - vclock_pages = vvar_start + VDSO_NR_VCLOCK_PAGES * PAGE_SIZE; + vclock_pages = VDSO_VCLOCK_PAGES_START(vvar_start); pvclock_page = vclock_pages + VDSO_PAGE_PVCLOCK_OFFSET * PAGE_SIZE; hvclock_page = vclock_pages + VDSO_PAGE_HVCLOCK_OFFSET * PAGE_SIZE;
arch/x86/entry/vdso/vma.c +1 -1
@@ -290,7 +290,7 @@ static int map_vdso(const struct vdso_image *image, unsigned long addr) } vma = _install_special_mapping(mm, - addr + (__VVAR_PAGES - VDSO_NR_VCLOCK_PAGES) * PAGE_SIZE, + VDSO_VCLOCK_PAGES_START(addr), VDSO_NR_VCLOCK_PAGES * PAGE_SIZE, VM_READ|VM_MAYREAD|VM_IO|VM_DONTDUMP| VM_PFNMAP,
arch/x86/events/intel/core.c +24 -19
59 lines not on this page · raw message
arch/x86/events/intel/ds.c +2 -11
@@ -953,11 +953,11 @@ int intel_pmu_drain_bts_buffer(void)return 1 ; } -static inline void intel_pmu_drain_pebs_buffer (void ) +void intel_pmu_drain_pebs_buffer (void ) {struct perf_sample_data data; - x86_pmu.drain_pebs (NULL , &data); +static_call (x86_pmu_drain_pebs)(NULL , &data); }/*
@@ -2100,15 +2100,6 @@ get_next_pebs_record_by_bit(void *base, void *top, int bit)return NULL ; } -void intel_pmu_auto_reload_read (struct perf_event *event) -{ -WARN_ON (!(event->hw.flags &PERF_X86_EVENT_AUTO_RELOAD )); - -perf_pmu_disable (event->pmu); -intel_pmu_drain_pebs_buffer (); -perf_pmu_enable (event->pmu); -} -/* * Special variant of intel_pmu_save_and_restart() for auto-reload. */
arch/x86/events/perf_event.h +2 -1
@@ -1106,6 +1106,7 @@ extern struct x86_pmu x86_pmu __read_mostly;DECLARE_STATIC_CALL (x86_pmu_set_period, *x86_pmu.set_period);DECLARE_STATIC_CALL (x86_pmu_update, *x86_pmu.update); +DECLARE_STATIC_CALL (x86_pmu_drain_pebs, *x86_pmu.drain_pebs); static __always_inline struct x86_perf_task_context_opt *task_context_opt(void *ctx) {
@@ -1642,7 +1643,7 @@ void intel_pmu_pebs_disable_all(void);void intel_pmu_pebs_sched_task (struct perf_event_pmu_context *pmu_ctx,bool sched_in); -void intel_pmu_auto_reload_read (struct perf_event *event); +void intel_pmu_drain_pebs_buffer (void );void intel_pmu_store_pebs_lbrs (struct lbr_entry *lbr);
arch/x86/hyperv/hv_vtl.c +1 -0
@@ -30,6 +30,7 @@ void __init hv_vtl_init_platform(void) x86_platform.realmode_init = x86_init_noop; x86_init.irqs.pre_vector_init = x86_init_noop; x86_init.timers.timer_init = x86_init_noop; + x86_init.resources.probe_roms = x86_init_noop;/* Avoid searching for BIOS MP tables */ x86_init.mpparse.find_mptable = x86_init_noop;
arch/x86/hyperv/ivm.c +2 -3
@@ -339,7 +339,7 @@ int hv_snp_boot_ap(u32 cpu, unsigned long start_ip) vmsa->sev_features = sev_status >>2 ; ret =snp_set_vmsa (vmsa, true); -if (!ret) { +if (ret) {pr_err ("RMPADJUST(%llx) failed: %llx\n" , (u64 )vmsa, ret);free_page ((u64 )vmsa);return ret;
@@ -465,7 +465,6 @@ static int hv_mark_gpa_visibility(u16 count, const u64 pfn[], enum hv_mem_host_visibility visibility) {struct hv_gpa_range_for_visibility *input; -u16 pages_processed;u64 hv_status;unsigned long flags;
@@ -494,7 +493,7 @@ static int hv_mark_gpa_visibility(u16 count, const u64 pfn[],memcpy ((void *)input->gpa_page_list, pfn, count *sizeof (*pfn)); hv_status =hv_do_rep_hypercall (HVCALL_MODIFY_SPARSE_GPA_PAGE_HOST_VISIBILITY , count, -0 , input, &pages_processed); +0 , input,NULL );local_irq_restore (flags);if (hv_result_success (hv_status))
arch/x86/include/asm/tdx.h +2 -2
@@ -58,7 +58,7 @@ void tdx_get_ve_info(struct ve_info *ve);bool tdx_handle_virt_exception (struct pt_regs *regs,struct ve_info *ve); -void tdx_safe_halt (void ); +void tdx_halt (void );bool tdx_early_handle_ve (struct pt_regs *regs);
@@ -69,7 +69,7 @@ u64 tdx_hcall_get_quote(u8 *buf, size_t size);#else static inline void tdx_early_init (void ) { }; -static inline void tdx_safe_halt (void ) { }; +static inline void tdx_halt (void ) { };static inline bool tdx_early_handle_ve (struct pt_regs *regs) {return false; }
arch/x86/include/asm/tlbflush.h +1 -1
@@ -242,7 +242,7 @@ void flush_tlb_multi(const struct cpumask *cpumask,flush_tlb_mm_range ((vma)->vm_mm, start, end, \ ((vma)->vm_flags &VM_HUGETLB ) \ ?huge_page_shift (hstate_vma (vma)) \ - : PAGE_SHIFT, false) + : PAGE_SHIFT, true)extern void flush_tlb_all (void ); extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start,
arch/x86/include/asm/vdso/vsyscall.h +1 -0
@@ -6,6 +6,7 @@#define __VVAR_PAGES 4#define VDSO_NR_VCLOCK_PAGES 2 +#define VDSO_VCLOCK_PAGES_START (_b) ((_b) + (__VVAR_PAGES - VDSO_NR_VCLOCK_PAGES) * PAGE_SIZE)#define VDSO_PAGE_PVCLOCK_OFFSET 0#define VDSO_PAGE_HVCLOCK_OFFSET 1
arch/x86/kernel/cpu/bus_lock.c +16 -4
@@ -192,7 +192,13 @@ static void __split_lock_reenable(struct work_struct *work) {sld_update_msr (true); } -static DECLARE_DELAYED_WORK(sl_reenable, __split_lock_reenable); +/* +* In order for each CPU to schedule its delayed work independently of the +* others, delayed work struct must be per-CPU. This is not required when +* sysctl_sld_mitigate is enabled because of the semaphore that limits +* the number of simultaneously scheduled delayed works to 1. +*/ +static DEFINE_PER_CPU(struct delayed_work, sl_reenable);/* * If a CPU goes offline with pending delayed work to re-enable split lock
@@ -213,7 +219,7 @@ static int splitlock_cpu_offline(unsigned int cpu)static void split_lock_warn (unsigned long ip) { -struct delayed_work *work; +struct delayed_work *work =NULL ;int cpu;if (!current->reported_split_lock)
@@ -235,11 +241,17 @@ static void split_lock_warn(unsigned long ip)if (down_interruptible (&buslock_sem) == -EINTR )return ; work = &sl_reenable_unlock; - }else { - work = &sl_reenable; } cpu =get_cpu (); + +if (!work) { + work =this_cpu_ptr (&sl_reenable); +/* Deferred initialization of per-CPU struct */ +if (!work->work.func) +INIT_DELAYED_WORK (work, __split_lock_reenable); + } +schedule_delayed_work_on (cpu, work,2 );/* Disable split lock detection on this CPU to make progress */
arch/x86/kernel/cpu/mce/severity.c +5 -6
@@ -300,13 +300,12 @@ static noinstr int error_context(struct mce *m, struct pt_regs *regs) copy_user =is_copy_from_user (regs);instrumentation_end (); -switch (fixup_type) { -case EX_TYPE_UACCESS : -if (!copy_user) -return IN_KERNEL ; - m->kflags |=MCE_IN_KERNEL_COPYIN ; - fallthrough; +if (copy_user) { + m->kflags |=MCE_IN_KERNEL_COPYIN |MCE_IN_KERNEL_RECOV ; +return IN_KERNEL_RECOV ; + } +switch (fixup_type) {case EX_TYPE_FAULT_MCE_SAFE :case EX_TYPE_DEFAULT_MCE_SAFE : m->kflags |=MCE_IN_KERNEL_RECOV ;
arch/x86/kernel/cpu/microcode/amd.c +1 -1
@@ -600,7 +600,7 @@ static bool __apply_microcode_amd(struct microcode_amd *mc, u32 *cur_rev,unsigned long p_addr = (unsigned long )&mc->hdr.data_code;if (!verify_sha256_digest (mc->hdr.patch_id, *cur_rev, (const u8 *)p_addr, psize)) -return -1 ; +return false;native_wrmsrl (MSR_AMD64_PATCH_LOADER , p_addr);
arch/x86/kernel/cpu/resctrl/rdtgroup.c +2 -1
@@ -148,7 +148,8 @@ static int closid_alloc(void)lockdep_assert_held (&rdtgroup_mutex); -if (IS_ENABLED (CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID )) { +if (IS_ENABLED (CONFIG_RESCTRL_RMID_DEPENDS_ON_CLOSID ) && +is_llc_occupancy_enabled ()) { cleanest_closid =resctrl_find_cleanest_closid ();if (cleanest_closid <0 )return cleanest_closid;
arch/x86/kernel/cpu/sgx/driver.c +7 -3
@@ -150,13 +150,15 @@ int __init sgx_drv_init(void)u64 xfrm_mask;int ret; -if (!cpu_feature_enabled (X86_FEATURE_SGX_LC )) +if (!cpu_feature_enabled (X86_FEATURE_SGX_LC )) { +pr_info ("SGX disabled: SGX launch control CPU feature is not available, /dev/sgx_enclave disabled.\n" );return -ENODEV ; + }cpuid_count (SGX_CPUID ,0 , &eax, &ebx, &ecx, &edx);if (!(eax &1 )) { -pr_err ("SGX disabled: SGX1 instruction support not available.\n" ); +pr_info ("SGX disabled: SGX1 instruction support not available, /dev/sgx_enclave disabled.\n" );return -ENODEV ; }
@@ -173,8 +175,10 @@ int __init sgx_drv_init(void) } ret =misc_register (&sgx_dev_enclave); -if (ret) +if (ret) { +pr_info ("SGX disabled: Unable to register the /dev/sgx_enclave driver (%d).\n" , ret);return ret; + }return 0 ; }
arch/x86/kernel/dumpstack.c +2 -3
@@ -195,6 +195,7 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,printk ("%sCall Trace:\n" , log_lvl);unwind_start (&state, task, regs, stack); + stack = stack ?:get_stack_pointer (task, regs); regs =unwind_get_entry_regs (&state, &partial);/*
@@ -213,9 +214,7 @@ static void show_trace_log_lvl(struct task_struct *task, struct pt_regs *regs,* - hardirq stack * - entry stack */ -for (stack = stack ?:get_stack_pointer (task, regs); - stack; - stack = stack_info.next_sp) { +for (; stack; stack = stack_info.next_sp) {const char *stack_name; stack =PTR_ALIGN (stack,sizeof (long ));
arch/x86/kernel/fpu/core.c +3 -3
@@ -220,7 +220,7 @@ bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu)struct fpstate *fpstate;unsigned int size; - size = fpu_user_cfg.default_size +ALIGN (offsetof(struct fpstate , regs),64 ); + size = fpu_kernel_cfg.default_size +ALIGN (offsetof(struct fpstate , regs),64 ); fpstate =vzalloc (size);if (!fpstate)return false;
@@ -232,8 +232,8 @@ bool fpu_alloc_guest_fpstate(struct fpu_guest *gfpu) fpstate->is_guest = true; gfpu->fpstate = fpstate; - gfpu->xfeatures = fpu_user_cfg.default_features; - gfpu->perm = fpu_user_cfg.default_features; + gfpu->xfeatures = fpu_kernel_cfg.default_features; + gfpu->perm = fpu_kernel_cfg.default_features;/* * KVM sets the FP+SSE bits in the XSAVE header when copying FPU state
arch/x86/kernel/process.c +7 -2
@@ -92,7 +92,12 @@ EXPORT_PER_CPU_SYMBOL_GPL(__tss_limit_invalid);*/ int arch_dup_task_struct (struct task_struct *dst,struct task_struct *src) { -memcpy (dst, src, arch_task_struct_size); +/* init_task is not dynamically sized (incomplete FPU state) */ +if (unlikely (src == &init_task)) +memcpy_and_pad (dst, arch_task_struct_size, src,sizeof (init_task),0 ); +else +memcpy (dst, src, arch_task_struct_size); +#ifdef CONFIG_VM86 dst->thread.vm86 =NULL ;#endif
@@ -933,7 +938,7 @@ void __init select_idle_routine(void)static_call_update (x86_idle, mwait_idle); }else if (cpu_feature_enabled (X86_FEATURE_TDX_GUEST )) {pr_info ("using TDX aware idle routine\n" ); -static_call_update (x86_idle, tdx_safe_halt); +static_call_update (x86_idle, tdx_halt); }else {static_call_update (x86_idle, default_idle); }
arch/x86/kernel/traps.c +17 -1
@@ -379,6 +379,21 @@ __visible void __noreturn handle_stack_overflow(struct pt_regs *regs, }#endif +/* +* Prevent the compiler and/or objtool from marking the !CONFIG_X86_ESPFIX64 +* version of exc_double_fault() as noreturn. Otherwise the noreturn mismatch +* between configs triggers objtool warnings. +* +* This is a temporary hack until we have compiler or plugin support for +* annotating noreturns. +*/ +#ifdef CONFIG_X86_ESPFIX64 +#define always_true () true +#else +bool always_true (void ); +bool __weak always_true (void ) {return true; } +#endif +/* * Runs on an IST stack for x86_64 and on a special task stack for x86_32. *
@@ -514,7 +529,8 @@ DEFINE_IDTENTRY_DF(exc_double_fault)pr_emerg ("PANIC: double fault, error_code: 0x%lx\n" , error_code);die ("double fault" , regs, error_code); -panic ("Machine halted." ); +if (always_true ()) +panic ("Machine halted." );instrumentation_end (); }
arch/x86/kernel/tsc.c +2 -2
@@ -957,7 +957,7 @@ static unsigned long long cyc2ns_suspend;void tsc_save_sched_clock_state (void ) { -if (!sched_clock_stable ()) +if (!static_branch_likely (&__use_tsc) && !sched_clock_stable ())return ; cyc2ns_suspend =sched_clock ();
@@ -977,7 +977,7 @@ void tsc_restore_sched_clock_state(void)unsigned long flags;int cpu; -if (!sched_clock_stable ()) +if (!static_branch_likely (&__use_tsc) && !sched_clock_stable ())return ;local_irq_save (flags);
arch/x86/kernel/uprobes.c +9 -5
@@ -357,19 +357,23 @@ void *arch_uprobe_trampoline(unsigned long *psize)return &insn; } -static unsigned long trampoline_check_ip (void ) +static unsigned long trampoline_check_ip (unsigned long tramp) { -unsigned long tramp =uprobe_get_trampoline_vaddr (); -return tramp + (uretprobe_syscall_check - uretprobe_trampoline_entry); }SYSCALL_DEFINE0 (uretprobe) {struct pt_regs *regs =task_pt_regs (current); -unsigned long err, ip, sp, r11_cx_ax[3 ]; +unsigned long err, ip, sp, r11_cx_ax[3 ], tramp; + +/* If there's no trampoline, we are called from wrong place. */ + tramp =uprobe_get_trampoline_vaddr (); +if (unlikely (tramp ==UPROBE_NO_TRAMPOLINE_VADDR )) + goto sigill; -if (regs->ip !=trampoline_check_ip ()) +/* Make sure the ip matches the only allowed sys_uretprobe caller. */ +if (unlikely (regs->ip !=trampoline_check_ip (tramp))) goto sigill; err =copy_from_user (r11_cx_ax, (void __user *)regs->sp,sizeof (r11_cx_ax));
arch/x86/kvm/svm/sev.c +6 -7
@@ -3945,16 +3945,12 @@ static int sev_snp_ap_creation(struct vcpu_svm *svm)/* * The target vCPU is valid, so the vCPU will be kicked unless the -* request is for CREATE_ON_INIT. For any errors at this stage, the -* kick will place the vCPU in an non-runnable state. +* request is for CREATE_ON_INIT. */ kick = true;mutex_lock (&target_svm->sev_es.snp_vmsa_mutex); - target_svm->sev_es.snp_vmsa_gpa =INVALID_PAGE ; - target_svm->sev_es.snp_ap_waiting_for_reset = true; -/* Interrupt injection mode shouldn't change for AP creation */ if (request <SVM_VMGEXIT_AP_DESTROY ) {u64 sev_features;
@@ -4000,20 +3996,23 @@ static int sev_snp_ap_creation(struct vcpu_svm *svm) target_svm->sev_es.snp_vmsa_gpa = svm->vmcb->control.exit_info_2;break ;case SVM_VMGEXIT_AP_DESTROY : + target_svm->sev_es.snp_vmsa_gpa =INVALID_PAGE ;break ;default :vcpu_unimpl (vcpu,"vmgexit: invalid AP creation request [%#x] from guest\n" , request); ret = -EINVAL ; -break ; + goto out; } -out: + target_svm->sev_es.snp_ap_waiting_for_reset = true; +if (kick) {kvm_make_request (KVM_REQ_UPDATE_PROTECTED_GUEST_STATE , target_vcpu);kvm_vcpu_kick (target_vcpu); } +out:mutex_unlock (&target_svm->sev_es.snp_vmsa_mutex);return ret;
arch/x86/kvm/x86.c +11 -4
@@ -4573,6 +4573,11 @@ static bool kvm_is_vm_type_supported(unsigned long type)return type <32 && (kvm_caps.supported_vm_types &BIT (type)); } +static inline u32 kvm_sync_valid_fields (struct kvm *kvm) +{ +return kvm && kvm->arch.has_protected_state ?0 :KVM_SYNC_X86_VALID_FIELDS ; +} +int kvm_vm_ioctl_check_extension (struct kvm *kvm,long ext) {int r =0 ;
@@ -4681,7 +4686,7 @@ int kvm_vm_ioctl_check_extension(struct kvm *kvm, long ext)break ;#endif case KVM_CAP_SYNC_REGS : - r =KVM_SYNC_X86_VALID_FIELDS ; + r =kvm_sync_valid_fields (kvm);break ;case KVM_CAP_ADJUST_CLOCK : r =KVM_CLOCK_VALID_FLAGS ;
@@ -11466,6 +11471,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) {struct kvm_queued_exception *ex = &vcpu->arch.exception;struct kvm_run *kvm_run = vcpu->run; +u32 sync_valid_fields;int r; r =kvm_mmu_post_init_vm (vcpu->kvm);
@@ -11511,8 +11517,9 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) goto out; } -if ((kvm_run->kvm_valid_regs & ~KVM_SYNC_X86_VALID_FIELDS ) || - (kvm_run->kvm_dirty_regs & ~KVM_SYNC_X86_VALID_FIELDS )) { + sync_valid_fields =kvm_sync_valid_fields (vcpu->kvm); +if ((kvm_run->kvm_valid_regs & ~sync_valid_fields) || + (kvm_run->kvm_dirty_regs & ~sync_valid_fields)) { r = -EINVAL ; goto out; }
@@ -11570,7 +11577,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu) out:kvm_put_guest_fpu (vcpu); -if (kvm_run->kvm_valid_regs) +if (kvm_run->kvm_valid_regs &&likely (!vcpu->arch.guest_state_protected))store_regs (vcpu);post_kvm_run_save (vcpu);kvm_vcpu_srcu_read_unlock (vcpu);
arch/x86/lib/copy_user_64.S +18 -0
@@ -74,6 +74,24 @@ SYM_FUNC_START(rep_movs_alternative) _ASM_EXTABLE_UA( 0b, 1b) .Llarge_movsq: + /* Do the first possibly unaligned word */ +0: movq (%rsi),%rax +1: movq %rax,(%rdi) + + _ASM_EXTABLE_UA( 0b, .Lcopy_user_tail) + _ASM_EXTABLE_UA( 1b, .Lcopy_user_tail) + + /* What would be the offset to the aligned destination? */ + leaq 8(%rdi),%rax + andq $-8,%rax + subq %rdi,%rax + + /* .. and update pointers and count to match */ + addq %rax,%rdi + addq %rax,%rsi + subq %rax,%rcx + + /* make %rcx contain the number of words, %rax the remainder */ movq %rcx,%rax shrq $3,%rcx andl $7,%eax
arch/x86/mm/mem_encrypt_identity.c +2 -2
@@ -565,7 +565,7 @@ void __head sme_enable(struct boot_params *bp) }RIP_REL_REF (sme_me_mask) = me_mask; - physical_mask &= ~me_mask; - cc_vendor =CC_VENDOR_AMD ; +RIP_REL_REF (physical_mask) &= ~me_mask; +RIP_REL_REF (cc_vendor) =CC_VENDOR_AMD ;cc_set_mask (me_mask); }
arch/x86/mm/pat/cpa-test.c +1 -1
@@ -183,7 +183,7 @@ static int pageattr_test(void)break ;case 1 : - err =change_page_attr_set (addrs, len[1 ],PAGE_CPA_TEST ,1 ); + err =change_page_attr_set (addrs, len[i],PAGE_CPA_TEST ,1 );break ;case 2 :
arch/x86/mm/pat/memtype.c +28 -24
72 lines not on this page · raw message
crypto/api.c +7 -10
@@ -36,7 +36,8 @@ EXPORT_SYMBOL_GPL(crypto_chain);DEFINE_STATIC_KEY_FALSE (__crypto_boot_test_finished);#endif -static struct crypto_alg *crypto_larval_wait (struct crypto_alg *alg); +static struct crypto_alg *crypto_larval_wait (struct crypto_alg *alg, +u32 type,u32 mask);static struct crypto_alg *crypto_alg_lookup (const char *name,u32 type,u32 mask);
@@ -145,7 +146,7 @@ static struct crypto_alg *crypto_larval_add(const char *name, u32 type,if (alg != &larval->alg) {kfree (larval);if (crypto_is_larval (alg)) - alg =crypto_larval_wait (alg); + alg =crypto_larval_wait (alg, type, mask); }return alg;
@@ -197,7 +198,8 @@ static void crypto_start_test(struct crypto_larval *larval)crypto_schedule_test (larval); } -static struct crypto_alg *crypto_larval_wait (struct crypto_alg *alg) +static struct crypto_alg *crypto_larval_wait (struct crypto_alg *alg, +u32 type,u32 mask) {struct crypto_larval *larval;long time_left;
@@ -219,12 +221,7 @@ static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg)crypto_larval_kill (larval); alg =ERR_PTR (-ETIMEDOUT ); }else if (!alg) { -u32 type; -u32 mask; - alg = &larval->alg; - type = alg->cra_flags & ~(CRYPTO_ALG_LARVAL |CRYPTO_ALG_DEAD ); - mask = larval->mask; alg =crypto_alg_lookup (alg->cra_name, type, mask) ?:ERR_PTR (-EAGAIN ); }else if (IS_ERR (alg))
@@ -304,7 +301,7 @@ static struct crypto_alg *crypto_larval_lookup(const char *name, u32 type, }if (!IS_ERR_OR_NULL (alg) &&crypto_is_larval (alg)) - alg =crypto_larval_wait (alg); + alg =crypto_larval_wait (alg, type, mask);else if (alg) ;else if (!(mask &CRYPTO_ALG_TESTED ))
@@ -352,7 +349,7 @@ struct crypto_alg *crypto_alg_mod_lookup(const char *name, u32 type, u32 mask) ok =crypto_probing_notify (CRYPTO_MSG_ALG_REQUEST , larval);if (ok ==NOTIFY_STOP ) - alg =crypto_larval_wait (larval); + alg =crypto_larval_wait (larval, type, mask);else {crypto_mod_put (larval); alg =ERR_PTR (-ENOENT );
crypto/bpf_crypto_skcipher.c +1 -0
@@ -80,3 +80,4 @@ static void __exit bpf_crypto_skcipher_exit(void)module_init (bpf_crypto_skcipher_init);module_exit (bpf_crypto_skcipher_exit);MODULE_LICENSE ("GPL" ); +MODULE_DESCRIPTION ("Symmetric key cipher support for BPF" );
drivers/acpi/acpi_video.c +8 -1
@@ -648,6 +648,13 @@ acpi_video_device_EDID(struct acpi_video_device *device, void **edid, int length obj = buffer.pointer; +/* +* Some buggy implementations incorrectly return the EDID buffer in an ACPI package. +* In this case, extract the buffer from the package. +*/ +if (obj && obj->type ==ACPI_TYPE_PACKAGE && obj->package.count ==1 ) + obj = &obj->package.elements[0 ]; +if (obj && obj->type ==ACPI_TYPE_BUFFER ) { *edid =kmemdup (obj->buffer.pointer, obj->buffer.length,GFP_KERNEL ); ret = *edid ? obj->buffer.length : -ENOMEM ;
@@ -657,7 +664,7 @@ acpi_video_device_EDID(struct acpi_video_device *device, void **edid, int length ret = -EFAULT ; } -kfree (obj); +kfree (buffer.pointer);return ret; }
drivers/acpi/nfit/core.c +1 -1
@@ -485,7 +485,7 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, cmd_mask = nd_desc->cmd_mask;if (cmd ==ND_CMD_CALL && call_pkg->nd_family) { family = call_pkg->nd_family; -if (family >NVDIMM_BUS_FAMILY_MAX || +if (call_pkg->nd_family >NVDIMM_BUS_FAMILY_MAX || !test_bit (family, &nd_desc->bus_family_mask))return -EINVAL ; family = array_index_nospec(family,
drivers/acpi/processor_idle.c +4 -0
@@ -268,6 +268,10 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)ACPI_CX_DESC_LEN ,"ACPI P_LVL3 IOPORT 0x%x" , pr->power.states[ACPI_STATE_C3].address); +if (!pr->power.states[ACPI_STATE_C2 ].address && + !pr->power.states[ACPI_STATE_C3 ].address) +return -ENODEV ; +return 0 ; }
drivers/acpi/resource.c +7 -0
@@ -440,6 +440,13 @@ static const struct dmi_system_id irq1_level_low_skip_override[] = { DMI_MATCH(DMI_BOARD_NAME, "S5602ZA"), }, }, + { +/* Asus Vivobook X1404VAP */ + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"ASUSTeK COMPUTER INC." ), + DMI_MATCH(DMI_BOARD_NAME, "X1404VAP"), + }, + }, {/* Asus Vivobook X1504VAP */ .matches = {
drivers/acpi/x86/utils.c +2 -1
@@ -374,7 +374,8 @@ static const struct dmi_system_id acpi_quirk_skip_dmi_ids[] = { DMI_MATCH(DMI_PRODUCT_VERSION, "Blade3-10A-001"), }, .driver_data = (void *)(ACPI_QUIRK_SKIP_I2C_CLIENTS | - ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY), +ACPI_QUIRK_SKIP_ACPI_AC_AND_BATTERY | + ACPI_QUIRK_SKIP_GPIO_EVENT_HANDLERS), }, {/* Medion Lifetab S10346 */
drivers/auxdisplay/Kconfig +1 -0
@@ -503,6 +503,7 @@ config HT16K33 config MAX6959 tristate "Maxim MAX6958/6959 7-segment LED controller" depends on I2C + select BITREVERSE select REGMAP_I2C select LINEDISP help
drivers/auxdisplay/panel.c +2 -2
@@ -1664,7 +1664,7 @@ static void panel_attach(struct parport *port)if (lcd.enabled)charlcd_unregister (lcd.charlcd); err_unreg_device: -kfree (lcd.charlcd); +charlcd_free (lcd.charlcd); lcd.charlcd =NULL ;parport_unregister_device (pprt); pprt =NULL ;
@@ -1692,7 +1692,7 @@ static void panel_detach(struct parport *port)charlcd_unregister (lcd.charlcd); lcd.initialized = false;kfree (lcd.charlcd->drvdata); -kfree (lcd.charlcd); +charlcd_free (lcd.charlcd); lcd.charlcd =NULL ; }
drivers/base/power/main.c +10 -11
@@ -913,6 +913,9 @@ static void device_resume(struct device *dev, pm_message_t state, bool async)if (dev->power.syscore) goto Complete; +if (!dev->power.is_suspended) + goto Complete; +if (dev->power.direct_complete) {/* Match the pm_runtime_disable() in __device_suspend(). */ pm_runtime_enable (dev);
@@ -931,9 +934,6 @@ static void device_resume(struct device *dev, pm_message_t state, bool async)*/ dev->power.is_prepared = false; -if (!dev->power.is_suspended) - goto Unlock; -if (dev->pm_domain) { info ="power domain " ; callback =pm_op (&dev->pm_domain->ops, state);
@@ -973,7 +973,6 @@ static void device_resume(struct device *dev, pm_message_t state, bool async) error =dpm_run_callback (callback, dev, state, info); dev->power.is_suspended = false; - Unlock:device_unlock (dev);dpm_watchdog_clear (&wd);
@@ -1254,14 +1253,13 @@ static int device_suspend_noirq(struct device *dev, pm_message_t state, bool asy dev->power.is_noirq_suspended = true;/* -* Skipping the resume of devices that were in use right before the -* system suspend (as indicated by their PM-runtime usage counters) -* would be suboptimal. Also resume them if doing that is not allowed -* to be skipped. +* Devices must be resumed unless they are explicitly allowed to be left +* in suspend, but even in that case skipping the resume of devices that +* were in use right before the system suspend (as indicated by their +* runtime PM usage counters and child counters) would be suboptimal. */ -if (atomic_read (&dev->power.usage_count) >1 || - !(dev_pm_test_driver_flags (dev,DPM_FLAG_MAY_SKIP_RESUME ) && - dev->power.may_skip_resume)) +if (!(dev_pm_test_driver_flags (dev,DPM_FLAG_MAY_SKIP_RESUME ) && + dev->power.may_skip_resume) || !pm_runtime_need_not_resume (dev)) dev->power.must_resume = true;if (dev->power.must_resume)
@@ -1628,6 +1626,7 @@ static int device_suspend(struct device *dev, pm_message_t state, bool async)pm_runtime_disable (dev);if (pm_runtime_status_suspended (dev)) {pm_dev_dbg (dev, state,"direct-complete " ); + dev->power.is_suspended = true; goto Complete; }
drivers/base/power/runtime.c +1 -1
@@ -1874,7 +1874,7 @@ void pm_runtime_drop_link(struct device_link *link)pm_request_idle (link->supplier); } -static bool pm_runtime_need_not_resume (struct device *dev) +bool pm_runtime_need_not_resume (struct device *dev) { return atomic_read(&dev->power.usage_count) <= 1 && (atomic_read(&dev->power.child_count) == 0 ||
drivers/block/ublk_drv.c +29 -10
@@ -1452,17 +1452,27 @@ static void ublk_abort_queue(struct ublk_device *ub, struct ublk_queue *ubq) } } +/* Must be called when queue is frozen */ +static bool ublk_mark_queue_canceling (struct ublk_queue *ubq) +{ +bool canceled; + +spin_lock (&ubq->cancel_lock); + canceled = ubq->canceling; +if (!canceled) + ubq->canceling = true; +spin_unlock (&ubq->cancel_lock); + +return canceled; +} +static bool ublk_abort_requests (struct ublk_device *ub,struct ublk_queue *ubq) { +bool was_canceled = ubq->canceling;struct gendisk *disk; -spin_lock (&ubq->cancel_lock); -if (ubq->canceling) { -spin_unlock (&ubq->cancel_lock); +if (was_canceled)return false; - } - ubq->canceling = true; -spin_unlock (&ubq->cancel_lock);spin_lock (&ub->lock); disk = ub->ub_disk;
@@ -1474,14 +1484,23 @@ static bool ublk_abort_requests(struct ublk_device *ub, struct ublk_queue *ubq)if (!disk)return false; -/* Now we are serialized with ublk_queue_rq() */ +/* +* Now we are serialized with ublk_queue_rq() +* +* Make sure that ubq->canceling is set when queue is frozen, +* because ublk_queue_rq() has to rely on this flag for avoiding to +* touch completed uring_cmd +*/ blk_mq_quiesce_queue (disk->queue); -/* abort queue is for making forward progress */ -ublk_abort_queue (ub, ubq); + was_canceled =ublk_mark_queue_canceling (ubq); +if (!was_canceled) { +/* abort queue is for making forward progress */ +ublk_abort_queue (ub, ubq); + }blk_mq_unquiesce_queue (disk->queue);put_device (disk_to_dev (disk)); -return true; +return !was_canceled; } static void ublk_cancel_cmd(struct ublk_queue *ubq, struct ublk_io *io,
drivers/clk/imx/clk-imx8mp-audiomix.c +3 -3
@@ -180,14 +180,14 @@ static struct clk_imx8mp_audiomix_sel sels[] = {CLK_GATE ("asrc" ,ASRC_IPG ),CLK_GATE ("pdm" ,PDM_IPG ),CLK_GATE ("earc" ,EARC_IPG ), -CLK_GATE ("ocrama" ,OCRAMA_IPG ), +CLK_GATE_PARENT ("ocrama" ,OCRAMA_IPG ,"axi" ),CLK_GATE ("aud2htx" ,AUD2HTX_IPG ),CLK_GATE_PARENT ("earc_phy" ,EARC_PHY ,"sai_pll_out_div2" ),CLK_GATE ("sdma2" ,SDMA2_ROOT ),CLK_GATE ("sdma3" ,SDMA3_ROOT ),CLK_GATE ("spba2" ,SPBA2_ROOT ), -CLK_GATE ("dsp" ,DSP_ROOT ), -CLK_GATE ("dspdbg" ,DSPDBG_ROOT ), +CLK_GATE_PARENT ("dsp" ,DSP_ROOT ,"axi" ), +CLK_GATE_PARENT ("dspdbg" ,DSPDBG_ROOT ,"axi" ),CLK_GATE ("edma" ,EDMA_ROOT ),CLK_GATE_PARENT ("audpll" ,AUDPLL_ROOT ,"osc_24m" ), CLK_GATE("mu2", MU2_ROOT),
drivers/clk/meson/g12a.c +25 -13
@@ -1137,8 +1137,18 @@ static struct clk_regmap g12a_cpu_clk_div16_en = { .hw.init = &(struct clk_init_data) { .name ="cpu_clk_div16_en" , .ops = &clk_regmap_gate_ro_ops, - .parent_hws = (const struct clk_hw *[]) { - &g12a_cpu_clk.hw + .parent_data = &(const struct clk_parent_data ) { +/* +* Note: +* G12A and G12B have different cpu clocks (with +* different struct clk_hw). We fallback to the global +* naming string mechanism so this clock picks +* up the appropriate one. Same goes for the other +* clock using cpu cluster A clock output and present +* on both G12 variant. +*/ + .name ="cpu_clk" , + .index =-1 , }, .num_parents =1 ,/*
@@ -1203,7 +1213,10 @@ static struct clk_regmap g12a_cpu_clk_apb_div = { .hw.init = &(struct clk_init_data){ .name ="cpu_clk_apb_div" , .ops = &clk_regmap_divider_ro_ops, - .parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw }, + .parent_data = &(const struct clk_parent_data ) { + .name ="cpu_clk" , + .index =-1 , + }, .num_parents =1 , }, };
@@ -1237,7 +1250,10 @@ static struct clk_regmap g12a_cpu_clk_atb_div = { .hw.init = &(struct clk_init_data){ .name ="cpu_clk_atb_div" , .ops = &clk_regmap_divider_ro_ops, - .parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw }, + .parent_data = &(const struct clk_parent_data ) { + .name ="cpu_clk" , + .index =-1 , + }, .num_parents =1 , }, };
@@ -1271,7 +1287,10 @@ static struct clk_regmap g12a_cpu_clk_axi_div = { .hw.init = &(struct clk_init_data){ .name ="cpu_clk_axi_div" , .ops = &clk_regmap_divider_ro_ops, - .parent_hws = (const struct clk_hw *[]) { &g12a_cpu_clk.hw }, + .parent_data = &(const struct clk_parent_data ) { + .name ="cpu_clk" , + .index =-1 , + }, .num_parents =1 , }, };
@@ -1306,13 +1325,6 @@ static struct clk_regmap g12a_cpu_clk_trace_div = { .name = "cpu_clk_trace_div", .ops = &clk_regmap_divider_ro_ops, .parent_data = &(const struct clk_parent_data ) { -/* -* Note: -* G12A and G12B have different cpu_clks (with -* different struct clk_hw). We fallback to the global -* naming string mechanism so cpu_clk_trace_div picks -* up the appropriate one. -*/ .name ="cpu_clk" , .index =-1 , },
@@ -4311,7 +4323,7 @@ static MESON_GATE(g12a_spicc_1, HHI_GCLK_MPEG0, 14); static MESON_GATE(g12a_hiu_reg, HHI_GCLK_MPEG0, 19); static MESON_GATE(g12a_mipi_dsi_phy, HHI_GCLK_MPEG0, 20); static MESON_GATE(g12a_assist_misc, HHI_GCLK_MPEG0, 23); -static MESON_GATE(g12a_emmc_a, HHI_GCLK_MPEG0, 4); +static MESON_GATE(g12a_emmc_a, HHI_GCLK_MPEG0, 24); static MESON_GATE(g12a_emmc_b, HHI_GCLK_MPEG0, 25); static MESON_GATE(g12a_emmc_c, HHI_GCLK_MPEG0, 26); static MESON_GATE(g12a_audio_codec, HHI_GCLK_MPEG0, 28);
drivers/clk/meson/gxbb.c +7 -7
@@ -1266,14 +1266,13 @@ static struct clk_regmap gxbb_cts_i958 = { }, }; +/* +* This table skips a clock named 'cts_slow_oscin' in the documentation +* This clock does not exist yet in this controller or the AO one +*/ +static u32 gxbb_32k_clk_parents_val_table[] = {0 ,2 ,3 };static const struct clk_parent_data gxbb_32k_clk_parent_data[] = { { .fw_name ="xtal" , }, -/* -* FIXME: This clock is provided by the ao clock controller but the -* clock is not yet part of the binding of this controller, so string -* name must be use to set this parent. -*/ - { .name ="cts_slow_oscin" , .index =-1 }, { .hw = &gxbb_fclk_div3.hw }, { .hw = &gxbb_fclk_div5.hw }, };
@@ -1283,6 +1282,7 @@ static struct clk_regmap gxbb_32k_clk_sel = { .offset = HHI_32K_CLK_CNTL, .mask = 0x3, .shift = 16, + .table = gxbb_32k_clk_parents_val_table, }, .hw.init = &(struct clk_init_data ){ .name ="32k_clk_sel" ,
@@ -1306,7 +1306,7 @@ static struct clk_regmap gxbb_32k_clk_div = { &gxbb_32k_clk_sel.hw }, .num_parents = 1, - .flags = CLK_SET_RATE_PARENT | CLK_DIVIDER_ROUND_CLOSEST, + .flags = CLK_SET_RATE_PARENT, }, };
drivers/clk/mmp/clk-pxa1908-apmu.c +2 -2
@@ -87,8 +87,8 @@ static int pxa1908_apmu_probe(struct platform_device *pdev)struct pxa1908_clk_unit *pxa_unit; pxa_unit =devm_kzalloc (&pdev->dev,sizeof (*pxa_unit),GFP_KERNEL ); -if (IS_ERR (pxa_unit)) -return PTR_ERR (pxa_unit); +if (!pxa_unit) +return -ENOMEM ; pxa_unit->base =devm_platform_ioremap_resource (pdev,0 );if (IS_ERR (pxa_unit->base))
drivers/clk/qcom/gcc-ipq5424.c +15 -9
@@ -572,13 +572,19 @@ static struct clk_rcg2 gcc_qupv3_spi1_clk_src = { };static const struct freq_tbl ftbl_gcc_qupv3_uart0_clk_src[] = { -F (960000 ,P_XO ,10 ,2 ,5 ), -F (4800000 ,P_XO ,5 ,0 ,0 ), -F (9600000 ,P_XO ,2 ,4 ,5 ), -F (16000000 ,P_GPLL0_OUT_MAIN ,10 ,1 ,5 ), +F (3686400 ,P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC ,1 ,144 ,15625 ), +F (7372800 ,P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC ,1 ,288 ,15625 ), +F (14745600 ,P_GCC_GPLL0_OUT_MAIN_DIV_CLK_SRC ,1 ,576 ,15625 ),F (24000000 ,P_XO ,1 ,0 ,0 ),F (25000000 ,P_GPLL0_OUT_MAIN ,16 ,1 ,2 ), -F (50000000 ,P_GPLL0_OUT_MAIN ,16 ,0 ,0 ), +F (32000000 ,P_GPLL0_OUT_MAIN ,1 ,1 ,25 ), +F (40000000 ,P_GPLL0_OUT_MAIN ,1 ,1 ,20 ), +F (46400000 ,P_GPLL0_OUT_MAIN ,1 ,29 ,500 ), +F (48000000 ,P_GPLL0_OUT_MAIN ,1 ,3 ,50 ), +F (51200000 ,P_GPLL0_OUT_MAIN ,1 ,8 ,125 ), +F (56000000 ,P_GPLL0_OUT_MAIN ,1 ,7 ,100 ), +F (58982400 ,P_GPLL0_OUT_MAIN ,1 ,1152 ,15625 ), +F (60000000 ,P_GPLL0_OUT_MAIN ,1 ,3 ,40 ),F (64000000 ,P_GPLL0_OUT_MAIN ,12.5 ,0 ,0 ), { } };
@@ -614,11 +620,11 @@ static struct clk_rcg2 gcc_qupv3_uart1_clk_src = {static const struct freq_tbl ftbl_gcc_sdcc1_apps_clk_src[] = {F (144000 ,P_XO ,16 ,12 ,125 ),F (400000 ,P_XO ,12 ,1 ,5 ), -F (24000000 ,P_XO ,1 ,0 ,0 ), -F (48000000 ,P_GPLL2_OUT_MAIN ,12 ,1 ,2 ), -F (96000000 ,P_GPLL2_OUT_MAIN ,6 ,1 ,2 ), +F (24000000 ,P_GPLL2_OUT_MAIN ,12 ,1 ,2 ), +F (48000000 ,P_GPLL2_OUT_MAIN ,12 ,0 ,0 ), +F (96000000 ,P_GPLL2_OUT_MAIN ,6 ,0 ,0 ),F (177777778 ,P_GPLL0_OUT_MAIN ,4.5 ,0 ,0 ), -F (192000000 ,P_GPLL2_OUT_MAIN ,6 ,0 ,0 ), +F (192000000 ,P_GPLL2_OUT_MAIN ,3 ,0 ,0 ),F (200000000 ,P_GPLL0_OUT_MAIN ,4 ,0 ,0 ), { } };
drivers/clk/qcom/gcc-msm8953.c +1 -1
@@ -3770,7 +3770,7 @@ static struct clk_branch gcc_venus0_axi_clk = {static struct clk_branch gcc_venus0_core0_vcodec0_clk = { .halt_reg =0x4c02c , - .halt_check =BRANCH_HALT , + .halt_check =BRANCH_HALT_SKIP , .clkr = { .enable_reg =0x4c02c , .enable_mask =BIT (0 ),
drivers/clk/qcom/gcc-sm8650.c +2 -2
@@ -3497,7 +3497,7 @@ static struct gdsc usb30_prim_gdsc = { .pd = { .name = "usb30_prim_gdsc", }, - .pwrsts = PWRSTS_OFF_ON, + .pwrsts = PWRSTS_RET_ON, .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, };
@@ -3506,7 +3506,7 @@ static struct gdsc usb3_phy_gdsc = { .pd = { .name = "usb3_phy_gdsc", }, - .pwrsts = PWRSTS_OFF_ON, + .pwrsts = PWRSTS_RET_ON, .flags = POLL_CFG_GDSCR | RETAIN_FF_ENABLE, };
drivers/clk/qcom/gcc-x1e80100.c +0 -30
@@ -2564,19 +2564,6 @@ static struct clk_branch gcc_disp_hf_axi_clk = { }, }; -static struct clk_branch gcc_disp_xo_clk = { - .halt_reg =0x27018 , - .halt_check =BRANCH_HALT , - .clkr = { - .enable_reg =0x27018 , - .enable_mask =BIT (0 ), - .hw.init = &(const struct clk_init_data ) { - .name ="gcc_disp_xo_clk" , - .ops = &clk_branch2_ops, - }, - }, -}; -static struct clk_branch gcc_gp1_clk = { .halt_reg =0x64000 , .halt_check =BRANCH_HALT ,
@@ -2631,21 +2618,6 @@ static struct clk_branch gcc_gp3_clk = { }, }; -static struct clk_branch gcc_gpu_cfg_ahb_clk = { - .halt_reg =0x71004 , - .halt_check =BRANCH_HALT_VOTED , - .hwcg_reg =0x71004 , - .hwcg_bit =1 , - .clkr = { - .enable_reg =0x71004 , - .enable_mask =BIT (0 ), - .hw.init = &(const struct clk_init_data ) { - .name ="gcc_gpu_cfg_ahb_clk" , - .ops = &clk_branch2_ops, - }, - }, -}; -static struct clk_branch gcc_gpu_gpll0_cph_clk_src = { .halt_check =BRANCH_HALT_DELAY , .clkr = {
@@ -6268,7 +6240,6 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = { [GCC_CNOC_PCIE_TUNNEL_CLK] = &gcc_cnoc_pcie_tunnel_clk.clkr, [GCC_DDRSS_GPU_AXI_CLK] = &gcc_ddrss_gpu_axi_clk.clkr, [GCC_DISP_HF_AXI_CLK] = &gcc_disp_hf_axi_clk.clkr, - [GCC_DISP_XO_CLK] = &gcc_disp_xo_clk.clkr, [GCC_GP1_CLK] = &gcc_gp1_clk.clkr, [GCC_GP1_CLK_SRC] = &gcc_gp1_clk_src.clkr, [GCC_GP2_CLK] = &gcc_gp2_clk.clkr,
@@ -6281,7 +6252,6 @@ static struct clk_regmap *gcc_x1e80100_clocks[] = { [GCC_GPLL7] = &gcc_gpll7.clkr, [GCC_GPLL8] = &gcc_gpll8.clkr, [GCC_GPLL9] = &gcc_gpll9.clkr, - [GCC_GPU_CFG_AHB_CLK] = &gcc_gpu_cfg_ahb_clk.clkr, [GCC_GPU_GPLL0_CPH_CLK_SRC] = &gcc_gpu_gpll0_cph_clk_src.clkr, [GCC_GPU_GPLL0_DIV_CPH_CLK_SRC] = &gcc_gpu_gpll0_div_cph_clk_src.clkr, [GCC_GPU_MEMNOC_GFX_CLK] = &gcc_gpu_memnoc_gfx_clk.clkr,
drivers/clk/qcom/mmcc-sdm660.c +1 -1
@@ -2544,7 +2544,7 @@ static struct clk_branch video_core_clk = {static struct clk_branch video_subcore0_clk = { .halt_reg =0x1048 , - .halt_check =BRANCH_HALT , + .halt_check =BRANCH_HALT_SKIP , .clkr = { .enable_reg =0x1048 , .enable_mask =BIT (0 ),
drivers/clk/renesas/r9a08g045-cpg.c +3 -2
@@ -51,7 +51,7 @@#define G3S_SEL_SDHI2 SEL_PLL_PACK(G3S_CPG_SDHI_DSEL, 8, 2)/* PLL 1/4/6 configuration registers macro. */ -#define G3S_PLL146_CONF (clk1, clk2) ((clk1) << 22 | (clk2) << 12) +#define G3S_PLL146_CONF (clk1, clk2, setting) ((clk1) << 22 | (clk2) << 12 | (setting))#define DEF_G3S_MUX (_name, _id, _conf, _parent_names, _mux_flags, _clk_flags) \ DEF_TYPE(_name, _id, CLK_TYPE_MUX, .conf = (_conf), \
@@ -134,7 +134,8 @@ static const struct cpg_core_clk r9a08g045_core_clks[] __initconst = {/* Internal Core Clocks */ DEF_FIXED (".osc_div1000" ,CLK_OSC_DIV1000 ,CLK_EXTAL ,1 ,1000 ), -DEF_G3S_PLL (".pll1" ,CLK_PLL1 ,CLK_EXTAL ,G3S_PLL146_CONF (0x4 ,0x8 )), +DEF_G3S_PLL (".pll1" ,CLK_PLL1 ,CLK_EXTAL ,G3S_PLL146_CONF (0x4 ,0x8 ,0x100 ), +1100000000UL ),DEF_FIXED (".pll2" ,CLK_PLL2 ,CLK_EXTAL ,200 ,3 ),DEF_FIXED (".pll3" ,CLK_PLL3 ,CLK_EXTAL ,200 ,3 ), DEF_FIXED(".pll4", CLK_PLL4, CLK_EXTAL, 100, 3),
drivers/clk/renesas/rzg2l-cpg.c +12 -1
@@ -51,6 +51,7 @@#define RZG3S_DIV_M GENMASK(25, 22)#define RZG3S_DIV_NI GENMASK(21, 13)#define RZG3S_DIV_NF GENMASK(12, 1) +#define RZG3S_SEL_PLL BIT(0)#define CLK_ON_R (reg) (reg)#define CLK_MON_R (reg) (0x180 + (reg))
@@ -60,6 +61,7 @@#define GET_REG_OFFSET (val) ((val >> 20) & 0xfff)#define GET_REG_SAMPLL_CLK1 (val) ((val >> 22) & 0xfff)#define GET_REG_SAMPLL_CLK2 (val) ((val >> 12) & 0xfff) +#define GET_REG_SAMPLL_SETTING (val) ((val) & 0xfff)#define CPG_WEN_BIT BIT(16)
@@ -943,6 +945,7 @@ rzg2l_cpg_sipll5_register(const struct cpg_core_clk *core,struct pll_clk {struct clk_hw hw; +unsigned long default_rate;unsigned int conf;unsigned int type;void __iomem *base;
@@ -980,12 +983,19 @@ static unsigned long rzg3s_cpg_pll_clk_recalc_rate(struct clk_hw *hw, {struct pll_clk *pll_clk =to_pll (hw);struct rzg2l_cpg_priv *priv = pll_clk->priv; -u32 nir, nfr, mr, pr, val; +u32 nir, nfr, mr, pr, val, setting;u64 rate;if (pll_clk->type !=CLK_TYPE_G3S_PLL )return parent_rate; + setting =GET_REG_SAMPLL_SETTING (pll_clk->conf); +if (setting) { + val =readl (priv->base + setting); +if (val &RZG3S_SEL_PLL ) +return pll_clk->default_rate; + } + val =readl (priv->base +GET_REG_SAMPLL_CLK1 (pll_clk->conf)); pr =1 <<FIELD_GET (RZG3S_DIV_P , val);
@@ -1038,6 +1048,7 @@ rzg2l_cpg_pll_clk_register(const struct cpg_core_clk *core, pll_clk->base = priv->base; pll_clk->priv = priv; pll_clk->type = core->type; + pll_clk->default_rate = core->default_rate; ret =devm_clk_hw_register (dev, &pll_clk->hw);if (ret)
drivers/clk/renesas/rzg2l-cpg.h +7 -3
@@ -102,7 +102,10 @@ struct cpg_core_clk {const struct clk_div_table *dtable;const u32 *mtable;const unsigned long invalid_rate; -const unsigned long max_rate; +union { +const unsigned long max_rate; +const unsigned long default_rate; + };const char *const *parent_names;notifier_fn_t notifier;u32 flag;
@@ -144,8 +147,9 @@ enum clk_types { DEF_TYPE(_name, _id, _type, .parent = _parent)#define DEF_SAMPLL (_name, _id, _parent, _conf) \ DEF_TYPE(_name, _id, CLK_TYPE_SAM_PLL, .parent = _parent, .conf = _conf) -#define DEF_G3S_PLL (_name, _id, _parent, _conf) \ - DEF_TYPE(_name, _id, CLK_TYPE_G3S_PLL, .parent = _parent, .conf = _conf) +#define DEF_G3S_PLL (_name, _id, _parent, _conf, _default_rate) \ + DEF_TYPE(_name, _id, CLK_TYPE_G3S_PLL, .parent = _parent, .conf = _conf, \ + .default_rate = _default_rate)#define DEF_INPUT (_name, _id) \ DEF_TYPE(_name, _id, CLK_TYPE_IN)#define DEF_FIXED (_name, _id, _parent, _mult, _div) \
drivers/clk/rockchip/clk-rk3328.c +1 -1
@@ -201,7 +201,7 @@ PNAME(mux_aclk_peri_pre_p) = { "cpll_peri","gpll_peri" , "hdmiphy_peri" };PNAME (mux_ref_usb3otg_src_p) = {"xin24m" , -"clk_usb3otg_ref" }; +"clk_ref_usb3otg_src" };PNAME (mux_xin24m_32k_p) = {"xin24m" ,"clk_rtc32k" }; PNAME(mux_mac2io_src_p) = { "clk_mac2io_src",
drivers/clk/samsung/clk.c +1 -1
@@ -74,12 +74,12 @@ struct samsung_clk_provider * __init samsung_clk_init(struct device *dev,if (!ctx)panic ("could not allocate clock provider context.\n" ); + ctx->clk_data.num = nr_clks;for (i =0 ; i < nr_clks; ++i) ctx->clk_data.hws[i] =ERR_PTR (-ENOENT ); ctx->dev = dev; ctx->reg_base = base; - ctx->clk_data.num = nr_clks;spin_lock_init (&ctx->lock);return ctx;
drivers/cpufreq/Kconfig.arm +1 -1
@@ -245,7 +245,7 @@ config ARM_TEGRA186_CPUFREQ config ARM_TEGRA194_CPUFREQ tristate "Tegra194 CPUFreq support" - depends on ARCH_TEGRA_194_SOC || (64BIT && COMPILE_TEST) + depends on ARCH_TEGRA_194_SOC || ARCH_TEGRA_234_SOC || (64BIT && COMPILE_TEST) depends on TEGRA_BPMP default y help
drivers/cpufreq/armada-8k-cpufreq.c +1 -1
@@ -47,7 +47,7 @@ static void __init armada_8k_get_sharing_cpus(struct clk *cur_clk, {int cpu; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {struct device *cpu_dev;struct clk *clk;
drivers/cpufreq/cpufreq-dt.c +1 -1
@@ -303,7 +303,7 @@ static int dt_cpufreq_probe(struct platform_device *pdev)int ret, cpu;/* Request resources early so we can return in case of -EPROBE_DEFER */ -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { ret =dt_cpufreq_early_init (&pdev->dev, cpu);if (ret) goto err;
drivers/cpufreq/cpufreq_governor.c +23 -22
67 lines not on this page · raw message
drivers/cpufreq/mediatek-cpufreq-hw.c +1 -1
@@ -304,7 +304,7 @@ static int mtk_cpufreq_hw_driver_probe(struct platform_device *pdev)struct regulator *cpu_reg;/* Make sure that all CPU supplies are available before proceeding. */ -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { cpu_dev =get_cpu_device (cpu);if (!cpu_dev) return dev_err_probe(&pdev->dev, -EPROBE_DEFER,
drivers/cpufreq/mediatek-cpufreq.c +1 -1
@@ -632,7 +632,7 @@ static int mtk_cpufreq_probe(struct platform_device *pdev)return dev_err_probe (&pdev->dev, -ENODEV ,"failed to get mtk cpufreq platform data\n" ); -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { info =mtk_cpu_dvfs_info_lookup (cpu);if (info)continue ;
drivers/cpufreq/mvebu-cpufreq.c +1 -1
@@ -56,7 +56,7 @@ static int __init armada_xp_pmsu_cpufreq_init(void)* it), and registers the clock notifier that will take care * of doing the PMSU part of a frequency transition. */ -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {struct device *cpu_dev;struct clk *clk;int ret;
drivers/cpufreq/qcom-cpufreq-hw.c +1 -1
@@ -306,7 +306,7 @@ static void qcom_get_related_cpus(int index, struct cpumask *m)struct of_phandle_args args;int cpu, ret; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { cpu_np =of_cpu_device_node_get (cpu);if (!cpu_np)continue ;
drivers/cpufreq/qcom-cpufreq-nvmem.c +4 -4
@@ -489,7 +489,7 @@ static int qcom_cpufreq_probe(struct platform_device *pdev)nvmem_cell_put (speedbin_nvmem); } -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {struct dev_pm_opp_config config = { .supported_hw =NULL , };
@@ -543,7 +543,7 @@ static int qcom_cpufreq_probe(struct platform_device *pdev)dev_err (cpu_dev,"Failed to register platform device\n" ); free_opp: -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {dev_pm_domain_detach_list (drv->cpus[cpu].pd_list);dev_pm_opp_clear_config (drv->cpus[cpu].opp_token); }
@@ -557,7 +557,7 @@ static void qcom_cpufreq_remove(struct platform_device *pdev)platform_device_unregister (cpufreq_dt_pdev); -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {dev_pm_domain_detach_list (drv->cpus[cpu].pd_list);dev_pm_opp_clear_config (drv->cpus[cpu].opp_token); }
@@ -568,7 +568,7 @@ static int qcom_cpufreq_suspend(struct device *dev)struct qcom_cpufreq_drv *drv =dev_get_drvdata (dev);unsigned int cpu; -for_each_possible_cpu (cpu) +for_each_present_cpu (cpu)qcom_cpufreq_suspend_pd_devs (drv, cpu);return 0 ;
drivers/cpufreq/scmi-cpufreq.c +1 -1
@@ -101,7 +101,7 @@ scmi_get_sharing_cpus(struct device *cpu_dev, int domain,int cpu, tdomain;struct device *tcpu_dev; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {if (cpu == cpu_dev->id)continue ;
drivers/cpufreq/scpi-cpufreq.c +4 -3
@@ -39,8 +39,9 @@ static unsigned int scpi_cpufreq_get_rate(unsigned int cpu)static int scpi_cpufreq_set_target (struct cpufreq_policy *policy,unsigned int index) { -u64 rate = policy->freq_table[index].frequency *1000 ; +unsigned long freq_khz = policy->freq_table[index].frequency;struct scpi_data *priv = policy->driver_data; +unsigned long rate = freq_khz *1000 ;int ret; ret =clk_set_rate (priv->clk, rate);
@@ -48,7 +49,7 @@ scpi_cpufreq_set_target(struct cpufreq_policy *policy, unsigned int index)if (ret)return ret; -if (clk_get_rate (priv->clk) != rate) +if (clk_get_rate (priv->clk) /1000 != freq_khz)return -EIO ;return 0 ;
@@ -64,7 +65,7 @@ scpi_get_sharing_cpus(struct device *cpu_dev, struct cpumask *cpumask)if (domain <0 )return domain; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {if (cpu == cpu_dev->id)continue ;
drivers/cpufreq/sun50i-cpufreq-nvmem.c +3 -3
@@ -262,7 +262,7 @@ static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev)snprintf (name,sizeof (name),"speed%d" , speed); config.prop_name = name; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) {struct device *cpu_dev =get_cpu_device (cpu);if (!cpu_dev) {
@@ -288,7 +288,7 @@ static int sun50i_cpufreq_nvmem_probe(struct platform_device *pdev)pr_err ("Failed to register platform device\n" ); free_opp: -for_each_possible_cpu (cpu) +for_each_present_cpu (cpu)dev_pm_opp_clear_config (opp_tokens[cpu]);kfree (opp_tokens);
@@ -302,7 +302,7 @@ static void sun50i_cpufreq_nvmem_remove(struct platform_device *pdev)platform_device_unregister (cpufreq_dt_pdev); -for_each_possible_cpu (cpu) +for_each_present_cpu (cpu)dev_pm_opp_clear_config (opp_tokens[cpu]);kfree (opp_tokens);
drivers/cpufreq/virtual-cpufreq.c +1 -1
@@ -138,7 +138,7 @@ static int virt_cpufreq_get_sharing_cpus(struct cpufreq_policy *policy) cur_perf_domain =readl_relaxed (base + policy->cpu *PER_CPU_OFFSET +REG_PERF_DOMAIN_OFFSET ); -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { cpu_dev =get_cpu_device (cpu);if (!cpu_dev)continue ;
drivers/cpuidle/cpuidle-arm.c +4 -4
@@ -137,9 +137,9 @@ static int __init arm_idle_init_cpu(int cpu)/* * arm_idle_init - Initializes arm cpuidle driver * -* Initializes arm cpuidle driver for all CPUs, if any CPU fails -* to register cpuidle driver then rollback to cancel all CPUs -* registration. +* Initializes arm cpuidle driver for all present CPUs, if any +* CPU fails to register cpuidle driver then rollback to cancel +* all CPUs registration. */ static int __init arm_idle_init (void ) {
@@ -147,7 +147,7 @@ static int __init arm_idle_init(void)struct cpuidle_driver *drv;struct cpuidle_device *dev; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { ret =arm_idle_init_cpu (cpu);if (ret) goto out_fail;
drivers/cpuidle/cpuidle-big_little.c +1 -1
@@ -148,7 +148,7 @@ static int __init bl_idle_driver_init(struct cpuidle_driver *drv, int part_id)if (!cpumask)return -ENOMEM ; -for_each_possible_cpu (cpu) +for_each_present_cpu (cpu)if (smp_cpuid_part (cpu) == part_id)cpumask_set_cpu (cpu, cpumask);
drivers/cpuidle/cpuidle-psci.c +2 -2
@@ -400,7 +400,7 @@ static int psci_idle_init_cpu(struct device *dev, int cpu)/* * psci_idle_probe - Initializes PSCI cpuidle driver * -* Initializes PSCI cpuidle driver for all CPUs, if any CPU fails +* Initializes PSCI cpuidle driver for all present CPUs, if any CPU fails * to register cpuidle driver then rollback to cancel all CPUs * registration. */
@@ -410,7 +410,7 @@ static int psci_cpuidle_probe(struct platform_device *pdev)struct cpuidle_driver *drv;struct cpuidle_device *dev; -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { ret =psci_idle_init_cpu (&pdev->dev, cpu);if (ret) goto out_fail;
drivers/cpuidle/cpuidle-qcom-spm.c +1 -1
@@ -135,7 +135,7 @@ static int spm_cpuidle_drv_probe(struct platform_device *pdev)if (ret)return dev_err_probe (&pdev->dev, ret,"set warm boot addr failed" ); -for_each_possible_cpu (cpu) { +for_each_present_cpu (cpu) { ret =spm_cpuidle_register (&pdev->dev, cpu);if (ret && ret != -ENODEV ) { dev_err(&pdev->dev,
drivers/cpuidle/cpuidle-riscv-sbi.c +2 -2
@@ -529,8 +529,8 @@ static int sbi_cpuidle_probe(struct platform_device *pdev)return ret; } -/* Initialize CPU idle driver for each CPU */ -for_each_possible_cpu (cpu) { +/* Initialize CPU idle driver for each present CPU */ +for_each_present_cpu (cpu) { ret =sbi_cpuidle_init_cpu (&pdev->dev, cpu);if (ret) { pr_debug("HART%ld: idle driver init failed\n",
drivers/crypto/hisilicon/sec2/sec.h +0 -1
@@ -37,7 +37,6 @@ struct sec_aead_req {u8 *a_ivin;dma_addr_t a_ivin_dma;struct aead_request *aead_req; -bool fallback; };/* SEC request of Crypto */
drivers/crypto/hisilicon/sec2/sec_crypto.c +47 -78
293 lines not on this page · raw message
drivers/crypto/intel/iaa/iaa_crypto_main.c +2 -2
@@ -1537,7 +1537,7 @@ static int iaa_comp_acompress(struct acomp_req *req) iaa_wq =idxd_wq_get_private (wq);if (!req->dst) { -gfp_t flags = req->flags &CRYPTO_TFM_REQ_MAY_SLEEP ?GFP_KERNEL :GFP_ATOMIC ; +gfp_t flags = req->base.flags &CRYPTO_TFM_REQ_MAY_SLEEP ?GFP_KERNEL :GFP_ATOMIC ;/* incompressible data will always be < 2 * slen */ req->dlen =2 * req->slen;
@@ -1619,7 +1619,7 @@ static int iaa_comp_acompress(struct acomp_req *req)static int iaa_comp_adecompress_alloc_dest (struct acomp_req *req) { -gfp_t flags = req->flags &CRYPTO_TFM_REQ_MAY_SLEEP ? +gfp_t flags = req->base.flags &CRYPTO_TFM_REQ_MAY_SLEEP ?GFP_KERNEL :GFP_ATOMIC ;struct crypto_tfm *tfm = req->base.tfm;dma_addr_t src_addr, dst_addr;
drivers/crypto/intel/qat/qat_420xx/adf_420xx_hw_data.c +1 -0
@@ -420,6 +420,7 @@ static void adf_gen4_set_err_mask(struct adf_dev_err_mask *dev_err_mask) dev_err_mask->parerr_cpr_xlt_mask =ADF_420XX_PARITYERRORMASK_CPR_XLT_MASK ; dev_err_mask->parerr_dcpr_ucs_mask =ADF_420XX_PARITYERRORMASK_DCPR_UCS_MASK ; dev_err_mask->parerr_pke_mask =ADF_420XX_PARITYERRORMASK_PKE_MASK ; + dev_err_mask->parerr_wat_wcp_mask =ADF_420XX_PARITYERRORMASK_WAT_WCP_MASK ; dev_err_mask->ssmfeatren_mask =ADF_420XX_SSMFEATREN_MASK ; }
drivers/crypto/intel/qat/qat_common/adf_gen4_ras.c +6 -53
84 lines not on this page · raw message
drivers/crypto/nx/nx-common-pseries.c +17 -20
@@ -1145,6 +1145,7 @@ static void __init nxcop_get_capabilities(void) {struct hv_vas_all_caps *hv_caps;struct hv_nx_cop_caps *hv_nxc; +u64 feat;int rc; hv_caps =kmalloc (sizeof (*hv_caps),GFP_KERNEL );
@@ -1155,27 +1156,26 @@ static void __init nxcop_get_capabilities(void)*/ rc =h_query_vas_capabilities (H_QUERY_NX_CAPABILITIES ,0 , (u64 )virt_to_phys (hv_caps)); +if (!rc) + feat =be64_to_cpu (hv_caps->feat_type); +kfree (hv_caps);if (rc) - goto out; +return ; +if (!(feat &VAS_NX_GZIP_FEAT_BIT )) +return ; - caps_feat =be64_to_cpu (hv_caps->feat_type);/* * NX-GZIP feature available */ -if (caps_feat &VAS_NX_GZIP_FEAT_BIT ) { - hv_nxc =kmalloc (sizeof (*hv_nxc),GFP_KERNEL ); -if (!hv_nxc) - goto out; -/* -* Get capabilities for NX-GZIP feature -*/ - rc =h_query_vas_capabilities (H_QUERY_NX_CAPABILITIES , -VAS_NX_GZIP_FEAT , - (u64 )virt_to_phys (hv_nxc)); - }else { -pr_err ("NX-GZIP feature is not available\n" ); - rc = -EINVAL ; - } + hv_nxc =kmalloc (sizeof (*hv_nxc),GFP_KERNEL ); +if (!hv_nxc) +return ; +/* +* Get capabilities for NX-GZIP feature +*/ + rc =h_query_vas_capabilities (H_QUERY_NX_CAPABILITIES , +VAS_NX_GZIP_FEAT , + (u64 )virt_to_phys (hv_nxc));if (!rc) { nx_cop_caps.descriptor =be64_to_cpu (hv_nxc->descriptor);
@@ -1185,13 +1185,10 @@ static void __init nxcop_get_capabilities(void)be64_to_cpu (hv_nxc->min_compress_len); nx_cop_caps.min_decompress_len =be64_to_cpu (hv_nxc->min_decompress_len); - }else { - caps_feat =0 ; + caps_feat = feat; }kfree (hv_nxc); -out: -kfree (hv_caps); }static const struct vio_device_id nx842_vio_driver_ids[] = {
drivers/crypto/tegra/tegra-se-aes.c +266 -135
32 lines not on this page · raw message
drivers/crypto/tegra/tegra-se-hash.c +186 -101
287 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +9 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdgpu/amdgpu_virt.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +0 -15
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c +16 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dce/dmub_hw_lock_mgr.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml/dcn30/display_mode_vba_30.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/dml21/src/dml2_core/dml2_core_dcn4.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c +3 -9
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/display/drm_dp_mst_topology.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/adreno/a6xx_gpu_state.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/dpu1/dpu_crtc.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/dpu1/dpu_encoder.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/dsi/dsi_manager.c +21 -11
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/dsi/phy/dsi_phy_7nm.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-ilitek-ili9882t.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panthor/panthor_sched.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/xe/xe_guc_pc.c +40 -13
53 lines not on this page · raw message
drivers/hwtracing/coresight/coresight-catu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-core.c +15 -5
Lines of this file are not shown. View the raw message.
drivers/hwtracing/coresight/coresight-etm4x-core.c +43 -5
48 lines not on this page · raw message
drivers/iio/adc/ad4130.c +39 -2
41 lines not on this page · raw message
drivers/infiniband/hw/mlx5/mr.c +26 -15
41 lines not on this page · raw message
drivers/media/platform/allegro-dvt/allegro-core.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/ti/omap3isp/isp.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/verisilicon/hantro_g2_hevc_dec.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vimc/vimc-streamer.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/defines.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/ich8lan.c +75 -5
80 lines not on this page · raw message
drivers/net/ethernet/intel/e1000e/ich8lan.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/idpf/idpf_main.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_prs.c +135 -66
201 lines not on this page · raw message
drivers/net/ethernet/marvell/octeontx2/af/rvu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/params.c +5 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c +13 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/dbg.c +58 -28
86 lines not on this page · raw message
drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/main.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/cadence/pcie-cadence-ep.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/cadence/pcie-cadence.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware-ep.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-histb.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-xilinx-cpm.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/pci/iov.c +34 -14
48 lines not on this page · raw message
drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c +44 -6
50 lines not on this page · raw message
drivers/pinctrl/nuvoton/pinctrl-npcm8xx.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzg2l.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/renesas/pinctrl-rzv2m.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/platform/surface/surface_aggregator_registry.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/amd/pmf/tee-if.c +59 -23
82 lines not on this page · raw message
drivers/platform/x86/dell/dell-uart-backlight.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-ddv.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/speed_select_if/isst_if_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/x86/lenovo-yoga-tab2-pro-1380-fastcharger.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/power/supply/max77693_charger.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/gpib/agilent_82357a/agilent_82357a.c +242 -271
513 lines not on this page · raw message
drivers/staging/gpib/hp_82341/hp_82341.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/gpib/ni_usb/ni_usb_gpib.c +281 -264
545 lines not on this page · raw message
drivers/staging/gpib/ni_usb/ni_usb_gpib.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +18 -10
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/int3402_thermal.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/tty/serial/fsl_lpuart.c +152 -160
312 lines not on this page · raw message
fs/exfat/inode.c +35 -6
41 lines not on this page · raw message
fs/hostfs/hostfs_user.c +34 -25
59 lines not on this page · raw message
fs/nfs/delegation.c +42 -21
63 lines not on this page · raw message
fs/nfsd/nfsctl.c +21 -23
44 lines not on this page · raw message
fs/smb/client/cifssmb.c +27 -19
46 lines not on this page · raw message
fs/smb/client/smb2pdu.c +42 -54
96 lines not on this page · raw message
fs/smb/server/smb2pdu.c +40 -14
54 lines not on this page · raw message
fs/smb/server/smbacl.c +32 -18
50 lines not on this page · raw message
include/drm/display/drm_dp_mst_helper.h +7 -0
Lines of this file are not shown. View the raw message.
kernel/events/core.c +35 -11
46 lines not on this page · raw message
kernel/sched/fair.c +37 -13
50 lines not on this page · raw message
kernel/trace/trace_events_hist.c +110 -23
133 lines not on this page · raw message
net/can/proc.c +27 -19
46 lines not on this page · raw message
net/ipv4/udp.c +24 -18
42 lines not on this page · raw message
net/ipv6/route.c +38 -4
42 lines not on this page · raw message
samples/trace_events/trace-events-sample.h +6 -2
Lines of this file are not shown. View the raw message.
sound/core/timer.c +77 -70
147 lines not on this page · raw message
sound/pci/hda/patch_realtek.c +48 -2
50 lines not on this page · raw message
tools/perf/pmu-events/arch/arm64/ampere/ampereonex/metrics.json +5 -5
Lines of this file are not shown. View the raw message.
tools/perf/pmu-events/empty-pmu-events.c +4 -4
Lines of this file are not shown. View the raw message.
tools/perf/tests/pmu.c +44 -41
85 lines not on this page · raw message
tools/perf/tests/shell/coresight/asm_pure_loop/asm_pure_loop.S +2 -0
Lines of this file are not shown. View the raw message.
tools/perf/tests/shell/record_bpf_filter.sh +2 -2
Lines of this file are not shown. View the raw message.
tools/perf/tests/shell/stat_all_pmu.sh +34 -14
48 lines not on this page · raw message
tools/perf/util/pmu.c +183 -80
263 lines not on this page · raw message
tools/testing/selftests/bpf/prog_tests/bloom_filter_map.c +5 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/tailcalls.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/progs/strncmp_bench.c +4 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/br_netfilter.sh +7 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/br_netfilter_queue.sh +7 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/netfilter/nft_queue.sh +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/pcie_bwctrl/Makefile +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.