Linux 6.8.3
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.8.3 kernel.
All users of the 6.8 kernel series must upgrade.
The updated 6.8.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.8.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/Makefile | 4 Documentation/admin-guide/kernel-parameters.txt | 4 Documentation/arch/x86/amd-memory-encryption.rst | 16 Documentation/conf.py | 6 Documentation/userspace-api/media/mediactl/media-types.rst | 11 Makefile | 2 arch/arm/Kconfig | 4 arch/arm/boot/dts/marvell/mmp2-brownstone.dts | 2 arch/arm/include/asm/mman.h | 14 arch/arm/kernel/Makefile | 2 arch/arm/kernel/iwmmxt.S | 51 - arch/arm/kernel/pj4-cp0.c | 135 ----- arch/arm/mm/flush.c | 3 arch/arm64/boot/dts/qcom/sc7280.dtsi | 12 arch/arm64/boot/dts/qcom/sm8450-hdk.dts | 4 arch/arm64/boot/dts/qcom/sm8550-mtp.dts | 2 arch/arm64/boot/dts/qcom/sm8550-qrd.dts | 2 arch/hexagon/kernel/vmlinux.lds.S | 1 arch/loongarch/crypto/crc32-loongarch.c | 2 arch/loongarch/include/asm/Kbuild | 1 arch/loongarch/include/asm/io.h | 2 arch/loongarch/include/asm/percpu.h | 7 arch/loongarch/include/asm/qspinlock.h | 18 arch/parisc/include/asm/assembly.h | 18 arch/parisc/include/asm/checksum.h | 10 arch/parisc/include/asm/mman.h | 14 arch/parisc/kernel/unaligned.c | 27 - arch/powerpc/include/asm/reg_fsl_emb.h | 11 arch/powerpc/kernel/prom.c | 12 arch/powerpc/lib/Makefile | 2 arch/sparc/include/asm/parport.h | 259 ---------- arch/sparc/include/asm/parport_64.h | 256 +++++++++ arch/sparc/kernel/nmi.c | 2 arch/sparc/vdso/vma.c | 7 arch/x86/Kconfig | 13 arch/x86/boot/compressed/efi_mixed.S | 29 - arch/x86/coco/core.c | 7 arch/x86/events/amd/core.c | 20 arch/x86/include/asm/asm-prototypes.h | 1 arch/x86/include/asm/asm.h | 14 arch/x86/include/asm/coco.h | 8 arch/x86/include/asm/crash_core.h | 2 arch/x86/include/asm/mem_encrypt.h | 15 arch/x86/include/asm/nospec-branch.h | 21 arch/x86/include/asm/sev.h | 4 arch/x86/include/asm/suspend_32.h | 10 arch/x86/include/asm/x86_init.h | 3 arch/x86/kernel/cpu/amd.c | 10 arch/x86/kernel/eisa.c | 3 arch/x86/kernel/fpu/xstate.c | 5 arch/x86/kernel/fpu/xstate.h | 14 arch/x86/kernel/kprobes/core.c | 11 arch/x86/kernel/mpparse.c | 10 arch/x86/kernel/nmi.c | 2 arch/x86/kernel/probe_roms.c | 10 arch/x86/kernel/setup.c | 3 arch/x86/kernel/sev-shared.c | 12 arch/x86/kernel/sev.c | 31 - arch/x86/kernel/x86_init.c | 2 arch/x86/kvm/lapic.c | 5 arch/x86/kvm/xen.c | 2 arch/x86/kvm/xen.h | 18 arch/x86/lib/retpoline.S | 11 arch/x86/mm/mem_encrypt_amd.c | 18 arch/x86/mm/mem_encrypt_identity.c | 38 - block/bio.c | 7 block/blk-mq.c | 9 block/blk-settings.c | 4 block/mq-deadline.c | 3 crypto/asymmetric_keys/mscode_parser.c | 3 crypto/asymmetric_keys/pkcs7_parser.c | 4 crypto/asymmetric_keys/public_key.c | 3 crypto/asymmetric_keys/signature.c | 2 crypto/asymmetric_keys/x509_cert_parser.c | 8 crypto/testmgr.h | 80 +++ drivers/accessibility/speakup/synth.c | 4 drivers/ata/ahci.c | 13 drivers/ata/libata-eh.c | 5 drivers/ata/libata-scsi.c | 9 drivers/base/power/wakeirq.c | 4 drivers/bluetooth/btnxpuart.c | 3 drivers/char/tpm/tpm_tis_core.c | 3 drivers/clk/qcom/camcc-sc8280xp.c | 21 drivers/clk/qcom/gcc-ipq5018.c | 3 drivers/clk/qcom/gcc-ipq6018.c | 2 drivers/clk/qcom/gcc-ipq8074.c | 2 drivers/clk/qcom/gcc-ipq9574.c | 1 drivers/clk/qcom/gcc-sdm845.c | 1 drivers/clk/qcom/mmcc-apq8084.c | 2 drivers/clk/qcom/mmcc-msm8974.c | 2 drivers/clocksource/arm_global_timer.c | 2 drivers/clocksource/timer-riscv.c | 3 drivers/cpufreq/amd-pstate.c | 2 drivers/cpufreq/cpufreq-dt.c | 2 drivers/crypto/intel/iaa/iaa_crypto_main.c | 10 drivers/crypto/intel/qat/qat_common/adf_aer.c | 22 drivers/crypto/intel/qat/qat_common/adf_rl.c | 20 drivers/cxl/core/trace.h | 14 drivers/firmware/efi/efi.c | 2 drivers/firmware/efi/libstub/randomalloc.c | 2 drivers/firmware/efi/libstub/x86-stub.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c | 20 drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c | 46 + drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 1 drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 34 - drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c | 8 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c | 14 drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/core/dc.c | 127 ++++ drivers/gpu/drm/amd/display/dc/core/dc_state.c | 3 drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 18 drivers/gpu/drm/amd/display/dc/core/dc_surface.c | 2 drivers/gpu/drm/amd/display/dc/dc.h | 2 drivers/gpu/drm/amd/display/dc/dc_stream.h | 2 drivers/gpu/drm/amd/display/dc/dc_types.h | 4 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c | 1 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_opp.c | 14 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_opp.h | 2 drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c | 1 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c | 54 +- drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h | 14 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c | 5 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c | 6 drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c | 24 drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c | 28 - drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.h | 3 drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c | 3 drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c | 2 drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c | 53 +- drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c | 12 drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c | 41 - drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c | 71 +- drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.h | 2 drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_init.c | 2 drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c | 41 - drivers/gpu/drm/amd/display/dc/inc/hw/opp.h | 3 drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h | 1 drivers/gpu/drm/amd/display/dc/inc/link.h | 4 drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c | 4 drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h | 4 drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.h | 3 drivers/gpu/drm/amd/display/dc/optc/dcn32/dcn32_optc.c | 8 drivers/gpu/drm/amd/display/dc/optc/dcn32/dcn32_optc.h | 1 drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c | 3 drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.h | 3 drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c | 2 drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h | 8 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c | 13 drivers/gpu/drm/amd/display/modules/power/power_helpers.c | 2 drivers/gpu/drm/amd/display/modules/power/power_helpers.h | 2 drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c | 19 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 19 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 31 - drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 18 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 18 drivers/gpu/drm/bridge/lontium-lt8912b.c | 24 drivers/gpu/drm/display/drm_dp_helper.c | 7 drivers/gpu/drm/drm_bridge.c | 46 + drivers/gpu/drm/drm_panel.c | 17 drivers/gpu/drm/drm_probe_helper.c | 7 drivers/gpu/drm/etnaviv/etnaviv_drv.c | 2 drivers/gpu/drm/etnaviv/etnaviv_hwdb.c | 9 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 4 drivers/gpu/drm/exynos/exynos_hdmi.c | 4 drivers/gpu/drm/i915/display/icl_dsi.c | 3 drivers/gpu/drm/i915/display/intel_bios.c | 46 + drivers/gpu/drm/i915/display/intel_cursor.c | 4 drivers/gpu/drm/i915/display/intel_display_trace.h | 6 drivers/gpu/drm/i915/display/intel_display_types.h | 1 drivers/gpu/drm/i915/display/intel_dpll_mgr.c | 76 +- drivers/gpu/drm/i915/display/intel_dpll_mgr.h | 4 drivers/gpu/drm/i915/display/intel_dsb.c | 14 drivers/gpu/drm/i915/display/intel_fb_pin.c | 10 drivers/gpu/drm/i915/display/intel_vrr.c | 7 drivers/gpu/drm/i915/gt/intel_engine_pm.c | 3 drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 3 drivers/gpu/drm/i915/i915_hwmon.c | 37 - drivers/gpu/drm/i915/i915_reg.h | 2 drivers/gpu/drm/i915/i915_vma.c | 50 + drivers/gpu/drm/imx/ipuv3/parallel-display.c | 4 drivers/gpu/drm/nouveau/nouveau_dmem.c | 12 drivers/gpu/drm/scheduler/sched_entity.c | 12 drivers/gpu/drm/ttm/ttm_bo_util.c | 13 drivers/gpu/drm/ttm/ttm_tt.c | 13 drivers/gpu/drm/vc4/vc4_hdmi.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | 15 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 14 drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 17 drivers/gpu/drm/xe/xe_query.c | 2 drivers/hwmon/amc6821.c | 11 drivers/iio/adc/rockchip_saradc.c | 6 drivers/iommu/dma-iommu.c | 9 drivers/irqchip/irq-renesas-rzg2l.c | 67 ++ drivers/leds/trigger/ledtrig-netdev.c | 4 drivers/md/dm-raid.c | 93 ++- drivers/md/dm-snap.c | 4 drivers/md/md-bitmap.c | 9 drivers/md/md.c | 82 ++- drivers/md/md.h | 38 + drivers/md/raid5.c | 58 +- drivers/media/mc/mc-entity.c | 93 ++- drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c | 4 drivers/media/tuners/xc4000.c | 4 drivers/mfd/Kconfig | 1 drivers/mfd/intel-lpss-pci.c | 28 - drivers/mfd/intel-lpss.c | 9 drivers/mfd/intel-lpss.h | 14 drivers/mmc/core/block.c | 14 drivers/mmc/host/sdhci-of-dwcmshc.c | 28 - drivers/mmc/host/sdhci-omap.c | 3 drivers/mmc/host/tmio_mmc_core.c | 2 drivers/mtd/nand/raw/meson_nand.c | 2 drivers/mtd/nand/raw/nand_base.c | 85 ++- drivers/mtd/ubi/fastmap.c | 7 drivers/mtd/ubi/vtbl.c | 6 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h | 8 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h | 8 drivers/net/ethernet/xilinx/ll_temac_main.c | 2 drivers/net/phy/at803x.c | 4 drivers/net/wireguard/netlink.c | 10 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c | 15 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 60 -- drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c | 33 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c | 3 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c | 1 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h | 2 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c | 14 drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h | 33 - drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c | 16 drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 15 drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c | 11 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 2 drivers/net/wireless/realtek/rtw88/mac.c | 7 drivers/net/wireless/realtek/rtw88/rtw8821cu.c | 40 + drivers/nvmem/meson-efuse.c | 25 drivers/pci/controller/dwc/pcie-designware-ep.c | 7 drivers/pci/controller/dwc/pcie-qcom.c | 41 + drivers/pci/controller/pci-hyperv.c | 3 drivers/pci/pci-driver.c | 7 drivers/pci/pcie/err.c | 20 drivers/pci/quirks.c | 2 drivers/phy/tegra/xusb.c | 13 drivers/pinctrl/pinctrl-amd.c | 2 drivers/pinctrl/qcom/Kconfig | 2 drivers/platform/x86/intel/tpmi.c | 9 drivers/powercap/intel_rapl_common.c | 34 + drivers/powercap/intel_rapl_msr.c | 8 drivers/powercap/intel_rapl_tpmi.c | 15 drivers/pwm/pwm-img.c | 4 drivers/remoteproc/remoteproc_virtio.c | 6 drivers/s390/crypto/zcrypt_api.c | 2 drivers/scsi/hosts.c | 7 drivers/scsi/libsas/sas_expander.c | 51 + drivers/scsi/lpfc/lpfc_bsg.c | 4 drivers/scsi/lpfc/lpfc_nvmet.c | 2 drivers/scsi/qla2xxx/qla_attr.c | 14 drivers/scsi/qla2xxx/qla_def.h | 2 drivers/scsi/qla2xxx/qla_gbl.h | 2 drivers/scsi/qla2xxx/qla_init.c | 128 ++-- drivers/scsi/qla2xxx/qla_iocb.c | 68 +- drivers/scsi/qla2xxx/qla_mbx.c | 2 drivers/scsi/qla2xxx/qla_os.c | 3 drivers/scsi/qla2xxx/qla_target.c | 10 drivers/scsi/scsi_scan.c | 34 + drivers/scsi/sd.c | 23 drivers/slimbus/core.c | 4 drivers/soc/fsl/qbman/qman.c | 25 drivers/staging/media/ipu3/ipu3-v4l2.c | 16 drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c | 5 drivers/thermal/devfreq_cooling.c | 2 drivers/thermal/intel/int340x_thermal/processor_thermal_device.c | 8 drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c | 8 drivers/thermal/intel/intel_tcc.c | 12 drivers/thermal/intel/x86_pkg_temp_thermal.c | 8 drivers/thermal/mediatek/auxadc_thermal.c | 3 drivers/thermal/thermal_trip.c | 19 drivers/tty/serial/8250/8250_port.c | 6 drivers/tty/serial/max310x.c | 7 drivers/tty/serial/serial_core.c | 12 drivers/ufs/host/ufs-qcom.c | 6 drivers/usb/class/cdc-wdm.c | 6 drivers/usb/core/hub.c | 23 drivers/usb/core/hub.h | 2 drivers/usb/core/port.c | 38 + drivers/usb/core/sysfs.c | 16 drivers/usb/dwc2/core.h | 14 drivers/usb/dwc2/core_intr.c | 72 +- drivers/usb/dwc2/gadget.c | 10 drivers/usb/dwc2/hcd.c | 49 + drivers/usb/dwc2/hcd_ddma.c | 17 drivers/usb/dwc2/hw.h | 2 drivers/usb/dwc2/platform.c | 2 drivers/usb/dwc3/core.c | 2 drivers/usb/dwc3/core.h | 2 drivers/usb/dwc3/dwc3-am62.c | 13 drivers/usb/dwc3/dwc3-pci.c | 2 drivers/usb/dwc3/gadget.c | 10 drivers/usb/dwc3/host.c | 11 drivers/usb/gadget/udc/core.c | 4 drivers/usb/gadget/udc/tegra-xudc.c | 39 - drivers/usb/host/xhci.c | 2 drivers/usb/misc/usb-ljca.c | 22 drivers/usb/phy/phy-generic.c | 7 drivers/usb/serial/cp210x.c | 4 drivers/usb/serial/ftdi_sio.c | 2 drivers/usb/serial/ftdi_sio_ids.h | 6 drivers/usb/serial/option.c | 6 drivers/usb/storage/uas.c | 28 - drivers/usb/typec/class.c | 7 drivers/usb/typec/tcpm/tcpm.c | 6 drivers/usb/typec/ucsi/ucsi.c | 46 + drivers/usb/typec/ucsi/ucsi.h | 4 drivers/usb/typec/ucsi/ucsi_acpi.c | 75 +- drivers/usb/typec/ucsi/ucsi_glink.c | 14 drivers/vfio/fsl-mc/vfio_fsl_mc_intr.c | 7 drivers/vfio/pci/pds/lm.c | 13 drivers/vfio/pci/pds/lm.h | 1 drivers/vfio/pci/pds/vfio_dev.c | 4 drivers/vfio/pci/vfio_pci_intrs.c | 176 ++++-- drivers/vfio/platform/vfio_platform_irq.c | 105 ++-- drivers/vfio/virqfd.c | 21 drivers/video/fbdev/Kconfig | 3 drivers/virtio/virtio.c | 4 fs/btrfs/block-group.c | 3 fs/btrfs/compression.c | 8 fs/btrfs/defrag.c | 4 fs/btrfs/disk-io.c | 13 fs/btrfs/export.c | 2 fs/btrfs/extent_io.c | 61 +- fs/btrfs/extent_io.h | 1 fs/btrfs/extent_map.c | 16 fs/btrfs/file.c | 14 fs/btrfs/free-space-cache.c | 2 fs/btrfs/fs.h | 11 fs/btrfs/inode.c | 54 +- fs/btrfs/ioctl.c | 58 -- fs/btrfs/lzo.c | 4 fs/btrfs/props.c | 2 fs/btrfs/qgroup.c | 61 ++ fs/btrfs/qgroup.h | 3 fs/btrfs/reflink.c | 12 fs/btrfs/relocation.c | 2 fs/btrfs/scrub.c | 12 fs/btrfs/send.c | 2 fs/btrfs/super.c | 2 fs/btrfs/volumes.c | 69 ++ fs/btrfs/zoned.c | 14 fs/debugfs/inode.c | 25 fs/dlm/user.c | 10 fs/exec.c | 1 fs/ext4/mballoc.c | 17 fs/ext4/resize.c | 3 fs/f2fs/f2fs.h | 1 fs/f2fs/segment.c | 4 fs/fat/nfs.c | 6 fs/fuse/dir.c | 6 fs/fuse/file.c | 8 fs/fuse/fuse_i.h | 1 fs/fuse/inode.c | 7 fs/nfs/direct.c | 11 fs/nfs/read.c | 2 fs/nfs/write.c | 2 fs/nfsd/trace.h | 2 fs/nilfs2/btree.c | 9 fs/nilfs2/direct.c | 9 fs/nilfs2/inode.c | 2 fs/smb/client/cached_dir.c | 3 fs/smb/client/cifs_debug.c | 2 fs/smb/client/cifsglob.h | 4 fs/smb/client/cifsproto.h | 6 fs/smb/client/connect.c | 6 fs/smb/client/file.c | 8 fs/smb/client/fs_context.c | 27 - fs/smb/client/inode.c | 13 fs/smb/client/readdir.c | 2 fs/smb/client/sess.c | 4 fs/smb/client/smb2ops.c | 2 fs/smb/client/smb2pdu.c | 10 fs/smb/server/smb2misc.c | 26 - fs/smb/server/smb2pdu.c | 228 +++++--- fs/smb/server/smb_common.c | 11 fs/smb/server/vfs.c | 12 fs/ubifs/dir.c | 2 fs/ubifs/file.c | 13 include/drm/drm_bridge.h | 33 + include/drm/drm_modeset_helper_vtables.h | 3 include/drm/ttm/ttm_tt.h | 9 include/linux/cpufreq.h | 15 include/linux/framer/framer.h | 4 include/linux/intel_rapl.h | 6 include/linux/intel_tcc.h | 2 include/linux/interrupt.h | 3 include/linux/libata.h | 1 include/linux/lsm_hook_defs.h | 4 include/linux/mman.h | 8 include/linux/mtd/spinand.h | 2 include/linux/nfs_fs.h | 1 include/linux/oid_registry.h | 4 include/linux/phy/tegra/xusb.h | 1 include/linux/ring_buffer.h | 4 include/linux/security.h | 8 include/linux/serial_core.h | 3 include/linux/skbuff.h | 10 include/linux/syscalls.h | 6 include/linux/trace_events.h | 5 include/linux/vfio.h | 2 include/media/media-entity.h | 2 include/net/cfg80211.h | 2 include/net/cfg802154.h | 1 include/scsi/scsi_driver.h | 1 include/scsi/scsi_host.h | 1 include/uapi/linux/btrfs.h | 1 init/initramfs.c | 2 io_uring/futex.c | 1 io_uring/io_uring.c | 5 io_uring/net.c | 5 io_uring/poll.c | 19 io_uring/rw.c | 4 io_uring/waitid.c | 7 kernel/bounds.c | 2 kernel/crash_core.c | 8 kernel/dma/swiotlb.c | 35 - kernel/entry/common.c | 8 kernel/irq/manage.c | 9 kernel/module/Kconfig | 5 kernel/power/suspend.c | 1 kernel/printk/printk.c | 27 - kernel/sys.c | 7 kernel/time/posix-clock.c | 16 kernel/trace/ring_buffer.c | 161 +++--- kernel/trace/trace.c | 43 + kernel/workqueue.c | 2 lib/pci_iomap.c | 2 mm/filemap.c | 16 mm/kasan/kasan_test.c | 3 mm/memtest.c | 4 mm/shmem_quota.c | 10 mm/swapfile.c | 13 mm/zswap.c | 8 net/bluetooth/hci_core.c | 6 net/bluetooth/hci_sync.c | 5 net/ipv4/esp4.c | 8 net/ipv6/esp6.c | 8 net/mac80211/cfg.c | 7 net/mac80211/ieee80211_i.h | 2 net/mac80211/rate.c | 2 net/mac80211/sta_info.h | 6 net/mac80211/vht.c | 46 - net/mac802154/llsec.c | 18 net/netfilter/nf_tables_api.c | 3 net/wireless/wext-core.c | 7 scripts/Makefile.extrawarn | 2 security/apparmor/lsm.c | 4 security/landlock/syscalls.c | 18 security/lsm_syscalls.c | 10 security/security.c | 20 security/selinux/hooks.c | 4 security/smack/smack_lsm.c | 16 sound/pci/hda/tas2781_hda_i2c.c | 83 +-- sound/sh/aica.c | 17 sound/soc/amd/yc/acp6x-mach.c | 7 sound/soc/amd/yc/pci-acp6x.c | 1 tools/include/linux/btf_ids.h | 2 tools/testing/selftests/lsm/common.h | 6 tools/testing/selftests/lsm/lsm_get_self_attr_test.c | 10 tools/testing/selftests/lsm/lsm_list_modules_test.c | 8 tools/testing/selftests/lsm/lsm_set_self_attr_test.c | 6 tools/testing/selftests/mm/gup_test.c | 2 tools/testing/selftests/mm/soft-dirty.c | 2 tools/testing/selftests/mm/split_huge_page_test.c | 2 tools/testing/selftests/mm/uffd-common.c | 3 tools/testing/selftests/mm/uffd-common.h | 2 tools/testing/selftests/mm/uffd-unit-tests.c | 13 tools/testing/selftests/mqueue/setting | 1 tools/testing/selftests/wireguard/qemu/arch/riscv32.config | 1 tools/testing/selftests/wireguard/qemu/arch/riscv64.config | 1 virt/kvm/async_pf.c | 31 + 481 files changed, 4772 insertions(+), 2551 deletions(-)
Adamos Ttofari (1):
x86/fpu: Keep xfd_state in sync with MSR_IA32_XFD
Akira Yokosawa (2):
docs: Restore "smart quotes" for quotes
docs: Makefile: Add dependency to $(YNL_INDEX) for targets other than htmldocs
Alan Stern (3):
USB: core: Fix deadlock in usb_deauthorize_interface()
USB: core: Add hub_get() and hub_put() routines
USB: core: Fix deadlock in port "disable" sysfs attribute
Aleksandrs Vinarskis (2):
mfd: intel-lpss: Switch to generalized quirk table
mfd: intel-lpss: Introduce QUIRK_CLOCK_DIVIDER_UNITY for XPS 9530
Alex Williamson (7):
vfio/pci: Disable auto-enable of exclusive INTx IRQ vfio/pci: Lock external INTx masking ops vfio/platform: Disable virqfds on cleanup vfio/platform: Create persistent IRQ handlers vfio/fsl-mc: Block calling interrupt handler without trigger
vfio: Introduce interface to flush virqfd inject workqueue vfio/pci: Create persistent INTx handler
Alexander Aring (1):
dlm: fix user space lkb refcounting
Alexander Stein (1):
Revert "usb: phy: generic: Get the vbus supply"
Alexander Sverdlin (1):
mfd: twl: Select MFD_CORE
Alison Schofield (1):
cxl/trace: Properly initialize cxl_poison region name
Allen Pan (1):
drm/amd/display: Add a dc_state NULL check in dc_state_release
Alvin Lee (1):
drm/amd/display: Remove pixle rate limit for subvp
Amit Pundir (1):
clk: qcom: gcc-sdm845: Add soft dependency on rpmhpd
Anand Jain (2):
btrfs: do not skip re-registration for the mounted device
btrfs: validate device maj:min during open
André Rösti (1):
entry: Respect changes to system call number by trace_sys_enter()
Anton Altaparmakov (1):
x86/pm: Work around false positive kmemleak report in msr_build_context()
Ard Biesheuvel (6):
x86/efistub: Call mixed mode boot services on the firmware's stack x86/sev: Fix position dependent variable references in startup code
ARM: 9352/1: iwmmxt: Remove support for PJ4/PJ4B cores x86/efistub: Add missing boot_params for mixed mode compat entry efi/libstub: Cast away type warning in use of max() x86/efistub: Reinstate soft limit for initrd loading
Arend van Spriel (2):
wifi: brcmfmac: avoid invalid list operation when vendor attach fails
wifi: brcmfmac: add per-vendor feature detection callback
Aric Cyr (1):
drm/amd/display: Unify optimize_required flags and VRR adjustments
Arnd Bergmann (2):
kasan/test: avoid gcc warning for intentional overflow
staging: vc04_services: changen strncpy() to strscpy_pad()
Arseniy Krasnov (1):
mtd: rawnand: meson: fix scrambling mode value in command macro
Audra Mitchell (1):
workqueue: Shorten events_freezable_power_efficient name
Aurélien Jacobs (1):
USB: serial: option: add MeiG Smart SLM320 product
Baokun Li (1):
ext4: correct best extent lstart adjustment logic
Baoquan He (1):
crash: use macro to add crashk_res into iomem early for specific arch
Bart Van Assche (1):
Revert "block/mq-deadline: use correct way to throttling write requests"
Benjamin Coddington (1):
NFS: Read unlock folio on nfs_page_create_from_folio() error
Bernd Schubert (1):
fuse: fix VM_MAYSHARE and direct_io_allow_mmap
Bharath SM (1):
cifs: prevent updating file size from server if we have a read/write lease
Biju Das (4):
irqchip/renesas-rzg2l: Flush posted write in irq_eoi() irqchip/renesas-rzg2l: Rename rzg2l_tint_eoi() irqchip/renesas-rzg2l: Rename rzg2l_irq_eoi() irqchip/renesas-rzg2l: Prevent spurious interrupts when setting trigger type
Bikash Hazarika (1):
scsi: qla2xxx: Update manufacturer detail
Bitterblue Smith (1):
wifi: rtw88: 8821cu: Fix connection failure
Borislav Petkov (AMD) (3):
x86/CPU/AMD: Update the Zenbleed microcode revisions x86/Kconfig: Remove CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT x86/bugs: Fix the SRSO mitigation on Zen3/4
Breno Leitao (1):
x86/nmi: Fix the inverse "in NMI handler" check
Brett Creeley (2):
vfio/pds: Always clear the save/restore FDs on reset vfio/pds: Make sure migration file isn't accessed after reset
Cameron Williams (1):
USB: serial: add device ID for VeriFone adapter
Carlos Maiolino (1):
tmpfs: fix race on handling dquot rbtree
Casey Schaufler (1):
lsm: use 32-bit compatible data types in LSM syscalls
Chris Bainbridge (1):
drm/dp: Fix divide-by-zero regression on DP MST unplug with nouveau
Chris Park (1):
drm/amd/display: Prevent crash when disable stream
Chris Wilson (1):
drm/i915/gt: Reset queue_priority_hint on parking
Christian A. Ehrhardt (4):
usb: typec: ucsi: Clear EVENT_PENDING under PPM lock
usb: typec: ucsi: Ack unsupported commands
usb: typec: ucsi_acpi: Refactor and fix DELL quirk
usb: typec: ucsi: Clear UCSI_CCI_RESET_COMPLETE before reset
Christian Gmeiner (1):
drm/etnaviv: Restore some id values
Christian Häggström (1):
USB: serial: cp210x: add ID for MGP Instruments PDS100
Christian Marangi (2):
leds: trigger: netdev: Fix kernel panic on interface rename trig notify
net: phy: qcom: at803x: fix kernel panic with at8031_probe
Christophe JAILLET (1):
slimbus: core: Remove usage of the deprecated ida_simple_xx() API
ChunTao Tso (1):
drm/amd/display: Amend coasting vtotal for replay low hz
Claus Hansen Ries (1):
net: ll_temac: platform_get_resource replaced by wrong function
Conrad Kostecki (1):
ahci: asm1064: asm1166: don't limit reported ports
Damian Muszynski (2):
crypto: qat - change SLAs cleanup flow at shutdown
crypto: qat - resolve race condition during AER recovery
Damien Le Moal (3):
block: Clear zone limits for a non-zoned stacked queue
block: Do not force full zone append completion in req_bio_endio()
scsi: sd: Fix TCG OPAL unlock on system resume
Dan Carpenter (1):
staging: vc04_services: fix information leak in create_component()
Daniel Lezcano (1):
Revert "thermal: core: Don't update trip points inside the hysteresis range"
Daniel Vogelbacher (1):
USB: serial: ftdi_sio: add support for GMC Z216C Adapter IR-USB
Dave Hansen (1):
Revert "x86/bugs: Use fixed addressing for VERW operand"
David Hildenbrand (1):
virtio: reenable config if freezing device failed
David Sterba (5):
btrfs: replace sb::s_blocksize by fs_info::sectorsize
btrfs: add helpers to get inode from page/folio pointers
btrfs: add helpers to get fs_info from page/folio pointers
btrfs: add helper to get fs_info from struct inode pointer
btrfs: handle errors returned from unpin_extent_cache()
David Woodhouse (1):
KVM: x86/xen: inject vCPU upcall vector when local APIC is enabled
Dillon Varone (1):
drm/amd/display: Init DPPCLK from SMU on dcn32
Dmitry Baryshkov (1):
scsi: ufs: qcom: Provide default cycles_in_1us value
Dominique Martinet (1):
mmc: core: Fix switch on gp3 partition
Dragos Tatulea (1):
net: esp: fix bad handling of pages from page_pool
Duje Mihanović (1):
arm: dts: marvell: Fix maxium->maxim typo in brownstone dts
Duoming Zhou (2):
nouveau/dmem: handle kcalloc() allocation failure
ALSA: sh: aica: reorder cleanup operations to avoid UAF bugs
Edward Liaw (2):
selftests/mm: sigbus-wp test requires UFFD_FEATURE_WP_HUGETLBFS_SHMEM selftests/mm: fix ARM related issue with fork after pthread_create
Eric Biggers (1):
Revert "crypto: pkcs7 - remove sha1 support"
Eric Huang (1):
drm/amdkfd: fix TLB flush after unmap for GFX9.4.2
Eugene Korenevsky (1):
cifs: open_cached_dir(): add FILE_READ_EA to desired access
Ezra Buehler (1):
mtd: spinand: Add support for 5-byte IDs
Fedor Pchelkin (1):
mac802154: fix llsec key resources release in mac802154_llsec_key_del
Felix Fietkau (1):
wifi: mac80211: check/clear fast rx for non-4addr sta VLAN changes
Filipe Manana (3):
btrfs: fix off-by-one chunk length calculation at contains_pending_extent()
btrfs: fix warning messages not printing interval at unpin_extent_range()
btrfs: fix extent map leak in unexpected scenario at unpin_extent_cache()
Frank Wunderlich (1):
thermal/drivers/mediatek: Fix control buffer enablement on MT7896
Gabor Juhos (7):
clk: qcom: gcc-ipq5018: fix terminating of frequency table arrays
clk: qcom: gcc-ipq6018: fix terminating of frequency table arrays
clk: qcom: gcc-ipq8074: fix terminating of frequency table arrays
clk: qcom: gcc-ipq9574: fix terminating of frequency table arrays
clk: qcom: camcc-sc8280xp: fix terminating of frequency table arrays
clk: qcom: mmcc-apq8084: fix terminating of frequency table arrays
clk: qcom: mmcc-msm8974: fix terminating of frequency table arrays
George Shen (1):
drm/amd/display: Remove MPC rate control logic from DCN30 and above
Gergo Koteles (2):
ALSA: hda/tas2781: remove digital gain kcontrol
ALSA: hda/tas2781: add locks to kcontrols
Greg Kroah-Hartman (1):
Linux 6.8.3
Guenter Roeck (5):
parisc/unaligned: Rewrite 64-bit inline assembly of emulate_ldd()
parisc: Fix ip_fast_csum
parisc: Fix csum_ipv6_magic on 32-bit systems
parisc: Fix csum_ipv6_magic on 64-bit systems
parisc: Strip upper 32 bit of sum in csum_ipv6_magic for 64-bit builds
Gui-Dong Han (2):
media: xc4000: Fix atomicity violation in xc4000_get_frequency md/raid5: fix atomicity violation in raid5_cache_count
Guilherme G. Piccoli (1):
scsi: core: Fix unremoved procfs host directory regression
Hamza Mahfooz (1):
drm/amd/display: fix IPX enablement
Harald Freudenberger (1):
s390/zcrypt: fix reference counting on zcrypt card objects
Harry Wentland (1):
Revert "drm/amd/display: Fix sending VSC (+ colorimetry) packets for DP/eDP displays without PSR"
Hector Martin (2):
wifi: brcmfmac: cfg80211: Use WSEC to set SAE password
wifi: brcmfmac: Demote vendor-specific attach/detach messages to info
Heikki Krogerus (1):
usb: dwc3: pci: Drop duplicate ID
Heming Zhao (1):
md/md-bitmap: fix incorrect usage for sb_index
Herve Codina (1):
net: wan: framer: Add missing static inline qualifiers
Hidenori Kobayashi (1):
media: staging: ipu3-imgu: Set fields before media_entity_pads_init()
Huacai Chen (2):
LoongArch: Change __my_cpu_offset definition to avoid mis-optimization
LoongArch: Define the __io_aw() hook as mmiowb()
Hugo Villeneuve (1):
serial: max310x: fix NULL pointer dereference in I2C instantiation
Jameson Thies (1):
usb: typec: ucsi: Clean up UCSI_CABLE_PROP macros
Jan Kara (1):
fat: fix uninitialized field in nostale filehandles
Jani Nikula (9):
drm/probe-helper: warn about negative .get_modes() drm/panel: do not return negative error codes from drm_panel_get_modes() drm/exynos: do not return negative values from .get_modes() drm/imx/ipuv3: do not return negative values from .get_modes() drm/vc4: hdmi: do not return negative values from .get_modes() drm/bridge: add ->edid_read hook and drm_bridge_edid_read() drm/bridge: lt8912b: use drm_bridge_edid_read()
drm/bridge: lt8912b: clear the EDID property on failures drm/bridge: lt8912b: do not return negative values from .get_modes()
Janusz Krzysztofik (2):
drm/i915/hwmon: Fix locking inversion in sysfs getter drm/i915/vma: Fix UAF on destroy against retire race
Jason A. Donenfeld (3):
wireguard: netlink: check for dangling peer via is_dead instead of empty list
wireguard: netlink: access device through ctx instead of peer
wireguard: selftests: set RISCV_ISA_FALLBACK on riscv{32,64}
Jens Axboe (4):
io_uring/net: correctly handle multishot recvmsg retry setup io_uring/rw: return IOU_ISSUE_SKIP_COMPLETE for multishot retry io_uring/futex: always remove futex entry for cancel all io_uring/waitid: always remove waitid entry for cancel all
Jerome Brunet (1):
nvmem: meson-efuse: fix function pointer type mismatch
Jiawei Wang (2):
ASoC: amd: yc: Revert "Fix non-functional mic on Lenovo 21J2"
ASoC: amd: yc: Revert "add new YC platform variant (0x63) support"
Joakim Zhang (1):
remoteproc: virtio: Fix wdg cannot recovery remote processor
Jocelyn Falempe (1):
drm/vmwgfx: Create debugfs ttm_resource_manager entry only if needed
Johan Hovold (1):
PCI: qcom: Disable ASPM L0s for sc8280xp, sa8540p and sa8295p
Johannes Berg (6):
wifi: mac80211: track capability/opmode NSS separately
debugfs: fix wait/cancellation handling during remove
wifi: cfg80211: add a flag to disable wireless extensions
wifi: iwlwifi: mvm: disable MLO for the time being
wifi: iwlwifi: fw: don't always use FW dump trig
wifi: iwlwifi: mvm: handle debugfs names more carefully
Johannes Thumshirn (3):
btrfs: zoned: don't skip block groups with 100% zone unusable
btrfs: zoned: use zone aware sb location for scrub
btrfs: zoned: fix use-after-free in do_zone_finish()
Johannes Weiner (3):
mm: zswap: fix writeback shinker GFP_NOIO/GFP_NOFS recursion
mm: cachestat: fix two shmem bugs
drm/amdgpu: fix deadlock while reading mqd from debugfs
John David Anglin (1):
parisc: Avoid clobbering the C/B bits in the PSW with tophys and tovirt macros
John Ogness (1):
printk: Update @console_may_schedule in console_trylock_spinning()
John Sperbeck (1):
init: open /initrd.image with O_LARGEFILE
Jonas Gorski (1):
serial: core: only stop transmit when HW fifo is empty
Jonathon Hall (1):
drm/i915: Do not match JSL in ehl_combo_pll_div_frac_wa_needed()
Josef Bacik (1):
nfs: fix UAF in direct writes
Josip Pavic (1):
drm/amd/display: Allow dirty rects to be sent to dmub when abm is active
Josua Mayer (1):
hwmon: (amc6821) add of_match table
KONDO KAZUMA(近藤 和真) (1):
efi/libstub: fix efi_random_alloc() to allocate memory at alloc_min or higher address
Kevin Loughlin (1):
x86/sev: Skip ROM range scans and validation for SEV-SNP guests
Krishna Kurapati (1):
usb: typec: ucsi: Fix race between typec_switch and role_switch
Krishna chaitanya chundru (1):
arm64: dts: qcom: sc7280: Add additional MSI interrupts
Krzysztof Kozlowski (4):
arm64: dts: qcom: sm8450-hdk: correct AMIC4 and AMIC5 microphones
arm64: dts: qcom: sm8550-qrd: correct WCD9385 TX port mapping
arm64: dts: qcom: sm8550-mtp: correct WCD9385 TX port mapping
pinctrl: qcom: sm8650-lpass-lpi: correct Kconfig name
Kyle Tso (3):
usb: typec: tcpm: Correct port source pdo array in pd_set callback
usb: typec: tcpm: Update PD of Type-C port upon pd_set
usb: typec: Return size of buffer if pd_set operation succeeds
Laurent Pinchart (6):
media: mc: Add local pad to pipeline regardless of the link state
media: mc: Fix flags handling when creating pad links
media: mc: Add num_links flag to media_pad
media: mc: Rename pad variable to clarify intent
media: mc: Expand MUST_CONNECT flag to always require an enabled link
media: nxp: imx8-isi: Mark all crossbar sink pads as MUST_CONNECT
Leo Ma (1):
drm/amd/display: Fix noise issue on HDMI AV mute
Ley Foon Tan (1):
clocksource/drivers/timer-riscv: Clear timer interrupt on timer initialization
Li Lingfeng (1):
md: use RCU lock to protect traversal in md_spares_need_change()
Liming Sun (1):
sdhci-of-dwcmshc: disable PM runtime in dwcmshc_remove()
Lino Sanfilippo (1):
tpm,tpm_tis: Avoid warning splat at shutdown
Linus Torvalds (1):
Fix memory leak in posix_clock_open()
Luiz Augusto von Dentz (1):
Bluetooth: hci_sync: Fix not checking error on hci_cmd_sync_cancel_sync
Ma Jun (2):
drm/amdgpu/pm: Fix NULL pointer dereference when get power limit drm/amdgpu/pm: Check the validity of overdiver power limit
Manivannan Sadhasivam (1):
PCI: qcom: Enable BDF to SID translation properly
Marcel Ziswiler (1):
Bluetooth: btnxpuart: Fix btnxpuart_close
Marek Szyprowski (1):
cpufreq: dt: always allocate zeroed cpumask
Marek Vasut (1):
media: nxp: imx8-isi: Check whether crossbar pad is non-NULL before access
Mario Limonciello (1):
drm/amd/display: Use freesync when DRM_EDID_FEATURE_CONTINUOUS_FREQ found
Marios Makassikis (2):
ksmbd: replace generic_fillattr with vfs_getattr
ksmbd: retrieve number of blocks using vfs_getattr in set_file_allocation_info
Martin Blumenstingl (1):
clocksource/drivers/arm_global_timer: Fix maximum prescaler value
Masami Hiramatsu (Google) (1):
kprobes/x86: Use copy_from_kernel_nofault() to read from unsafe address
Matthew Auld (1):
drm/xe/query: fix gt_id bounds check
Matthew Wilcox (Oracle) (3):
bounds: support non-power-of-two CONFIG_NR_CPUS
ubifs: Set page uptodate in the correct place
btrfs: add set_folio_extent_mapped() helper
Maulik Shah (1):
PM: suspend: Set mem_sleep_current during kernel command line setup
Max Filippov (1):
exec: Fix NOMMU linux_binprm::exec in transfer_args_to_stack()
Maximilian Heyne (1):
ext4: fix corruption during on-line resize
Michael Ellerman (3):
powerpc/smp: Adjust nr_cpu_ids to cover all threads of a core powerpc/smp: Increase nr_cpu_ids to include the boot CPU powerpc/fsl: Fix mfpmr build errors with newer binutils
Michael Kelley (1):
PCI: hv: Fix ring buffer size calculation
Mickaël Salaün (1):
landlock: Warn once if a Landlock action is requested while disabled
Mikko Rapeli (2):
mmc: core: Initialize mmc_blk_ioc_data
mmc: core: Avoid negative index with array access
Miklos Szeredi (3):
fuse: replace remaining make_bad_inode() with fuse_make_bad()
fuse: fix root lookup with nonzero generation
fuse: don't unhash root
Mikulas Patocka (1):
dm snapshot: fix lockup in dm_exception_table_exit
Minas Harutyunyan (5):
usb: dwc2: host: Fix remote wakeup from hibernation
usb: dwc2: host: Fix hibernation flow
usb: dwc2: host: Fix ISOC flow in DDMA mode
usb: dwc2: gadget: Fix exiting from clock gating
usb: dwc2: gadget: LPM flow fix
Miquel Raynal (4):
mtd: rawnand: Fix and simplify again the continuous read derivations
mtd: rawnand: Add a helper for calculating a page index
mtd: rawnand: Ensure all continuous terms are always in sync
mtd: rawnand: Constrain even more when continuous reads are enabled
Muhammad Usama Anjum (2):
scsi: lpfc: Correct size for cmdwqe/rspwqe for memset()
scsi: lpfc: Correct size for wqe for memset()
Namjae Jeon (2):
ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16()
ksmbd: fix potencial out-of-bounds when buffer offset is invalid
Natanael Copa (1):
tools/resolve_btfids: fix build with musl libc
Nathan Chancellor (3):
powerpc: xor_vmx: Add '-mhard-float' to CFLAGS
kbuild: Move -Wenum-{compare-conditional,enum-conversion} into W=1
hexagon: vmlinux.lds.S: handle attributes section
Nicholas Kazlauskas (2):
drm/amd/display: Fix idle check for shared firmware state drm/amd/display: Add more checks for exiting idle in DC
Nick Morrow (1):
wifi: rtw88: Add missing VID/PIDs for 8811CU and 8821CU
Nicolin Chen (1):
iommu/dma: Force swiotlb_max_mapping_size on an untrusted device
Niklas Cassel (1):
PCI: dwc: endpoint: Fix advertised resizable BAR size
Oleksandr Tymoshenko (1):
efi: fix panic in kdump kernel
Oliver Neukum (1):
usb: cdc-wdm: close race between read and workqueue
Pablo Neira Ayuso (1):
netfilter: nf_tables: reject constant set with timeout
Paul Menzel (1):
PCI/DPC: Quirk PIO log size for Intel Raptor Lake Root Ports
Paul Moore (1):
lsm: handle the NULL buffer case in lsm_fill_user_ctx()
Pavel Begunkov (4):
io_uring: fix mshot read defer taskrun cqe posting
io_uring: fix io_queue_proc modifying req->flags
io_uring: fix mshot io-wq checks
io_uring: clean rings on NO_MMAP alloc fail
Pawan Gupta (1):
x86/bugs: Use fixed addressing for VERW operand
Peter Collingbourne (1):
serial: Lock console when calling into driver before registration
Philip Yang (1):
drm/amdgpu: amdgpu_ttm_gart_bind set gtt bound flag
Philipp Stanner (1):
pci_iounmap(): Fix MMIO mapping leak
Prashanth K (1):
usb: xhci: Add error handling in xhci_map_urb_for_dma
Qiang Zhang (1):
memtest: use {READ,WRITE}_ONCE in memory scanning
Qingliang Li (1):
PM: sleep: wakeirq: fix wake irq warning in system suspend
Qu Wenruo (2):
btrfs: qgroup: always free reserved space for extent records
btrfs: qgroup: validate btrfs_qgroup_inherit parameter
Quentin Schulz (2):
iio: adc: rockchip_saradc: fix bitmask for channels on SARADCv2
iio: adc: rockchip_saradc: use mask for write_enable bitfield
Quinn Tran (6):
scsi: qla2xxx: Prevent command send on chip reset
scsi: qla2xxx: Fix N2N stuck connection
scsi: qla2xxx: Split FCE|EFT trace control
scsi: qla2xxx: NVME|FCP prefer flag not being honored
scsi: qla2xxx: Fix command flush on cable pull
scsi: qla2xxx: Delay I/O Abort on PCI error
Rafael J. Wysocki (2):
PCI/PM: Drain runtime-idle callbacks before driver removal
genirq: Introduce IRQF_COND_ONESHOT and use it in pinctrl-amd
Randy Dunlap (2):
sparc64: NMI watchdog: fix return value of __setup handler
sparc: vDSO: fix return value of __setup handler
Richard Weinberger (1):
ubi: Check for too small LEB size in VTBL code
Roberto Sassu (2):
smack: Set SMACK64TRANSMUTE only for dirs in smack_inode_setxattr()
smack: Handle SMACK64TRANSMUTE in smack_inode_setsecurity()
Rodrigo Siqueira (1):
drm/amd/display: Return the correct HDCP error code
Roger Quadros (2):
usb: dwc3-am62: fix module unload/reload behavior
usb: dwc3-am62: Disable wakeup at remove
Romain Naour (1):
mmc: sdhci-omap: re-tuning is needed after a pm transition to support emmc HS200 mode
Roman Li (1):
drm/amd/display: Fix bounds check for dcn35 DcfClocks
Ryan Roberts (1):
mm: swap: fix race between free_swap_and_cache() and swapoff()
Ryusuke Konishi (2):
nilfs2: fix failure to detect DAT corruption in btree and direct mappings
nilfs2: prevent kernel bug at submit_bh_wbc()
Sam Ravnborg (1):
sparc32: Fix parport build with sparc32
Samuel Thibault (1):
speakup: Fix 8bit characters from direct synth
Sandipan Das (1):
perf/x86/amd/core: Update and fix stalled-cycles-* events for Zen 2 and later
Saurav Kashyap (3):
scsi: qla2xxx: Fix double free of the ha->vp_map pointer
scsi: qla2xxx: Fix double free of fcport
scsi: qla2xxx: Change debug message during driver unload
Sean Anderson (2):
soc: fsl: qbman: Always disable interrupts when taking cgr_lock
soc: fsl: qbman: Use raw spinlock for cgr_lock
Sean Christopherson (1):
KVM: Always flush async #PF workqueue when vCPU is being destroyed
SeongJae Park (1):
selftests/mqueue: Set timeout to 180 seconds
Shivnandan Kumar (1):
cpufreq: Limit resolving a frequency to policy min/max
Shyam Prasad N (2):
cifs: make sure server interfaces are requested only for SMB3+
cifs: reduce warning log level for server not advertising interfaces
Sohaib Nadeem (1):
drm/amd/display: Override min required DCFCLK in dml1_validate
Song Liu (1):
Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
Srinivas Pandruvada (1):
platform/x86/intel/tpmi: Change vsec offset to u64
Srinivasan Shanmugam (1):
drm/amdgpu/display: Address kdoc for 'is_psr_su' in 'fill_dc_dirty_rects'
Stanislaw Gruszka (1):
PCI/AER: Block runtime suspend when handling errors
Steve French (1):
cifs: allow changing password during remount
Steven Rostedt (Google) (8):
ring-buffer: Do not set shortest_full when full target is hit
ring-buffer: Fix full_waiters_pending in poll
ring-buffer: Use wait_event_interruptible() in ring_buffer_wait() tracing/ring-buffer: Fix wait_on_pipe() race
NFSD: Fix nfsd_clid_class use of __string_len() macro drm/i915: Add missing ; to __assign_str() macros in tracepoint code
net: hns3: tracing: fix hclgevf trace event strings
ring-buffer: Make wake once of ring_buffer_wait() more robust
Sunmin Jeong (2):
f2fs: mark inode dirty for FI_ATOMIC_COMMITTED flag
f2fs: truncate page cache before clearing flags when aborting atomic write
Swapnil Patel (1):
drm/amd/display: Change default size for dummy plane in DML2
Tavian Barnes (1):
btrfs: fix race in read_extent_buffer_pages()
Thinh Nguyen (1):
usb: dwc3: Properly set system wakeup
Thomas Gleixner (1):
x86/mpparse: Register APIC address only once
Thomas Zimmermann (1):
fbdev: Select I/O-memory framebuffer ops for SBus
Tom Zanussi (1):
crypto: iaa - Fix nr_cpus < nr_iaa case
Tony Battersby (1):
block: Fix page refcounts for unaligned buffers in __bio_release_pages()
Tor Vic (1):
cpufreq: amd-pstate: Fix min_perf assignment in amd_pstate_adjust_perf()
Toru Katagiri (1):
USB: serial: cp210x: add pid/vid for TDK NC0110013M and MM0110113M
Ville Syrjälä (9):
drm/i915: Replace a memset() with zero initialization
drm/i915: Try to preserve the current shared_dpll for fastset on type-c ports drm/i915: Include the PLL name in the debug messages
drm/i915: Suppress old PLL pipe_mask checks for MG/TC/TBT PLLs drm/i915/bios: Tolerate devdata==NULL in intel_bios_encoder_supports_dp_dual_mode() drm/i915/vrr: Generate VRR "safe window" for DSB
drm/i915/dsi: Go back to the previous INIT_OTP/DISPLAY_ON order, mostly drm/i915/dsb: Fix DSB vblank waits when using VRR
drm/i915: Pre-populate the cursor physical dma address
Vitaly Chikunov (1):
selftests/mm: Fix build with _FORTIFY_SOURCE
Vitaly Prosyak (2):
drm/amdgpu: fix use-after-free bug drm/sched: fix null-ptr-deref in init entity
Wayne Chang (2):
phy: tegra: xusb: Add API to retrieve the port number of phy
usb: gadget: tegra-xudc: Fix USB3 PHY retrieval logic
Weitao Wang (1):
USB: UAS: return ENODEV when submit urbs fail with device not attached
Wenjing Liu (4):
drm/amd/display: Update odm when ODM combine is changed on an otg master pipe with no plane drm/amd/display: Lock all enabled otg pipes even with no planes drm/amd/display: Implement wait_for_odm_update_pending_complete drm/amd/display: Revert Remove pixle rate limit for subvp
Will Deacon (3):
swiotlb: Fix double-allocation of slots due to broken alignment handling
swiotlb: Honour dma_alloc_coherent() alignment in swiotlb_alloc()
swiotlb: Fix alignment checks when both allocation and DMA masks are present
Wolfram Sang (1):
mmc: tmio: avoid concurrent runs of mmc_request_done()
Xi Liu (1):
drm/amd/display: Set DCN351 BB and IP the same as DCN35
Xingui Yang (2):
scsi: libsas: Add a helper sas_get_sas_addr_and_dev_type()
scsi: libsas: Fix disk not being scanned in after being removed
Xu Yang (1):
usb: typec: tcpm: fix double-free issue in tcpm_port_unregister_pd()
Ye Zhang (1):
thermal: devfreq_cooling: Fix perf state when calculate dfc res_util
Yongqiang Liu (1):
ARM: 9359/1: flush: check if the folio is reserved for no-mapping addresses
Yongzhi Liu (1):
usb: misc: ljca: Fix double free in error handling path
Yu Kuai (9):
md: don't clear MD_RECOVERY_FROZEN for new dm-raid until resume
md: export helpers to stop sync_thread
md: export helper md_is_rdwr()
md: add a new helper reshape_interrupted()
dm-raid: really frozen sync_thread during suspend
md/dm-raid: don't call md_reap_sync_thread() directly
dm-raid: add a new helper prepare_suspend() in md_personality dm-raid456, md/raid456: fix a deadlock for dm-raid456 while io concurrent with reshape
dm-raid: fix lockdep waring in "pers->hot_add_disk"
Yuli Wang (1):
LoongArch/crypto: Clean up useless assignment operations
Zack Rusin (4):
drm/vmwgfx: Unmap the surface before resetting it on a plane state drm/vmwgfx: Fix possible null pointer derefence with invalid contexts drm/vmwgfx: Fix the lifetime of the bo cursor memory drm/ttm: Make sure the mapped tt pages are decrypted when needed
Zev Weiss (2):
prctl: generalize PR_SET_MDWE support check to be per-arch
ARM: prctl: reject PR_SET_MDWE on pre-ARMv6
Zhang Rui (5):
thermal/intel: Fix intel_tcc_get_temp() to support negative CPU temperature
powercap: intel_rapl: Fix a NULL pointer dereference
powercap: intel_rapl: Fix locking in TPMI RAPL
powercap: intel_rapl_tpmi: Fix a register bug
powercap: intel_rapl_tpmi: Fix System Domain probing
Zhang Yi (1):
ubi: correct the calculation of fastmap size
Zheng Wang (1):
wifi: brcmfmac: Fix use-after-free bug in brcmf_cfg80211_detach
Zhihao Cheng (1):
ubifs: ubifs_symlink: Fix memleak of inode->i_link in error path
Zoltan HERPAI (1):
pwm: img: fix pwm clock lookup
yuan linyu (1):
usb: udc: remove warning when queue disabled ep
Greg Kroah-Hartman
maintainerDocumentation/Makefile +3 -1
@@ -111,7 +111,9 @@ $(YNL_INDEX): $(YNL_RST_FILES) $(YNL_RST_DIR)/%.rst: $(YNL_YAML_DIR)/%.yaml $(YNL_TOOL) $(Q)$(YNL_TOOL) -i $< -o $@ -htmldocs: $(YNL_INDEX) +htmldocs texinfodocs latexdocs epubdocs xmldocs: $(YNL_INDEX) + +htmldocs: @$(srctree)/scripts/sphinx-pre-install --version-check @+$(foreach var,$(SPHINXDIRS),$(call loop_cmd,sphinx,html,$(var),,$(var)))
Documentation/admin-guide/kernel-parameters.txt +1 -3
@@ -3340,9 +3340,7 @@ mem_encrypt= [X86-64] AMD Secure Memory Encryption (SME) control Valid arguments: on, off - Default (depends on kernel configuration option): - on (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y) - off (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=n) + Default: off mem_encrypt=on: Activate SME mem_encrypt=off: Do not activate SME
Documentation/arch/x86/amd-memory-encryption.rst +8 -8
@@ -87,14 +87,14 @@ The state of SME in the Linux kernel can be documented as follows: kernel is non-zero). SME can also be enabled and activated in the BIOS. If SME is enabled and -activated in the BIOS, then all memory accesses will be encrypted and it will -not be necessary to activate the Linux memory encryption support. If the BIOS -merely enables SME (sets bit 23 of the MSR_AMD64_SYSCFG), then Linux can activate -memory encryption by default (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT=y) or -by supplying mem_encrypt=on on the kernel command line. However, if BIOS does -not enable SME, then Linux will not be able to activate memory encryption, even -if configured to do so by default or the mem_encrypt=on command line parameter -is specified. +activated in the BIOS, then all memory accesses will be encrypted and it +will not be necessary to activate the Linux memory encryption support. + +If the BIOS merely enables SME (sets bit 23 of the MSR_AMD64_SYSCFG), +then memory encryption can be enabled by supplying mem_encrypt=on on the +kernel command line. However, if BIOS does not enable SME, then Linux +will not be able to activate memory encryption, even if configured to do +so by default or the mem_encrypt=on command line parameter is specified. Secure Nested Paging (SNP) ==========================
Documentation/conf.py +3 -3
@@ -346,9 +346,9 @@ sys.stderr.write("Using %s theme\n" % html_theme) html_static_path = ['sphinx-static'] # If true, Docutils "smart quotes" will be used to convert quotes and dashes -# to typographically correct entities. This will convert "--" to "—", -# which is not always what we want, so disable it. -smartquotes = False +# to typographically correct entities. However, conversion of "--" to "—" +# is not always what we want, so enable only quotes. +smartquotes_action = 'q' # Custom sidebar templates, maps document names to template names. # Note that the RTD theme ignores this
Documentation/userspace-api/media/mediactl/media-types.rst +5 -6
@@ -375,12 +375,11 @@ Types and flags used to represent the media graph elements are origins of links. * - ``MEDIA_PAD_FL_MUST_CONNECT`` - - If this flag is set and the pad is linked to any other pad, then - at least one of those links must be enabled for the entity to be - able to stream. There could be temporary reasons (e.g. device - configuration dependent) for the pad to need enabled links even - when this flag isn't set; the absence of the flag doesn't imply - there is none. + - If this flag is set, then for this pad to be able to stream, it must + be connected by at least one enabled link. There could be temporary + reasons (e.g. device configuration dependent) for the pad to need + enabled links even when this flag isn't set; the absence of the flag + doesn't imply there is none. One and only one of ``MEDIA_PAD_FL_SINK`` and ``MEDIA_PAD_FL_SOURCE``
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 8 -SUBLEVEL = 2 +SUBLEVEL = 3 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm/Kconfig +2 -2
@@ -503,8 +503,8 @@ source "arch/arm/mm/Kconfig" config IWMMXT bool "Enable iWMMXt support" - depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK || CPU_PJ4 || CPU_PJ4B - default y if PXA27x || PXA3xx || ARCH_MMP || CPU_PJ4 || CPU_PJ4B + depends on CPU_XSCALE || CPU_XSC3 || CPU_MOHAWK + default y if PXA27x || PXA3xx || ARCH_MMP help Enable support for iWMMXt context switching at run time if running on a CPU that supports it.
arch/arm/boot/dts/marvell/mmp2-brownstone.dts +1 -1
@@ -28,7 +28,7 @@ &uart3 { &twsi1 { status = "okay"; pmic: max8925@3c { - compatible = "maxium,max8925"; + compatible = "maxim,max8925"; reg = <0x3c>; interrupts = <1>; interrupt-parent = <&intcmux4>;
arch/arm/include/asm/mman.h new file +14 -0
@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __ASM_MMAN_H__ +#define __ASM_MMAN_H__ + +#include <asm/system_info.h> +#include <uapi/asm/mman.h> + +static inline bool arch_memory_deny_write_exec_supported (void ) +{ +return cpu_architecture () >= CPU_ARCH_ARMv6; +} +#define arch_memory_deny_write_exec_supported arch_memory_deny_write_exec_supported + +#endif /* __ASM_MMAN_H__ */
arch/arm/kernel/Makefile +0 -2
@@ -75,8 +75,6 @@ obj-$(CONFIG_HAVE_HW_BREAKPOINT) += hw_breakpoint.o obj-$(CONFIG_CPU_XSCALE) += xscale-cp0.o obj-$(CONFIG_CPU_XSC3) += xscale-cp0.o obj-$(CONFIG_CPU_MOHAWK) += xscale-cp0.o -obj-$(CONFIG_CPU_PJ4) += pj4-cp0.o -obj-$(CONFIG_CPU_PJ4B) += pj4-cp0.o obj-$(CONFIG_IWMMXT) += iwmmxt.o obj-$(CONFIG_PERF_EVENTS) += perf_regs.o perf_callchain.o obj-$(CONFIG_HW_PERF_EVENTS) += perf_event_xscale.o perf_event_v6.o \
arch/arm/kernel/iwmmxt.S +13 -38
91 lines not on this page · raw message
arch/arm/kernel/pj4-cp0.c deleted +0 -135
135 lines not on this page · raw message
arch/arm/mm/flush.c +3 -0
@@ -296,6 +296,9 @@ void __sync_icache_dcache(pte_t pteval)return ; folio =page_folio (pfn_to_page (pfn)); +if (folio_test_reserved (folio)) +return ; +if (cache_is_vipt_aliasing ()) mapping =folio_flush_mapping (folio);else
arch/arm64/boot/dts/qcom/sc7280.dtsi +10 -2
@@ -2178,8 +2178,16 @@ pcie1: pcie@1c08000 { ranges = <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>, <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>; - interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>; - interrupt-names = "msi"; + interrupts = <GIC_SPI 307 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 308 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 309 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 313 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 374 IRQ_TYPE_LEVEL_HIGH>, + <GIC_SPI 375 IRQ_TYPE_LEVEL_HIGH>; + interrupt-names = "msi0", "msi1", "msi2", "msi3", + "msi4", "msi5", "msi6", "msi7"; #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 0x7>; interrupt-map = <0 0 0 1 &intc 0 0 0 434 IRQ_TYPE_LEVEL_HIGH>,
arch/arm64/boot/dts/qcom/sm8450-hdk.dts +2 -2
@@ -938,8 +938,8 @@ &sound { "TX DMIC3", "MIC BIAS1", "TX SWR_INPUT0", "ADC1_OUTPUT", "TX SWR_INPUT1", "ADC2_OUTPUT", - "TX SWR_INPUT2", "ADC3_OUTPUT", - "TX SWR_INPUT3", "ADC4_OUTPUT"; + "TX SWR_INPUT0", "ADC3_OUTPUT", + "TX SWR_INPUT1", "ADC4_OUTPUT"; wcd-playback-dai-link { link-name = "WCD Playback";
arch/arm64/boot/dts/qcom/sm8550-mtp.dts +1 -1
@@ -874,7 +874,7 @@ &swr2 { wcd_tx: codec@0,3 { compatible = "sdw20217010d00"; reg = <0 3>; - qcom,tx-port-mapping = <1 1 2 3>; + qcom,tx-port-mapping = <2 2 3 4>; }; };
arch/arm64/boot/dts/qcom/sm8550-qrd.dts +1 -1
@@ -978,7 +978,7 @@ &swr2 { wcd_tx: codec@0,3 { compatible = "sdw20217010d00"; reg = <0 3>; - qcom,tx-port-mapping = <1 1 2 3>; + qcom,tx-port-mapping = <2 2 3 4>; }; };
arch/hexagon/kernel/vmlinux.lds.S +1 -0
@@ -63,6 +63,7 @@ SECTIONS STABS_DEBUG DWARF_DEBUG ELF_DETAILS + .hexagon.attributes 0 : { *(.hexagon.attributes) } DISCARDS }
arch/loongarch/crypto/crc32-loongarch.c +0 -2
@@ -44,7 +44,6 @@ static u32 crc32_loongarch_hw(u32 crc_, const u8 *p, unsigned int len)CRC32 (crc, value, w); p +=sizeof (u32); - len -=sizeof (u32); }if (len &sizeof (u16)) {
@@ -80,7 +79,6 @@ static u32 crc32c_loongarch_hw(u32 crc_, const u8 *p, unsigned int len)CRC32C (crc, value, w); p +=sizeof (u32); - len -=sizeof (u32); }if (len &sizeof (u16)) {
arch/loongarch/include/asm/Kbuild +1 -0
@@ -4,6 +4,7 @@ generic-y += mcs_spinlock.h generic-y += parport.h generic-y += early_ioremap.h generic-y += qrwlock.h +generic-y += qspinlock.h generic-y += rwsem.h generic-y += segment.h generic-y += user.h
arch/loongarch/include/asm/io.h +2 -0
@@ -71,6 +71,8 @@ extern void __memcpy_fromio(void *to, const volatile void __iomem *from, size_t#define memcpy_fromio (a, c, l) __memcpy_fromio((a), (c), (l))#define memcpy_toio (c, a, l) __memcpy_toio((c), (a), (l)) +#define __io_aw () mmiowb() +#include <asm-generic/io.h> #define ARCH_HAS_VALID_PHYS_ADDR_RANGE
arch/loongarch/include/asm/percpu.h +6 -1
@@ -29,7 +29,12 @@ static inline void set_my_cpu_offset(unsigned long off) __my_cpu_offset = off;csr_write64 (off,PERCPU_BASE_KS ); } -#define __my_cpu_offset __my_cpu_offset + +#define __my_cpu_offset \ +({ \ + __asm__ __volatile__("":"+r"(__my_cpu_offset)); \ + __my_cpu_offset; \ +})#define PERCPU_OP (op, asm_op, c_op) \ static __always_inline unsigned long __percpu_##op(void *ptr, \
arch/loongarch/include/asm/qspinlock.h deleted +0 -18
@@ -1,18 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 */ -#ifndef _ASM_QSPINLOCK_H -#define _ASM_QSPINLOCK_H - -#include <asm-generic/qspinlock_types.h> - -#define queued_spin_unlock queued_spin_unlock - -static inline void queued_spin_unlock (struct qspinlock *lock) -{ -compiletime_assert_atomic_type (lock->locked); -c_sync (); -WRITE_ONCE (lock->locked,0 ); -} - -#include <asm-generic/qspinlock.h> - -#endif /* _ASM_QSPINLOCK_H */
arch/parisc/include/asm/assembly.h +10 -8
@@ -97,26 +97,28 @@* version takes two arguments: a src and destination register. * However, the source and destination registers can not be * the same register. +* +* We use add,l to avoid clobbering the C/B bits in the PSW. */ .macro tophys grvirt, grphys - ldil L%(__PAGE_OFFSET), \grphys - sub \grvirt, \grphys, \grphys + ldil L%(-__PAGE_OFFSET), \grphys + addl \grvirt, \grphys, \grphys .endm - + .macro tovirt grphys, grvirt ldil L%(__PAGE_OFFSET), \grvirt - add \grphys, \grvirt, \grvirt + addl \grphys, \grvirt, \grvirt .endm .macro tophys_r1 gr - ldil L%(__PAGE_OFFSET), %r1 - sub \gr, %r1, \gr + ldil L%(-__PAGE_OFFSET), %r1 + addl \gr, %r1, \gr .endm - + .macro tovirt_r1 gr ldil L%(__PAGE_OFFSET), %r1 - add \gr, %r1, \gr + addl \gr, %r1, \gr .endm .macro delay value
arch/parisc/include/asm/checksum.h +6 -4
@@ -40,7 +40,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)" addc %0, %5, %0\n" " addc %0, %3, %0\n" "1: ldws,ma 4(%1), %3\n" -" addib,< 0, %2, 1b\n" +" addib,> -1, %2, 1b\n" " addc %0, %3, %0\n" "\n" " extru %0, 31, 16, %4\n"
@@ -126,6 +126,7 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,** Try to keep 4 registers with "live" values ahead of the ALU. */ +" depdi 0, 31, 32, %0\n" /* clear upper half of incoming checksum */ " ldd,ma 8(%1), %4\n" /* get 1st saddr word */ " ldd,ma 8(%2), %5\n" /* get 1st daddr word */ " add %4, %0, %0\n"
@@ -137,8 +138,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr," add,dc %3, %0, %0\n" /* fold in proto+len | carry bit */ " extrd,u %0, 31, 32, %4\n" /* copy upper half down */ " depdi 0, 31, 32, %0\n" /* clear upper half */ -" add %4, %0, %0\n" /* fold into 32-bits */ -" addc 0, %0, %0\n" /* add carry */ +" add,dc %4, %0, %0\n" /* fold into 32-bits, plus carry */ +" addc 0, %0, %0\n" /* add final carry */ #else
@@ -163,7 +164,8 @@ static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr," ldw,ma 4(%2), %7\n" /* 4th daddr */ " addc %6, %0, %0\n" " addc %7, %0, %0\n" -" addc %3, %0, %0\n" /* fold in proto+len, catch carry */ +" addc %3, %0, %0\n" /* fold in proto+len */ +" addc 0, %0, %0\n" /* add carry */ #endif : "=r" (sum), "=r" (saddr), "=r" (daddr), "=r" (len),
arch/parisc/include/asm/mman.h new file +14 -0
@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __ASM_MMAN_H__ +#define __ASM_MMAN_H__ + +#include <uapi/asm/mman.h> + +/* PARISC cannot allow mdwe as it needs writable stacks */ +static inline bool arch_memory_deny_write_exec_supported (void ) +{ +return false; +} +#define arch_memory_deny_write_exec_supported arch_memory_deny_write_exec_supported + +#endif /* __ASM_MMAN_H__ */
arch/parisc/kernel/unaligned.c +12 -15
@@ -169,6 +169,7 @@ static int emulate_ldw(struct pt_regs *regs, int toreg, int flop)static int emulate_ldd (struct pt_regs *regs,int toreg,int flop) {unsigned long saddr = regs->ior; +unsigned long shift, temp1;__u64 val =0 ;ASM_EXCEPTIONTABLE_VAR (ret);
@@ -180,25 +181,22 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop)#ifdef CONFIG_64BIT __asm__ __volatile__ ( -" depd,z %3,60,3,%%r19\n" /* r19=(ofs&7)*8 */ -" mtsp %4, %%sr1\n" -" depd %%r0,63,3,%3\n" -"1: ldd 0(%%sr1,%3),%0\n" -"2: ldd 8(%%sr1,%3),%%r20\n" -" subi 64,%%r19,%%r19\n" -" mtsar %%r19\n" -" shrpd %0,%%r20,%%sar,%0\n" +" depd,z %2,60,3,%3\n" /* shift=(ofs&7)*8 */ +" mtsp %5, %%sr1\n" +" depd %%r0,63,3,%2\n" +"1: ldd 0(%%sr1,%2),%0\n" +"2: ldd 8(%%sr1,%2),%4\n" +" subi 64,%3,%3\n" +" mtsar %3\n" +" shrpd %0,%4,%%sar,%0\n" "3: \n" ASM_EXCEPTIONTABLE_ENTRY_EFAULT(1b, 3b, "%1") ASM_EXCEPTIONTABLE_ENTRY_EFAULT(2b, 3b, "%1") - : "=r" (val), "+r" (ret) - : "0" (val), "r" (saddr), "r" (regs->isr) - : "r19", "r20" ); + : "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1) + : "r" (regs->isr) );#else - { -unsigned long shift, temp1; __asm__ __volatile__ ( -" zdep %2,29,2,%3\n" /* r19=(ofs&3)*8 */ +" zdep %2,29,2,%3\n" /* shift=(ofs&3)*8 */ " mtsp %5, %%sr1\n" " dep %%r0,31,2,%2\n" "1: ldw 0(%%sr1,%2),%0\n"
@@ -214,7 +212,6 @@ static int emulate_ldd(struct pt_regs *regs, int toreg, int flop) ASM_EXCEPTIONTABLE_ENTRY_EFAULT(3b, 4b, "%1") : "+r" (val), "+r" (ret), "+r" (saddr), "=&r" (shift), "=&r" (temp1) : "r" (regs->isr) ); - }#endif DPRINTF ("val = 0x%llx\n" , val);
arch/powerpc/include/asm/reg_fsl_emb.h +9 -2
@@ -12,9 +12,16 @@#ifndef __ASSEMBLY__/* Performance Monitor Registers */ #define mfpmr (rn) ({unsigned int rval; \ - asm volatile("mfpmr %0," __stringify(rn) \ + asm volatile(".machine push; " \ + ".machine e300; " \ + "mfpmr %0," __stringify(rn) ";" \ + ".machine pop; " \ : "=r" (rval)); rval;}) -#define mtpmr (rn, v) asm volatile("mtpmr " __stringify(rn) ",%0" : : "r" (v)) +#define mtpmr (rn, v) asm volatile(".machine push; " \ + ".machine e300; " \ + "mtpmr " __stringify(rn) ",%0; " \ + ".machine pop; " \ + : : "r" (v))#endif /* __ASSEMBLY__ */ /* Freescale Book E Performance Monitor APU Registers */
arch/powerpc/kernel/prom.c +12 -0
@@ -375,6 +375,18 @@ static int __init early_init_dt_scan_cpus(unsigned long node,if (IS_ENABLED (CONFIG_PPC64 )) boot_cpu_hwid =be32_to_cpu (intserv[found_thread]); +if (nr_cpu_ids % nthreads !=0 ) { +set_nr_cpu_ids (ALIGN (nr_cpu_ids, nthreads)); +pr_warn ("nr_cpu_ids was not a multiple of threads_per_core, adjusted to %d\n" , + nr_cpu_ids); + } + +if (boot_cpuid >= nr_cpu_ids) { +set_nr_cpu_ids (min (CONFIG_NR_CPUS ,ALIGN (boot_cpuid +1 , nthreads))); +pr_warn ("Boot CPU %d >= nr_cpu_ids, adjusted nr_cpu_ids to %d\n" , + boot_cpuid, nr_cpu_ids); + } +/* * PAPR defines "logical" PVR values for cpus that * meet various levels of the architecture:
arch/powerpc/lib/Makefile +1 -1
@@ -76,7 +76,7 @@ obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o obj-$(CONFIG_FTR_FIXUP_SELFTEST) += feature-fixups-test.o obj-$(CONFIG_ALTIVEC) += xor_vmx.o xor_vmx_glue.o -CFLAGS_xor_vmx.o += -maltivec $(call cc-option,-mabi=altivec) +CFLAGS_xor_vmx.o += -mhard-float -maltivec $(call cc-option,-mabi=altivec) # Enable <altivec.h> CFLAGS_xor_vmx.o += -isystem $(shell $(CC) -print-file-name=include)
arch/sparc/include/asm/parport.h +7 -252
263 lines not on this page · raw message
arch/sparc/include/asm/parport_64.h new file +256 -0
256 lines not on this page · raw message
arch/sparc/kernel/nmi.c +1 -1
@@ -279,7 +279,7 @@ static int __init setup_nmi_watchdog(char *str)if (!strncmp (str,"panic" ,5 )) panic_on_timeout =1 ; -return 0 ; +return 1 ; }__setup ("nmi_watchdog=" , setup_nmi_watchdog);
arch/sparc/vdso/vma.c +3 -4
@@ -449,9 +449,8 @@ static __init int vdso_setup(char *s)unsigned long val; err =kstrtoul (s,10 , &val); -if (err) -return err; - vdso_enabled = val; -return 0 ; +if (!err) + vdso_enabled = val; +return 1 ; }__setup ("vdso=" , vdso_setup);
arch/x86/Kconfig +0 -13
@@ -1539,19 +1539,6 @@ config AMD_MEM_ENCRYPT This requires an AMD processor that supports Secure Memory Encryption (SME). -config AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT - bool "Activate AMD Secure Memory Encryption (SME) by default" - depends on AMD_MEM_ENCRYPT - help - Say yes to have system memory encrypted by default if running on - an AMD processor that supports Secure Memory Encryption (SME). - - If set to Y, then the encryption of system memory can be - deactivated with the mem_encrypt=off command line option. - - If set to N, then the encryption of system memory can be - activated with the mem_encrypt=on command line option. - # Common NUMA Features config NUMA bool "NUMA Memory Allocation and Scheduler Support"
arch/x86/boot/compressed/efi_mixed.S +24 -5
@@ -15,10 +15,12 @@ */ #include <linux/linkage.h> +#include <asm/asm-offsets.h> #include <asm/msr.h> #include <asm/page_types.h> #include <asm/processor-flags.h> #include <asm/segment.h> +#include <asm/setup.h> .code64 .text
@@ -49,6 +51,11 @@ SYM_FUNC_START(startup_64_mixed_mode) lea efi32_boot_args(%rip), %rdx mov 0(%rdx), %edi mov 4(%rdx), %esi + + /* Switch to the firmware's stack */ + movl efi32_boot_sp(%rip), %esp + andl $~7, %esp + #ifdef CONFIG_EFI_HANDOVER_PROTOCOL mov 8(%rdx), %edx // saved bootparams pointer test %edx, %edx
@@ -144,6 +151,7 @@ SYM_FUNC_END(__efi64_thunk) SYM_FUNC_START(efi32_stub_entry) call 1f 1: popl %ecx + leal (efi32_boot_args - 1b)(%ecx), %ebx /* Clear BSS */ xorl %eax, %eax
@@ -158,6 +166,7 @@ SYM_FUNC_START(efi32_stub_entry) popl %ecx popl %edx popl %esi + movl %esi, 8(%ebx) jmp efi32_entry SYM_FUNC_END(efi32_stub_entry) #endif
@@ -234,8 +243,6 @@ SYM_FUNC_END(efi_enter32) * * Arguments: %ecx image handle * %edx EFI system table pointer - * %esi struct bootparams pointer (or NULL when not using - * the EFI handover protocol) * * Since this is the point of no return for ordinary execution, no registers * are considered live except for the function parameters. [Note that the EFI
@@ -254,13 +261,25 @@ SYM_FUNC_START_LOCAL(efi32_entry) /* Store firmware IDT descriptor */ sidtl (efi32_boot_idt - 1b)(%ebx) + /* Store firmware stack pointer */ + movl %esp, (efi32_boot_sp - 1b)(%ebx) + /* Store boot arguments */ leal (efi32_boot_args - 1b)(%ebx), %ebx movl %ecx, 0(%ebx) movl %edx, 4(%ebx) - movl %esi, 8(%ebx) movb $0x0, 12(%ebx) // efi_is64 + /* + * Allocate some memory for a temporary struct boot_params, which only + * needs the minimal pieces that startup_32() relies on. + */ + subl $PARAM_SIZE, %esp + movl %esp, %esi + movl $PAGE_SIZE, BP_kernel_alignment(%esi) + movl $_end - 1b, BP_init_size(%esi) + subl $startup_32 - 1b, BP_init_size(%esi) + /* Disable paging */ movl %cr0, %eax btrl $X86_CR0_PG_BIT, %eax
@@ -286,8 +305,7 @@ SYM_FUNC_START(efi32_pe_entry) movl 8(%ebp), %ecx // image_handle movl 12(%ebp), %edx // sys_table - xorl %esi, %esi - jmp efi32_entry // pass %ecx, %edx, %esi + jmp efi32_entry // pass %ecx, %edx // no other registers remain live 2: popl %edi // restore callee-save registers
@@ -318,5 +336,6 @@ SYM_DATA_END(efi32_boot_idt) SYM_DATA_LOCAL(efi32_boot_cs, .word 0) SYM_DATA_LOCAL(efi32_boot_ds, .word 0) +SYM_DATA_LOCAL(efi32_boot_sp, .long 0) SYM_DATA_LOCAL(efi32_boot_args, .long 0, 0, 0) SYM_DATA(efi_is64, .byte 1)
arch/x86/coco/core.c +1 -6
@@ -14,7 +14,7 @@#include <asm/processor.h> enum cc_vendor cc_vendor__ro_after_init =CC_VENDOR_NONE ; -static u64 cc_mask__ro_after_init ; +u64 cc_mask__ro_after_init ; static bool noinstr intel_cc_platform_has(enum cc_attr attr) {
@@ -148,8 +148,3 @@ u64 cc_mkdec(u64 val) } }EXPORT_SYMBOL_GPL (cc_mkdec); - -__init void cc_set_mask (u64 mask) -{ - cc_mask = mask; -}
arch/x86/events/amd/core.c +17 -3
@@ -250,7 +250,7 @@ static const u64 amd_perfmon_event_map[PERF_COUNT_HW_MAX] =/* * AMD Performance Monitor Family 17h and later: */ -static const u64 amd_f17h_perfmon_event_map[PERF_COUNT_HW_MAX ] = +static const u64 amd_zen1_perfmon_event_map[PERF_COUNT_HW_MAX ] = { [PERF_COUNT_HW_CPU_CYCLES ] =0x0076 , [PERF_COUNT_HW_INSTRUCTIONS ] =0x00c0 ,
@@ -262,10 +262,24 @@ static const u64 amd_f17h_perfmon_event_map[PERF_COUNT_HW_MAX] = [PERF_COUNT_HW_STALLED_CYCLES_BACKEND] = 0x0187, }; +static const u64 amd_zen2_perfmon_event_map[PERF_COUNT_HW_MAX ] = +{ + [PERF_COUNT_HW_CPU_CYCLES ] =0x0076 , + [PERF_COUNT_HW_INSTRUCTIONS ] =0x00c0 , + [PERF_COUNT_HW_CACHE_REFERENCES ] =0xff60 , + [PERF_COUNT_HW_CACHE_MISSES ] =0x0964 , + [PERF_COUNT_HW_BRANCH_INSTRUCTIONS ] =0x00c2 , + [PERF_COUNT_HW_BRANCH_MISSES ] =0x00c3 , + [PERF_COUNT_HW_STALLED_CYCLES_FRONTEND ] =0x00a9 , +}; +static u64 amd_pmu_event_map (int hw_event) { -if (boot_cpu_data.x86 >=0x17 ) -return amd_f17h_perfmon_event_map[hw_event]; +if (cpu_feature_enabled (X86_FEATURE_ZEN2 ) || boot_cpu_data.x86 >=0x19 ) +return amd_zen2_perfmon_event_map[hw_event]; + +if (cpu_feature_enabled (X86_FEATURE_ZEN1 )) +return amd_zen1_perfmon_event_map[hw_event];return amd_perfmon_event_map[hw_event]; }
arch/x86/include/asm/asm-prototypes.h +1 -0
@@ -13,6 +13,7 @@#include <asm/preempt.h> #include <asm/asm.h> #include <asm/gsseg.h> +#include <asm/nospec-branch.h> #ifndef CONFIG_X86_CMPXCHG64 extern void cmpxchg8b_emu (void );
arch/x86/include/asm/asm.h +14 -0
@@ -113,6 +113,20 @@#endif +#ifndef __ASSEMBLY__ +#ifndef __pic__ +static __always_inline __pure void *rip_rel_ptr(void *p) +{ + asm("leaq %c1(%%rip), %0" :"=r" (p) :"i" (p)); + +return p; +} +#define RIP_REL_REF (var) (*(typeof(&(var)))rip_rel_ptr(&(var))) +#else +#define RIP_REL_REF (var) (var) +#endif +#endif +/* * Macros to generate condition code outputs from inline assembly, * The output operand must be type "bool".
arch/x86/include/asm/coco.h +7 -1
@@ -2,6 +2,7 @@#ifndef _ASM_X86_COCO_H#define _ASM_X86_COCO_H +#include <asm/asm.h> #include <asm/types.h> enum cc_vendor {
@@ -12,7 +13,12 @@ enum cc_vendor {#ifdef CONFIG_ARCH_HAS_CC_PLATFORM extern enum cc_vendor cc_vendor; -void cc_set_mask (u64 mask); +extern u64 cc_mask; +static inline void cc_set_mask (u64 mask) +{ +RIP_REL_REF (cc_mask) = mask; +} +u64 cc_mkenc (u64 val);u64 cc_mkdec (u64 val);#else
arch/x86/include/asm/crash_core.h +2 -0
@@ -39,4 +39,6 @@ static inline unsigned long crash_low_size_default(void) #endif } +#define HAVE_ARCH_ADD_CRASH_RES_TO_IOMEM_EARLY +#endif /* _X86_CRASH_CORE_H */
arch/x86/include/asm/mem_encrypt.h +9 -6
@@ -15,7 +15,8 @@#include <linux/init.h> #include <linux/cc_platform.h> -#include <asm/bootparam.h> +#include <asm/asm.h> +struct boot_params ;#ifdef CONFIG_X86_MEM_ENCRYPT void __init mem_encrypt_init (void );
@@ -58,6 +59,11 @@ void __init mem_encrypt_free_decrypted_mem(void);void __init sev_es_init_vc_handling (void ); +static inline u64 sme_get_me_mask (void ) +{ +return RIP_REL_REF (sme_me_mask); +} +#define __bss_decrypted __section(".bss..decrypted")#else /* !CONFIG_AMD_MEM_ENCRYPT */
@@ -89,6 +95,8 @@ early_set_mem_enc_dec_hypercall(unsigned long vaddr, unsigned long size, bool enstatic inline void mem_encrypt_free_decrypted_mem (void ) { } +static inline u64 sme_get_me_mask (void ) {return 0 ; } +#define __bss_decrypted#endif /* CONFIG_AMD_MEM_ENCRYPT */
@@ -106,11 +114,6 @@ void add_encrypt_protection_map(void);extern char __start_bss_decrypted[], __end_bss_decrypted[], __start_bss_decrypted_unused[]; -static inline u64 sme_get_me_mask (void ) -{ -return sme_me_mask; -} -#endif /* __ASSEMBLY__ */ #endif /* __X86_MEM_ENCRYPT_H__ */
arch/x86/include/asm/nospec-branch.h +16 -5
@@ -271,11 +271,20 @@ .Lskip_rsb_\@: .endm +/* + * The CALL to srso_alias_untrain_ret() must be patched in directly at + * the spot where untraining must be done, ie., srso_alias_untrain_ret() + * must be the target of a CALL instruction instead of indirectly + * jumping to a wrapper which then calls it. Therefore, this macro is + * called outside of __UNTRAIN_RET below, for the time being, before the + * kernel can support nested alternatives with arbitrary nesting. + */ +.macro CALL_UNTRAIN_RET#if defined(CONFIG_CPU_UNRET_ENTRY ) || defined(CONFIG_CPU_SRSO ) -#define CALL_UNTRAIN_RET "call entry_untrain_ret" -#else -#define CALL_UNTRAIN_RET "" +ALTERNATIVE_2 "" ,"call entry_untrain_ret" ,X86_FEATURE_UNRET , \ +"call srso_alias_untrain_ret" ,X86_FEATURE_SRSO_ALIAS #endif +.endm/* * Mitigate RETBleed for AMD/Hygon Zen uarch. Requires KERNEL CR3 because the
@@ -291,8 +300,8 @@ .macro __UNTRAIN_RET ibpb_feature, call_depth_insns#if defined(CONFIG_RETHUNK ) || defined(CONFIG_CPU_IBPB_ENTRY )VALIDATE_UNRET_END - ALTERNATIVE_3 "", \ -CALL_UNTRAIN_RET ,X86_FEATURE_UNRET , \ + CALL_UNTRAIN_RET +ALTERNATIVE_2 "" , \ "call entry_ibpb", \ibpb_feature, \ __stringify(\call_depth_insns), X86_FEATURE_CALL_DEPTH#endif
@@ -351,6 +360,8 @@ extern void retbleed_return_thunk(void);static inline void retbleed_return_thunk (void ) {}#endif +extern void srso_alias_untrain_ret (void ); +#ifdef CONFIG_CPU_SRSO extern void srso_return_thunk (void );extern void srso_alias_return_thunk (void );
arch/x86/include/asm/sev.h +2 -2
@@ -203,12 +203,12 @@ void __init early_snp_set_memory_private(unsigned long vaddr, unsigned long padd unsigned long npages);void __init early_snp_set_memory_shared (unsigned long vaddr,unsigned long paddr,unsigned long npages); -void __init snp_prep_memory (unsigned long paddr,unsigned int sz,enum psc_op op);void snp_set_memory_shared (unsigned long vaddr,unsigned long npages);void snp_set_memory_private (unsigned long vaddr,unsigned long npages);void snp_set_wakeup_secondary_cpu (void );bool snp_init (struct boot_params *bp);void __init __noreturn snp_abort (void ); +void snp_dmi_setup (void );int snp_issue_guest_request (u64 exit_code,struct snp_req_data *input,struct snp_guest_request_ioctl *rio);void snp_accept_memory (phys_addr_t start,phys_addr_t end);u64 snp_get_unsupported_features (u64 status);
@@ -227,12 +227,12 @@ static inline void __init early_snp_set_memory_private(unsigned long vaddr, unsigned long paddr, unsigned long npages) { }static inline void __init early_snp_set_memory_shared (unsigned long vaddr,unsigned long paddr,unsigned long npages) { } -static inline void __init snp_prep_memory (unsigned long paddr,unsigned int sz,enum psc_op op) { }static inline void snp_set_memory_shared (unsigned long vaddr,unsigned long npages) { }static inline void snp_set_memory_private (unsigned long vaddr,unsigned long npages) { }static inline void snp_set_wakeup_secondary_cpu (void ) { }static inline bool snp_init (struct boot_params *bp) {return false; }static inline void snp_abort (void ) { } +static inline void snp_dmi_setup (void ) { }static inline int snp_issue_guest_request (u64 exit_code,struct snp_req_data *input,struct snp_guest_request_ioctl *rio) {return -ENOTTY ;
arch/x86/include/asm/suspend_32.h +5 -5
@@ -12,11 +12,6 @@/* image of the saved processor state */ struct saved_context { -/* -* On x86_32, all segment registers except gs are saved at kernel -* entry in pt_regs. -*/ -u16 gs;unsigned long cr0, cr2, cr3, cr4;u64 misc_enable;struct saved_msrs saved_msrs;
@@ -27,6 +22,11 @@ struct saved_context {unsigned long tr;unsigned long safety;unsigned long return_address; +/* +* On x86_32, all segment registers except gs are saved at kernel +* entry in pt_regs. +*/ +u16 gs;bool misc_enable_saved; } __attribute__((packed));
arch/x86/include/asm/x86_init.h +2 -1
@@ -30,12 +30,13 @@ struct x86_init_mpparse {* @reserve_resources: reserve the standard resources for the * platform * @memory_setup: platform specific memory setup -* +* @dmi_setup: platform specific DMI setup */ struct x86_init_resources {void (*probe_roms)(void );void (*reserve_resources)(void );char *(*memory_setup)(void ); +void (*dmi_setup)(void ); };/**
arch/x86/kernel/cpu/amd.c +5 -5
@@ -989,11 +989,11 @@ static bool cpu_has_zenbleed_microcode(void)u32 good_rev =0 ;switch (boot_cpu_data.x86_model) { - case 0x30 ... 0x3f: good_rev = 0x0830107a; break; - case 0x60 ... 0x67: good_rev = 0x0860010b; break; - case 0x68 ... 0x6f: good_rev = 0x08608105; break; - case 0x70 ... 0x7f: good_rev = 0x08701032; break; - case 0xa0 ... 0xaf: good_rev = 0x08a00008; break; + case 0x30 ... 0x3f: good_rev = 0x0830107b; break; + case 0x60 ... 0x67: good_rev = 0x0860010c; break; + case 0x68 ... 0x6f: good_rev = 0x08608107; break; + case 0x70 ... 0x7f: good_rev = 0x08701033; break; + case 0xa0 ... 0xaf: good_rev = 0x08a00009; break;default :return false;
arch/x86/kernel/eisa.c +2 -1
@@ -2,6 +2,7 @@/* * EISA specific code */ +#include <linux/cc_platform.h> #include <linux/ioport.h> #include <linux/eisa.h> #include <linux/io.h>
@@ -12,7 +13,7 @@ static __init int eisa_bus_probe(void) {void __iomem *p; -if (xen_pv_domain () && !xen_initial_domain ()) +if ((xen_pv_domain () && !xen_initial_domain ()) ||cc_platform_has (CC_ATTR_GUEST_SEV_SNP ))return 0 ; p =ioremap (0x0FFFD9 ,4 );
arch/x86/kernel/fpu/xstate.c +3 -2
@@ -178,10 +178,11 @@ void fpu__init_cpu_xstate(void)* Must happen after CR4 setup and before xsetbv() to allow KVM * lazy passthrough. Write independent of the dynamic state static * key as that does not work on the boot CPU. This also ensures -* that any stale state is wiped out from XFD. +* that any stale state is wiped out from XFD. Reset the per CPU +* xfd cache too. */ if (cpu_feature_enabled (X86_FEATURE_XFD )) -wrmsrl (MSR_IA32_XFD , init_fpstate.xfd); +xfd_set_state (init_fpstate.xfd);/* * XCR_XFEATURE_ENABLED_MASK (aka. XCR0) sets user features
arch/x86/kernel/fpu/xstate.h +10 -4
@@ -148,20 +148,26 @@ static inline void xfd_validate_state(struct fpstate *fpstate, u64 mask, bool rs#endif #ifdef CONFIG_X86_64 +static inline void xfd_set_state (u64 xfd) +{ +wrmsrl (MSR_IA32_XFD , xfd); +__this_cpu_write (xfd_state, xfd); +} +static inline void xfd_update_state (struct fpstate *fpstate) {if (fpu_state_size_dynamic ()) {u64 xfd = fpstate->xfd; -if (__this_cpu_read (xfd_state) != xfd) { -wrmsrl (MSR_IA32_XFD , xfd); -__this_cpu_write (xfd_state, xfd); - } +if (__this_cpu_read (xfd_state) != xfd) +xfd_set_state (xfd); } }extern int __xfd_enable_feature (u64 which,struct fpu_guest *guest_fpu);#else +static inline void xfd_set_state (u64 xfd) { } +static inline void xfd_update_state (struct fpstate *fpstate) { }static inline int __xfd_enable_feature (u64 which,struct fpu_guest *guest_fpu) {
arch/x86/kernel/kprobes/core.c +10 -1
@@ -335,7 +335,16 @@ static int can_probe(unsigned long paddr)kprobe_opcode_t *arch_adjust_kprobe_addr (unsigned long addr,unsigned long offset,bool *on_func_entry) { -if (is_endbr (*(u32 *)addr)) { +u32 insn; + +/* +* Since 'addr' is not guaranteed to be safe to access, use +* copy_from_kernel_nofault() to read the instruction: +*/ +if (copy_from_kernel_nofault (&insn, (void *)addr,sizeof (u32))) +return NULL ; + +if (is_endbr (insn)) { *on_func_entry = !offset || offset ==4 ;if (*on_func_entry) offset =4 ;
arch/x86/kernel/mpparse.c +5 -5
@@ -196,12 +196,12 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early)if (!smp_check_mpc (mpc, oem, str))return 0 ; -/* Initialize the lapic mapping */ -if (!acpi_lapic) -register_lapic_address (mpc->lapic); - -if (early) +if (early) { +/* Initialize the lapic mapping */ +if (!acpi_lapic) +register_lapic_address (mpc->lapic);return 1 ; + }/* Now process the configuration blocks. */ while (count < mpc->length) {
arch/x86/kernel/nmi.c +1 -1
@@ -636,7 +636,7 @@ void nmi_backtrace_stall_check(const struct cpumask *btp) msgp = nmi_check_stall_msg[idx];if (nsp->idt_ignored_snap !=READ_ONCE (nsp->idt_ignored) && (idx &0x1 )) modp =", but OK because ignore_nmis was set" ; -if (nmi_seq & ~0x1 ) +if (nmi_seq &0x1 ) msghp =" (CPU currently in NMI handler function)" ;else if (nsp->idt_nmi_seq_snap +1 == nmi_seq) msghp =" (CPU exited one NMI handler function)" ;
arch/x86/kernel/probe_roms.c +0 -10
@@ -203,16 +203,6 @@ void __init probe_roms(void)unsigned char c;int i; -/* -* The ROM memory range is not part of the e820 table and is therefore not -* pre-validated by BIOS. The kernel page table maps the ROM region as encrypted -* memory, and SNP requires encrypted memory to be validated before access. -* Do that here. -*/ -snp_prep_memory (video_rom_resource.start, - ((system_rom_resource.end +1 ) - video_rom_resource.start), -SNP_PAGE_STATE_PRIVATE ); -/* video rom */ upper = adapter_rom_resources[0 ].start;for (start = video_rom_resource.start; start < upper; start +=2048 ) {
arch/x86/kernel/setup.c +1 -2
@@ -9,7 +9,6 @@#include <linux/console.h> #include <linux/crash_dump.h> #include <linux/dma-map-ops.h> -#include <linux/dmi.h> #include <linux/efi.h> #include <linux/ima.h> #include <linux/init_ohci1394_dma.h>
@@ -902,7 +901,7 @@ void __init setup_arch(char **cmdline_p)efi_init ();reserve_ibft_region (); -dmi_setup (); + x86_init.resources.dmi_setup ();/* * VMware detection requires dmi to be available, so this
arch/x86/kernel/sev-shared.c +6 -6
@@ -556,9 +556,9 @@ static int snp_cpuid(struct ghcb *ghcb, struct es_em_ctxt *ctxt, struct cpuid_le leaf->eax = leaf->ebx = leaf->ecx = leaf->edx =0 ;/* Skip post-processing for out-of-range zero leafs. */ -if (!(leaf->fn <= cpuid_std_range_max || - (leaf->fn >=0x40000000 && leaf->fn <= cpuid_hyp_range_max) || - (leaf->fn >=0x80000000 && leaf->fn <= cpuid_ext_range_max))) +if (!(leaf->fn <=RIP_REL_REF (cpuid_std_range_max) || + (leaf->fn >=0x40000000 && leaf->fn <=RIP_REL_REF (cpuid_hyp_range_max)) || + (leaf->fn >=0x80000000 && leaf->fn <=RIP_REL_REF (cpuid_ext_range_max))))return 0 ; }
@@ -1063,11 +1063,11 @@ static void __init setup_cpuid_table(const struct cc_blob_sev_info *cc_info)const struct snp_cpuid_fn *fn = &cpuid_table->fn[i];if (fn->eax_in ==0x0 ) - cpuid_std_range_max = fn->eax; +RIP_REL_REF (cpuid_std_range_max) = fn->eax;else if (fn->eax_in ==0x40000000 ) - cpuid_hyp_range_max = fn->eax; +RIP_REL_REF (cpuid_hyp_range_max) = fn->eax;else if (fn->eax_in ==0x80000000 ) - cpuid_ext_range_max = fn->eax; +RIP_REL_REF (cpuid_ext_range_max) = fn->eax; } }
arch/x86/kernel/sev.c +14 -17
@@ -23,6 +23,7 @@#include <linux/platform_device.h> #include <linux/io.h> #include <linux/psp-sev.h> +#include <linux/dmi.h> #include <uapi/linux/sev-guest.h> #include <asm/cpu_entry_area.h>
@@ -748,7 +749,7 @@ void __init early_snp_set_memory_private(unsigned long vaddr, unsigned long padd* This eliminates worries about jump tables or checking boot_cpu_data * in the cc_platform_has() function. */ -if (!(sev_status &MSR_AMD64_SEV_SNP_ENABLED )) +if (!(RIP_REL_REF (sev_status) &MSR_AMD64_SEV_SNP_ENABLED ))return ;/*
@@ -767,28 +768,13 @@ void __init early_snp_set_memory_shared(unsigned long vaddr, unsigned long paddr* This eliminates worries about jump tables or checking boot_cpu_data * in the cc_platform_has() function. */ -if (!(sev_status &MSR_AMD64_SEV_SNP_ENABLED )) +if (!(RIP_REL_REF (sev_status) &MSR_AMD64_SEV_SNP_ENABLED ))return ;/* Ask hypervisor to mark the memory pages shared in the RMP table. */ early_set_pages_state (vaddr, paddr, npages,SNP_PAGE_STATE_SHARED ); } -void __init snp_prep_memory (unsigned long paddr,unsigned int sz,enum psc_op op) -{ -unsigned long vaddr, npages; - - vaddr = (unsigned long )__va (paddr); - npages =PAGE_ALIGN (sz) >>PAGE_SHIFT ; - -if (op ==SNP_PAGE_STATE_PRIVATE ) -early_snp_set_memory_private (vaddr, paddr, npages); -else if (op ==SNP_PAGE_STATE_SHARED ) -early_snp_set_memory_shared (vaddr, paddr, npages); -else -WARN (1 ,"invalid memory op %d\n" , op); -} -static unsigned long __set_pages_state (struct snp_psc_desc *data,unsigned long vaddr,unsigned long vaddr_end,int op) {
@@ -2112,6 +2098,17 @@ void __init __noreturn snp_abort(void)sev_es_terminate (SEV_TERM_SET_GEN ,GHCB_SNP_UNSUPPORTED ); } +/* +* SEV-SNP guests should only execute dmi_setup() if EFI_CONFIG_TABLES are +* enabled, as the alternative (fallback) logic for DMI probing in the legacy +* ROM region can cause a crash since this region is not pre-validated. +*/ +void __init snp_dmi_setup (void ) +{ +if (efi_enabled (EFI_CONFIG_TABLES )) +dmi_setup (); +} +static void dump_cpuid_table (void ) {const struct snp_cpuid_table *cpuid_table =snp_cpuid_get_table ();
arch/x86/kernel/x86_init.c +2 -0
@@ -3,6 +3,7 @@* * For licencing details see kernel-base/COPYING */ +#include <linux/dmi.h> #include <linux/init.h> #include <linux/ioport.h> #include <linux/export.h>
@@ -66,6 +67,7 @@ struct x86_init_ops x86_init __initdata = { .probe_roms = probe_roms, .reserve_resources = reserve_standard_io_resources, .memory_setup = e820__memory_setup_default, + .dmi_setup = dmi_setup, }, .mpparse = {
arch/x86/kvm/lapic.c +4 -1
@@ -41,6 +41,7 @@#include "ioapic.h" #include "trace.h" #include "x86.h" +#include "xen.h" #include "cpuid.h" #include "hyperv.h" #include "smm.h"
@@ -499,8 +500,10 @@ static inline void apic_set_spiv(struct kvm_lapic *apic, u32 val) }/* Check if there are APF page ready requests pending */ -if (enabled) +if (enabled) {kvm_make_request (KVM_REQ_APF_READY , apic->vcpu); +kvm_xen_sw_enable_lapic (apic->vcpu); + } }static inline void kvm_apic_set_xapic_id (struct kvm_lapic *apic,u8 id)
arch/x86/kvm/xen.c +1 -1
@@ -493,7 +493,7 @@ void kvm_xen_update_runstate(struct kvm_vcpu *v, int state)kvm_xen_update_runstate_guest (v, state == RUNSTATE_runnable); } -static void kvm_xen_inject_vcpu_vector (struct kvm_vcpu *v) +void kvm_xen_inject_vcpu_vector (struct kvm_vcpu *v) {struct kvm_lapic_irq irq = { };int r;
arch/x86/kvm/xen.h +18 -0
@@ -18,6 +18,7 @@ extern struct static_key_false_deferred kvm_xen_enabled;int __kvm_xen_has_interrupt (struct kvm_vcpu *vcpu);void kvm_xen_inject_pending_events (struct kvm_vcpu *vcpu); +void kvm_xen_inject_vcpu_vector (struct kvm_vcpu *vcpu);int kvm_xen_vcpu_set_attr (struct kvm_vcpu *vcpu,struct kvm_xen_vcpu_attr *data);int kvm_xen_vcpu_get_attr (struct kvm_vcpu *vcpu,struct kvm_xen_vcpu_attr *data);int kvm_xen_hvm_set_attr (struct kvm *kvm,struct kvm_xen_hvm_attr *data);
@@ -36,6 +37,19 @@ int kvm_xen_setup_evtchn(struct kvm *kvm, const struct kvm_irq_routing_entry *ue);void kvm_xen_update_tsc_info (struct kvm_vcpu *vcpu); +static inline void kvm_xen_sw_enable_lapic (struct kvm_vcpu *vcpu) +{ +/* +* The local APIC is being enabled. If the per-vCPU upcall vector is +* set and the vCPU's evtchn_upcall_pending flag is set, inject the +* interrupt. +*/ +if (static_branch_unlikely (&kvm_xen_enabled.key) && + vcpu->arch.xen.vcpu_info_cache.active && + vcpu->arch.xen.upcall_vector &&__kvm_xen_has_interrupt (vcpu)) +kvm_xen_inject_vcpu_vector (vcpu); +} +static inline bool kvm_xen_msr_enabled (struct kvm *kvm) { return static_branch_unlikely(&kvm_xen_enabled.key) &&
@@ -101,6 +115,10 @@ static inline void kvm_xen_destroy_vcpu(struct kvm_vcpu *vcpu) { } +static inline void kvm_xen_sw_enable_lapic (struct kvm_vcpu *vcpu) +{ +} +static inline bool kvm_xen_msr_enabled (struct kvm *kvm) {return false;
arch/x86/lib/retpoline.S +6 -5
@@ -163,6 +163,7 @@ SYM_CODE_START_NOALIGN(srso_alias_untrain_ret) lfence jmp srso_alias_return_thunk SYM_FUNC_END(srso_alias_untrain_ret) +__EXPORT_THUNK(srso_alias_untrain_ret) .popsection .pushsection .text..__x86.rethunk_safe
@@ -224,10 +225,12 @@ SYM_CODE_START(srso_return_thunk) SYM_CODE_END(srso_return_thunk) #define JMP_SRSO_UNTRAIN_RET "jmp srso_untrain_ret" -#define JMP_SRSO_ALIAS_UNTRAIN_RET "jmp srso_alias_untrain_ret" #else /* !CONFIG_CPU_SRSO */ #define JMP_SRSO_UNTRAIN_RET "ud2" -#define JMP_SRSO_ALIAS_UNTRAIN_RET "ud2" +/* Dummy for the alternative in CALL_UNTRAIN_RET. */ +SYM_CODE_START(srso_alias_untrain_ret) + RET +SYM_FUNC_END(srso_alias_untrain_ret) #endif /* CONFIG_CPU_SRSO */ #ifdef CONFIG_CPU_UNRET_ENTRY
@@ -319,9 +322,7 @@ SYM_FUNC_END(retbleed_untrain_ret) #if defined(CONFIG_CPU_UNRET_ENTRY) || defined(CONFIG_CPU_SRSO) SYM_FUNC_START(entry_untrain_ret) - ALTERNATIVE_2 JMP_RETBLEED_UNTRAIN_RET, \ - JMP_SRSO_UNTRAIN_RET, X86_FEATURE_SRSO, \ - JMP_SRSO_ALIAS_UNTRAIN_RET, X86_FEATURE_SRSO_ALIAS + ALTERNATIVE JMP_RETBLEED_UNTRAIN_RET, JMP_SRSO_UNTRAIN_RET, X86_FEATURE_SRSO SYM_FUNC_END(entry_untrain_ret) __EXPORT_THUNK(entry_untrain_ret)
arch/x86/mm/mem_encrypt_amd.c +18 -0
@@ -492,6 +492,24 @@ void __init sme_early_init(void)*/ if (sev_status &MSR_AMD64_SEV_ENABLED )ia32_disable (); + +/* +* Override init functions that scan the ROM region in SEV-SNP guests, +* as this memory is not pre-validated and would thus cause a crash. +*/ +if (sev_status &MSR_AMD64_SEV_SNP_ENABLED ) { + x86_init.mpparse.find_smp_config = x86_init_noop; + x86_init.pci.init_irq = x86_init_noop; + x86_init.resources.probe_roms = x86_init_noop; + +/* +* DMI setup behavior for SEV-SNP guests depends on +* efi_enabled(EFI_CONFIG_TABLES), which hasn't been +* parsed yet. snp_dmi_setup() will run after that +* parsing has happened. +*/ + x86_init.resources.dmi_setup = snp_dmi_setup; + } }void __init mem_encrypt_free_decrypted_mem (void )
arch/x86/mm/mem_encrypt_identity.c +13 -25
@@ -97,7 +97,6 @@ static char sme_workarea[2 * PMD_SIZE] __section(".init.scratch");static char sme_cmdline_arg[]__initdata ="mem_encrypt" ;static char sme_cmdline_on[]__initdata ="on" ; -static char sme_cmdline_off[]__initdata ="off" ;static void __init sme_clear_pgd (struct sme_populate_pgd_data *ppd) {
@@ -305,7 +304,8 @@ void __init sme_encrypt_kernel(struct boot_params *bp)* instrumentation or checking boot_cpu_data in the cc_platform_has() * function. */ -if (!sme_get_me_mask () || sev_status &MSR_AMD64_SEV_ENABLED ) +if (!sme_get_me_mask () || +RIP_REL_REF (sev_status) &MSR_AMD64_SEV_ENABLED )return ;/*
@@ -504,7 +504,7 @@ void __init sme_encrypt_kernel(struct boot_params *bp)void __init sme_enable (struct boot_params *bp) { -const char *cmdline_ptr, *cmdline_arg, *cmdline_on, *cmdline_off; +const char *cmdline_ptr, *cmdline_arg, *cmdline_on;unsigned int eax, ebx, ecx, edx;unsigned long feature_mask;unsigned long me_mask;
@@ -542,11 +542,11 @@ void __init sme_enable(struct boot_params *bp) me_mask =1UL << (ebx &0x3f );/* Check the SEV MSR whether SEV or SME is enabled */ - sev_status =__rdmsr (MSR_AMD64_SEV ); - feature_mask = (sev_status &MSR_AMD64_SEV_ENABLED ) ?AMD_SEV_BIT :AMD_SME_BIT ; +RIP_REL_REF (sev_status) = msr =__rdmsr (MSR_AMD64_SEV ); + feature_mask = (msr &MSR_AMD64_SEV_ENABLED ) ?AMD_SEV_BIT :AMD_SME_BIT ;/* The SEV-SNP CC blob should never be present unless SEV-SNP is enabled. */ -if (snp && !(sev_status &MSR_AMD64_SEV_SNP_ENABLED )) +if (snp && !(msr &MSR_AMD64_SEV_SNP_ENABLED ))snp_abort ();/* Check if memory encryption is enabled */
@@ -572,7 +572,6 @@ void __init sme_enable(struct boot_params *bp)return ; }else {/* SEV state cannot be controlled by a command line option */ - sme_me_mask = me_mask; goto out; }
@@ -587,28 +586,17 @@ void __init sme_enable(struct boot_params *bp) asm ("lea sme_cmdline_on(%%rip), %0" :"=r" (cmdline_on) :"p" (sme_cmdline_on)); - asm ("lea sme_cmdline_off(%%rip), %0" - :"=r" (cmdline_off) - :"p" (sme_cmdline_off)); - -if (IS_ENABLED (CONFIG_AMD_MEM_ENCRYPT_ACTIVE_BY_DEFAULT )) - sme_me_mask = me_mask; cmdline_ptr = (const char *)((u64 )bp->hdr.cmd_line_ptr | ((u64 )bp->ext_cmd_line_ptr <<32 )); -if (cmdline_find_option (cmdline_ptr, cmdline_arg, buffer,sizeof (buffer)) <0 ) - goto out; - -if (!strncmp (buffer, cmdline_on,sizeof (buffer))) - sme_me_mask = me_mask; -else if (!strncmp (buffer, cmdline_off,sizeof (buffer))) - sme_me_mask =0 ; +if (cmdline_find_option (cmdline_ptr, cmdline_arg, buffer,sizeof (buffer)) <0 || +strncmp (buffer, cmdline_on,sizeof (buffer))) +return ; out: -if (sme_me_mask) { - physical_mask &= ~sme_me_mask; - cc_vendor =CC_VENDOR_AMD ; -cc_set_mask (sme_me_mask); - } +RIP_REL_REF (sme_me_mask) = me_mask; + physical_mask &= ~me_mask; + cc_vendor =CC_VENDOR_AMD ; +cc_set_mask (me_mask); }
block/bio.c +4 -3
@@ -1152,7 +1152,7 @@ void __bio_release_pages(struct bio *bio, bool mark_dirty)bio_for_each_folio_all (fi, bio) {struct page *page; -size_t done =0 ; +size_t nr_pages;if (mark_dirty) {folio_lock (fi.folio);
@@ -1160,10 +1160,11 @@ void __bio_release_pages(struct bio *bio, bool mark_dirty)folio_unlock (fi.folio); } page =folio_page (fi.folio, fi.offset /PAGE_SIZE ); + nr_pages = (fi.offset + fi.length -1 ) /PAGE_SIZE - + fi.offset /PAGE_SIZE +1 ;do {bio_release_page (bio, page++); - done +=PAGE_SIZE ; - }while (done < fi.length); + }while (--nr_pages !=0 ); } }EXPORT_SYMBOL_GPL (__bio_release_pages);
block/blk-mq.c +2 -7
@@ -771,16 +771,11 @@ static void req_bio_endio(struct request *rq, struct bio *bio,/* * Partial zone append completions cannot be supported as the * BIO fragments may end up not being written sequentially. -* For such case, force the completed nbytes to be equal to -* the BIO size so that bio_advance() sets the BIO remaining -* size to 0 and we end up calling bio_endio() before returning. */ -if (bio->bi_iter.bi_size != nbytes) { +if (bio->bi_iter.bi_size != nbytes) bio->bi_status =BLK_STS_IOERR ; - nbytes = bio->bi_iter.bi_size; - }else { +else bio->bi_iter.bi_sector = rq->__sector; - } }bio_advance (bio, nbytes);
block/blk-settings.c +4 -0
@@ -689,6 +689,10 @@ int blk_stack_limits(struct queue_limits *t, struct queue_limits *b, t->zone_write_granularity =max (t->zone_write_granularity, b->zone_write_granularity); t->zoned =max (t->zoned, b->zoned); +if (!t->zoned) { + t->zone_write_granularity =0 ; + t->max_zone_append_sectors =0 ; + }return ret; }EXPORT_SYMBOL (blk_stack_limits);
block/mq-deadline.c +1 -2
@@ -646,9 +646,8 @@ static void dd_depth_updated(struct blk_mq_hw_ctx *hctx)struct request_queue *q = hctx->queue;struct deadline_data *dd = q->elevator->elevator_data;struct blk_mq_tags *tags = hctx->sched_tags; -unsigned int shift = tags->bitmap_tags.sb.shift; - dd->async_depth =max (1U ,3 * (1U << shift) /4 ); + dd->async_depth =max (1UL ,3 * q->nr_requests /4 );sbitmap_queue_min_shallow_depth (&tags->bitmap_tags, dd->async_depth); }
crypto/asymmetric_keys/mscode_parser.c +3 -0
@@ -75,6 +75,9 @@ int mscode_note_digest_algo(void *context, size_t hdrlen, oid =look_up_OID (value, vlen);switch (oid) { +case OID_sha1: + ctx->digest_algo ="sha1" ; +break ;case OID_sha256: ctx->digest_algo ="sha256" ;break ;
crypto/asymmetric_keys/pkcs7_parser.c +4 -0
@@ -227,6 +227,9 @@ int pkcs7_sig_note_digest_algo(void *context, size_t hdrlen,struct pkcs7_parse_context *ctx = context;switch (ctx->last_oid) { +case OID_sha1: + ctx->sinfo->sig->hash_algo ="sha1" ; +break ;case OID_sha256: ctx->sinfo->sig->hash_algo ="sha256" ;break ;
@@ -278,6 +281,7 @@ int pkcs7_sig_note_pkey_algo(void *context, size_t hdrlen, ctx->sinfo->sig->pkey_algo ="rsa" ; ctx->sinfo->sig->encoding ="pkcs1" ;break ; +case OID_id_ecdsa_with_sha1:case OID_id_ecdsa_with_sha224:case OID_id_ecdsa_with_sha256:case OID_id_ecdsa_with_sha384:
crypto/asymmetric_keys/public_key.c +2 -1
@@ -115,7 +115,8 @@ software_key_determine_akcipher(const struct public_key *pkey,*/ if (!hash_algo)return -EINVAL ; - if (strcmp(hash_algo, "sha224") != 0 && + if (strcmp(hash_algo, "sha1") != 0 && + strcmp(hash_algo, "sha224") != 0 && strcmp(hash_algo, "sha256") != 0 && strcmp(hash_algo, "sha384") != 0 && strcmp(hash_algo, "sha512") != 0 &&
crypto/asymmetric_keys/signature.c +1 -1
@@ -115,7 +115,7 @@ EXPORT_SYMBOL_GPL(decrypt_blob);* Sign the specified data blob using the private key specified by params->key. * The signature is wrapped in an encoding if params->encoding is specified * (eg. "pkcs1"). If the encoding needs to know the digest type, this can be -* passed through params->hash_algo (eg. "sha512"). +* passed through params->hash_algo (eg. "sha1"). * * Returns the length of the data placed in the signature buffer or an error. */
crypto/asymmetric_keys/x509_cert_parser.c +8 -0
@@ -198,6 +198,10 @@ int x509_note_sig_algo(void *context, size_t hdrlen, unsigned char tag,default :return -ENOPKG ;/* Unsupported combination */ +case OID_sha1WithRSAEncryption: + ctx->cert->sig->hash_algo ="sha1" ; + goto rsa_pkcs1; +case OID_sha256WithRSAEncryption: ctx->cert->sig->hash_algo ="sha256" ; goto rsa_pkcs1;
@@ -214,6 +218,10 @@ int x509_note_sig_algo(void *context, size_t hdrlen, unsigned char tag, ctx->cert->sig->hash_algo ="sha224" ; goto rsa_pkcs1; +case OID_id_ecdsa_with_sha1: + ctx->cert->sig->hash_algo ="sha1" ; + goto ecdsa; +case OID_id_rsassa_pkcs1_v1_5_with_sha3_256: ctx->cert->sig->hash_algo ="sha3-256" ; goto rsa_pkcs1;
crypto/testmgr.h +80 -0
98 lines not on this page · raw message
drivers/accessibility/speakup/synth.c +3 -1
@@ -208,8 +208,10 @@ void spk_do_flush(void)wake_up_process (speakup_task); } -void synth_write (const char *buf,size_t count) +void synth_write (const char *_buf,size_t count) { +const unsigned char *buf = (const unsigned char *) _buf; +while (count--)synth_buffer_add (*buf++);synth_start ();
drivers/ata/ahci.c +0 -13
@@ -671,19 +671,6 @@ MODULE_PARM_DESC(mobile_lpm_policy, "Default LPM policy for mobile chipsets");static void ahci_pci_save_initial_config (struct pci_dev *pdev,struct ahci_host_priv *hpriv) { -if (pdev->vendor ==PCI_VENDOR_ID_ASMEDIA ) { -switch (pdev->device) { -case 0x1166 : -dev_info (&pdev->dev,"ASM1166 has only six ports\n" ); - hpriv->saved_port_map =0x3f ; -break ; -case 0x1064 : -dev_info (&pdev->dev,"ASM1064 has only four ports\n" ); - hpriv->saved_port_map =0xf ; -break ; - } - } -if (pdev->vendor ==PCI_VENDOR_ID_JMICRON && pdev->device ==0x2361 ) {dev_info (&pdev->dev,"JMB361 has only one port\n" ); hpriv->saved_port_map =1 ;
drivers/ata/libata-eh.c +4 -1
@@ -712,8 +712,10 @@ void ata_scsi_port_error_handler(struct Scsi_Host *host, struct ata_port *ap) ehc->saved_ncq_enabled |=1 << devno;/* If we are resuming, wake up the device */ -if (ap->pflags &ATA_PFLAG_RESUMING ) +if (ap->pflags &ATA_PFLAG_RESUMING ) { + dev->flags |=ATA_DFLAG_RESUMING ; ehc->i.dev_action[devno] |=ATA_EH_SET_ACTIVE ; + } } }
@@ -3169,6 +3171,7 @@ static int ata_eh_revalidate_and_attach(struct ata_link *link,return 0 ; err: + dev->flags &= ~ATA_DFLAG_RESUMING ; *r_failed_dev = dev;return rc; }
drivers/ata/libata-scsi.c +9 -0
@@ -4730,6 +4730,7 @@ void ata_scsi_dev_rescan(struct work_struct *work)struct ata_link *link;struct ata_device *dev;unsigned long flags; +bool do_resume;int ret =0 ;mutex_lock (&ap->scsi_scan_mutex);
@@ -4751,7 +4752,15 @@ void ata_scsi_dev_rescan(struct work_struct *work)if (scsi_device_get (sdev))continue ; + do_resume = dev->flags &ATA_DFLAG_RESUMING ; +spin_unlock_irqrestore (ap->lock, flags); +if (do_resume) { + ret =scsi_resume_device (sdev); +if (ret == -EWOULDBLOCK ) + goto unlock; + dev->flags &= ~ATA_DFLAG_RESUMING ; + } ret =scsi_rescan_device (sdev);scsi_device_put (sdev);spin_lock_irqsave (ap->lock, flags);
drivers/base/power/wakeirq.c +3 -1
@@ -313,8 +313,10 @@ void dev_pm_enable_wake_irq_complete(struct device *dev)return ;if (wirq->status &WAKE_IRQ_DEDICATED_MANAGED && - wirq->status &WAKE_IRQ_DEDICATED_REVERSE ) + wirq->status &WAKE_IRQ_DEDICATED_REVERSE ) {enable_irq (wirq->irq); + wirq->status |=WAKE_IRQ_DEDICATED_ENABLED ; + } }/**
drivers/bluetooth/btnxpuart.c +3 -0
@@ -1234,6 +1234,9 @@ static int btnxpuart_close(struct hci_dev *hdev)ps_wakeup (nxpdev);serdev_device_close (nxpdev->serdev); +skb_queue_purge (&nxpdev->txq); +kfree_skb (nxpdev->rx_skb); + nxpdev->rx_skb =NULL ;clear_bit (BTNXPUART_SERDEV_OPEN , &nxpdev->tx_state);return 0 ; }
drivers/char/tpm/tpm_tis_core.c +1 -2
@@ -919,8 +919,6 @@ static int tpm_tis_probe_irq_single(struct tpm_chip *chip, u32 intmask,int rc;u32 int_status; -INIT_WORK (&priv->free_irq_work, tpm_tis_free_irq_func); - rc =devm_request_threaded_irq (chip->dev.parent, irq,NULL , tis_int_handler,IRQF_ONESHOT | flags,dev_name (&chip->dev), chip);
@@ -1132,6 +1130,7 @@ int tpm_tis_core_init(struct device *dev, struct tpm_tis_data *priv, int irq, priv->phy_ops = phy_ops; priv->locality_count =0 ;mutex_init (&priv->locality_count_mutex); +INIT_WORK (&priv->free_irq_work, tpm_tis_free_irq_func);dev_set_drvdata (&chip->dev, priv);
drivers/clk/qcom/camcc-sc8280xp.c +21 -0
@@ -630,6 +630,7 @@ static const struct freq_tbl ftbl_camcc_bps_clk_src[] = {F (480000000 ,P_CAMCC_PLL7_OUT_EVEN ,1 ,0 ,0 ),F (600000000 ,P_CAMCC_PLL0_OUT_MAIN ,2 ,0 ,0 ), F(760000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_bps_clk_src = {
@@ -654,6 +655,7 @@ static const struct freq_tbl ftbl_camcc_camnoc_axi_clk_src[] = {F (320000000 ,P_CAMCC_PLL7_OUT_ODD ,1 ,0 ,0 ),F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ), F(480000000, P_CAMCC_PLL7_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_camnoc_axi_clk_src = {
@@ -673,6 +675,7 @@ static struct clk_rcg2 camcc_camnoc_axi_clk_src = {static const struct freq_tbl ftbl_camcc_cci_0_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (37500000 ,P_CAMCC_PLL0_OUT_EVEN ,16 ,0 ,0 ), + { } };static struct clk_rcg2 camcc_cci_0_clk_src = {
@@ -735,6 +738,7 @@ static const struct freq_tbl ftbl_camcc_cphy_rx_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (240000000 ,P_CAMCC_PLL0_OUT_EVEN ,2.5 ,0 ,0 ), F(400000000, P_CAMCC_PLL0_OUT_ODD, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_cphy_rx_clk_src = {
@@ -754,6 +758,7 @@ static struct clk_rcg2 camcc_cphy_rx_clk_src = {static const struct freq_tbl ftbl_camcc_csi0phytimer_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (300000000 ,P_CAMCC_PLL0_OUT_EVEN ,2 ,0 ,0 ), + { } };static struct clk_rcg2 camcc_csi0phytimer_clk_src = {
@@ -818,6 +823,7 @@ static const struct freq_tbl ftbl_camcc_fast_ahb_clk_src[] = {F (200000000 ,P_CAMCC_PLL0_OUT_EVEN ,3 ,0 ,0 ),F (300000000 ,P_CAMCC_PLL0_OUT_MAIN ,4 ,0 ,0 ), F(400000000, P_CAMCC_PLL0_OUT_MAIN, 3, 0, 0), + { } }; static struct clk_rcg2 camcc_fast_ahb_clk_src = {
@@ -838,6 +844,7 @@ static const struct freq_tbl ftbl_camcc_icp_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0), + { } }; static struct clk_rcg2 camcc_icp_clk_src = {
@@ -860,6 +867,7 @@ static const struct freq_tbl ftbl_camcc_ife_0_clk_src[] = {F (558000000 ,P_CAMCC_PLL3_OUT_EVEN ,1 ,0 ,0 ),F (637000000 ,P_CAMCC_PLL3_OUT_EVEN ,1 ,0 ,0 ), F(760000000, P_CAMCC_PLL3_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_0_clk_src = {
@@ -883,6 +891,7 @@ static const struct freq_tbl ftbl_camcc_ife_0_csid_clk_src[] = {F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ),F (480000000 ,P_CAMCC_PLL7_OUT_EVEN ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_0_csid_clk_src = {
@@ -905,6 +914,7 @@ static const struct freq_tbl ftbl_camcc_ife_1_clk_src[] = {F (558000000 ,P_CAMCC_PLL4_OUT_EVEN ,1 ,0 ,0 ),F (637000000 ,P_CAMCC_PLL4_OUT_EVEN ,1 ,0 ,0 ), F(760000000, P_CAMCC_PLL4_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_1_clk_src = {
@@ -941,6 +951,7 @@ static const struct freq_tbl ftbl_camcc_ife_2_clk_src[] = {F (558000000 ,P_CAMCC_PLL5_OUT_EVEN ,1 ,0 ,0 ),F (637000000 ,P_CAMCC_PLL5_OUT_EVEN ,1 ,0 ,0 ), F(760000000, P_CAMCC_PLL5_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_2_clk_src = {
@@ -962,6 +973,7 @@ static const struct freq_tbl ftbl_camcc_ife_2_csid_clk_src[] = {F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ),F (480000000 ,P_CAMCC_PLL7_OUT_EVEN ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_2_csid_clk_src = {
@@ -984,6 +996,7 @@ static const struct freq_tbl ftbl_camcc_ife_3_clk_src[] = {F (558000000 ,P_CAMCC_PLL6_OUT_EVEN ,1 ,0 ,0 ),F (637000000 ,P_CAMCC_PLL6_OUT_EVEN ,1 ,0 ,0 ), F(760000000, P_CAMCC_PLL6_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_3_clk_src = {
@@ -1020,6 +1033,7 @@ static const struct freq_tbl ftbl_camcc_ife_lite_0_clk_src[] = {F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ),F (480000000 ,P_CAMCC_PLL7_OUT_EVEN ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0), + { } }; static struct clk_rcg2 camcc_ife_lite_0_clk_src = {
@@ -1140,6 +1154,7 @@ static const struct freq_tbl ftbl_camcc_ipe_0_clk_src[] = {F (475000000 ,P_CAMCC_PLL1_OUT_EVEN ,1 ,0 ,0 ),F (520000000 ,P_CAMCC_PLL1_OUT_EVEN ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL1_OUT_EVEN, 1, 0, 0), + { } }; static struct clk_rcg2 camcc_ipe_0_clk_src = {
@@ -1163,6 +1178,7 @@ static const struct freq_tbl ftbl_camcc_jpeg_clk_src[] = {F (400000000 ,P_CAMCC_PLL0_OUT_ODD ,1 ,0 ,0 ),F (480000000 ,P_CAMCC_PLL7_OUT_EVEN ,1 ,0 ,0 ), F(600000000, P_CAMCC_PLL0_OUT_MAIN, 2, 0, 0), + { } }; static struct clk_rcg2 camcc_jpeg_clk_src = {
@@ -1184,6 +1200,7 @@ static const struct freq_tbl ftbl_camcc_lrme_clk_src[] = {F (300000000 ,P_CAMCC_PLL0_OUT_EVEN ,2 ,0 ,0 ),F (320000000 ,P_CAMCC_PLL7_OUT_ODD ,1 ,0 ,0 ), F(400000000, P_CAMCC_PLL0_OUT_MAIN, 3, 0, 0), + { } }; static struct clk_rcg2 camcc_lrme_clk_src = {
@@ -1204,6 +1221,7 @@ static const struct freq_tbl ftbl_camcc_mclk0_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (24000000 ,P_CAMCC_PLL2_OUT_EARLY ,10 ,1 ,4 ), F(64000000, P_CAMCC_PLL2_OUT_EARLY, 15, 0, 0), + { } }; static struct clk_rcg2 camcc_mclk0_clk_src = {
@@ -1320,6 +1338,7 @@ static struct clk_rcg2 camcc_mclk7_clk_src = {static const struct freq_tbl ftbl_camcc_sleep_clk_src[] = {F (32000 ,P_SLEEP_CLK ,1 ,0 ,0 ), + { } };static struct clk_rcg2 camcc_sleep_clk_src = {
@@ -1339,6 +1358,7 @@ static struct clk_rcg2 camcc_sleep_clk_src = {static const struct freq_tbl ftbl_camcc_slow_ahb_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ),F (80000000 ,P_CAMCC_PLL7_OUT_EVEN ,6 ,0 ,0 ), + { } };static struct clk_rcg2 camcc_slow_ahb_clk_src = {
@@ -1357,6 +1377,7 @@ static struct clk_rcg2 camcc_slow_ahb_clk_src = {static const struct freq_tbl ftbl_camcc_xo_clk_src[] = {F (19200000 ,P_BI_TCXO ,1 ,0 ,0 ), + { } };static struct clk_rcg2 camcc_xo_clk_src = {
drivers/clk/qcom/gcc-ipq5018.c +3 -0
@@ -857,6 +857,7 @@ static struct clk_rcg2 lpass_sway_clk_src = {static const struct freq_tbl ftbl_pcie0_aux_clk_src[] = {F (2000000 ,P_XO ,12 ,0 ,0 ), + { } };static struct clk_rcg2 pcie0_aux_clk_src = {
@@ -1099,6 +1100,7 @@ static const struct freq_tbl ftbl_qpic_io_macro_clk_src[] = {F (100000000 ,P_GPLL0 ,8 ,0 ,0 ),F (200000000 ,P_GPLL0 ,4 ,0 ,0 ), F(320000000, P_GPLL0, 2.5, 0, 0), + { } }; static struct clk_rcg2 qpic_io_macro_clk_src = {
@@ -1194,6 +1196,7 @@ static struct clk_rcg2 ubi0_axi_clk_src = {static const struct freq_tbl ftbl_ubi0_core_clk_src[] = {F (850000000 ,P_UBI32_PLL ,1 ,0 ,0 ),F (1000000000 ,P_UBI32_PLL ,1 ,0 ,0 ), + { } };static struct clk_rcg2 ubi0_core_clk_src = {
drivers/clk/qcom/gcc-ipq6018.c +2 -0
@@ -1554,6 +1554,7 @@ static struct clk_regmap_div nss_ubi0_div_clk_src = {static const struct freq_tbl ftbl_pcie_aux_clk_src[] = {F (24000000 ,P_XO ,1 ,0 ,0 ), + { } };static const struct clk_parent_data gcc_xo_gpll0_core_pi_sleep_clk[] = {
@@ -1734,6 +1735,7 @@ static const struct freq_tbl ftbl_sdcc_ice_core_clk_src[] = {F (160000000 ,P_GPLL0 ,5 ,0 ,0 ),F (216000000 ,P_GPLL6 ,5 ,0 ,0 ), F(308570000, P_GPLL6, 3.5, 0, 0), + { } }; static const struct clk_parent_data gcc_xo_gpll0_gpll6_gpll0_div2[] = {
drivers/clk/qcom/gcc-ipq8074.c +2 -0
@@ -644,6 +644,7 @@ static struct clk_rcg2 pcie0_axi_clk_src = {static const struct freq_tbl ftbl_pcie_aux_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ), + { } };static const struct clk_parent_data gcc_xo_gpll0_sleep_clk[] = {
@@ -795,6 +796,7 @@ static const struct freq_tbl ftbl_sdcc_ice_core_clk_src[] = {F (19200000 ,P_XO ,1 ,0 ,0 ),F (160000000 ,P_GPLL0 ,5 ,0 ,0 ), F(308570000, P_GPLL6, 3.5, 0, 0), + { } }; static const struct clk_parent_data gcc_xo_gpll0_gpll6_gpll0_div2[] = {
drivers/clk/qcom/gcc-ipq9574.c +1 -0
@@ -2082,6 +2082,7 @@ static struct clk_branch gcc_sdcc1_apps_clk = {static const struct freq_tbl ftbl_sdcc_ice_core_clk_src[] = {F (150000000 ,P_GPLL4 ,8 ,0 ,0 ),F (300000000 ,P_GPLL4 ,4 ,0 ,0 ), + { } };static struct clk_rcg2 sdcc1_ice_core_clk_src = {
drivers/clk/qcom/gcc-sdm845.c +1 -0
@@ -4037,3 +4037,4 @@ module_exit(gcc_sdm845_exit);MODULE_DESCRIPTION ("QTI GCC SDM845 Driver" );MODULE_LICENSE ("GPL v2" );MODULE_ALIAS ("platform:gcc-sdm845" ); +MODULE_SOFTDEP ("pre: rpmhpd" );
drivers/clk/qcom/mmcc-apq8084.c +2 -0
@@ -348,6 +348,7 @@ static struct freq_tbl ftbl_mmss_axi_clk[] = {F (333430000 ,P_MMPLL1 ,3.5 ,0 ,0 ),F (400000000 ,P_MMPLL0 ,2 ,0 ,0 ), F(466800000, P_MMPLL1, 2.5, 0, 0), + { } }; static struct clk_rcg2 mmss_axi_clk_src = {
@@ -372,6 +373,7 @@ static struct freq_tbl ftbl_ocmemnoc_clk[] = {F (150000000 ,P_GPLL0 ,4 ,0 ,0 ),F (228570000 ,P_MMPLL0 ,3.5 ,0 ,0 ), F(320000000, P_MMPLL0, 2.5, 0, 0), + { } }; static struct clk_rcg2 ocmemnoc_clk_src = {
drivers/clk/qcom/mmcc-msm8974.c +2 -0
@@ -290,6 +290,7 @@ static struct freq_tbl ftbl_mmss_axi_clk[] = {F (291750000 ,P_MMPLL1 ,4 ,0 ,0 ),F (400000000 ,P_MMPLL0 ,2 ,0 ,0 ), F(466800000, P_MMPLL1, 2.5, 0, 0), + { } }; static struct clk_rcg2 mmss_axi_clk_src = {
@@ -314,6 +315,7 @@ static struct freq_tbl ftbl_ocmemnoc_clk[] = {F (150000000 ,P_GPLL0 ,4 ,0 ,0 ),F (291750000 ,P_MMPLL1 ,4 ,0 ,0 ), F(400000000, P_MMPLL0, 2, 0, 0), + { } }; static struct clk_rcg2 ocmemnoc_clk_src = {
drivers/clocksource/arm_global_timer.c +1 -1
@@ -32,7 +32,7 @@#define GT_CONTROL_IRQ_ENABLE BIT(2)/* banked */ #define GT_CONTROL_AUTO_INC BIT(3)/* banked */ #define GT_CONTROL_PRESCALER_SHIFT 8 -#define GT_CONTROL_PRESCALER_MAX 0xF +#define GT_CONTROL_PRESCALER_MAX 0xFF#define GT_CONTROL_PRESCALER_MASK (GT_CONTROL_PRESCALER_MAX << \ GT_CONTROL_PRESCALER_SHIFT)
drivers/clocksource/timer-riscv.c +3 -0
@@ -108,6 +108,9 @@ static int riscv_timer_starting_cpu(unsigned int cpu) {struct clock_event_device *ce =per_cpu_ptr (&riscv_clock_event, cpu); +/* Clear timer interrupt */ +riscv_clock_event_stop (); + ce->cpumask =cpumask_of (cpu); ce->irq = riscv_clock_event_irq;if (riscv_timer_cannot_wake_cpu)
drivers/cpufreq/amd-pstate.c +1 -1
@@ -570,7 +570,7 @@ static void amd_pstate_adjust_perf(unsigned int cpu,if (target_perf < capacity) des_perf =DIV_ROUND_UP (cap_perf * target_perf, capacity); - min_perf =READ_ONCE (cpudata->highest_perf); + min_perf =READ_ONCE (cpudata->lowest_perf);if (_min_perf < capacity) min_perf =DIV_ROUND_UP (cap_perf * _min_perf, capacity);
drivers/cpufreq/cpufreq-dt.c +1 -1
@@ -208,7 +208,7 @@ static int dt_cpufreq_early_init(struct device *dev, int cpu)if (!priv)return -ENOMEM ; -if (!alloc_cpumask_var (&priv->cpus,GFP_KERNEL )) +if (!zalloc_cpumask_var (&priv->cpus,GFP_KERNEL ))return -ENOMEM ;cpumask_set_cpu (cpu, priv->cpus);
drivers/crypto/intel/iaa/iaa_crypto_main.c +7 -3
@@ -908,6 +908,8 @@ static int save_iaa_wq(struct idxd_wq *wq)return -EINVAL ; cpus_per_iaa = (nr_nodes * nr_cpus_per_node) / nr_iaa; +if (!cpus_per_iaa) + cpus_per_iaa =1 ; out:return 0 ; }
@@ -923,10 +925,12 @@ static void remove_iaa_wq(struct idxd_wq *wq) } } -if (nr_iaa) +if (nr_iaa) { cpus_per_iaa = (nr_nodes * nr_cpus_per_node) / nr_iaa; -else - cpus_per_iaa =0 ; +if (!cpus_per_iaa) + cpus_per_iaa =1 ; + }else + cpus_per_iaa =1 ; }static int wq_table_add_wqs (int iaa,int cpu)
drivers/crypto/intel/qat/qat_common/adf_aer.c +16 -6
@@ -92,7 +92,8 @@ static void adf_device_reset_worker(struct work_struct *work)if (adf_dev_restart (accel_dev)) {/* The device hanged and we can't restart it so stop here */ dev_err (&GET_DEV (accel_dev),"Restart device failed\n" ); -if (reset_data->mode ==ADF_DEV_RESET_ASYNC ) +if (reset_data->mode ==ADF_DEV_RESET_ASYNC || +completion_done (&reset_data->compl))kfree (reset_data);WARN (1 ,"QAT: device restart failed. Device is unusable\n" );return ;
@@ -100,11 +101,19 @@ static void adf_device_reset_worker(struct work_struct *work)adf_dev_restarted_notify (accel_dev);clear_bit (ADF_STATUS_RESTARTING , &accel_dev->status); -/* The dev is back alive. Notify the caller if in sync mode */ -if (reset_data->mode ==ADF_DEV_RESET_SYNC ) -complete (&reset_data->compl); -else +/* +* The dev is back alive. Notify the caller if in sync mode +* +* If device restart will take a more time than expected, +* the schedule_reset() function can timeout and exit. This can be +* detected by calling the completion_done() function. In this case +* the reset_data structure needs to be freed here. +*/ +if (reset_data->mode ==ADF_DEV_RESET_ASYNC || +completion_done (&reset_data->compl))kfree (reset_data); +else +complete (&reset_data->compl); } static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,
@@ -137,8 +146,9 @@ static int adf_dev_aer_schedule_reset(struct adf_accel_dev *accel_dev,dev_err (&GET_DEV (accel_dev),"Reset device timeout expired\n" ); ret = -EFAULT ; + }else { +kfree (reset_data); } -kfree (reset_data);return ret; }return 0 ;
drivers/crypto/intel/qat/qat_common/adf_rl.c +19 -1
@@ -788,6 +788,24 @@ static void clear_sla(struct adf_rl *rl_data, struct rl_sla *sla) sla_type_arr[node_id] =NULL ; } +static void free_all_sla (struct adf_accel_dev *accel_dev) +{ +struct adf_rl *rl_data = accel_dev->rate_limiting; +int sla_id; + +mutex_lock (&rl_data->rl_lock); + +for (sla_id =0 ; sla_id <RL_NODES_CNT_MAX ; sla_id++) { +if (!rl_data->sla[sla_id]) +continue ; + +kfree (rl_data->sla[sla_id]); + rl_data->sla[sla_id] =NULL ; + } + +mutex_unlock (&rl_data->rl_lock); +} +/** * add_update_sla() - handles the creation and the update of an SLA * @accel_dev: pointer to acceleration device structure
@@ -1155,7 +1173,7 @@ void adf_rl_stop(struct adf_accel_dev *accel_dev)return ;adf_sysfs_rl_rm (accel_dev); -adf_rl_remove_sla_all (accel_dev, true); +free_all_sla (accel_dev); }void adf_rl_exit (struct adf_accel_dev *accel_dev)
drivers/cxl/core/trace.h +7 -7
@@ -646,18 +646,18 @@ u64 cxl_trace_hpa(struct cxl_region *cxlr, struct cxl_memdev *memdev, u64 dpa); TRACE_EVENT(cxl_poison, - TP_PROTO(struct cxl_memdev *cxlmd, struct cxl_region *region, + TP_PROTO(struct cxl_memdev *cxlmd, struct cxl_region *cxlr, const struct cxl_poison_record *record, u8 flags, __le64 overflow_ts, enum cxl_poison_trace_type trace_type), - TP_ARGS(cxlmd, region, record, flags, overflow_ts, trace_type), + TP_ARGS(cxlmd, cxlr, record, flags, overflow_ts, trace_type), TP_STRUCT__entry( __string(memdev, dev_name(&cxlmd->dev)) __string(host, dev_name(cxlmd->dev.parent)) __field(u64, serial) __field(u8, trace_type) - __string(region, region) + __string(region, cxlr ? dev_name(&cxlr->dev) : "") __field(u64, overflow_ts) __field(u64, hpa) __field(u64, dpa)
@@ -677,10 +677,10 @@ TRACE_EVENT(cxl_poison, __entry->source =cxl_poison_record_source (record); __entry->trace_type = trace_type; __entry->flags = flags; -if (region) { -__assign_str (region,dev_name (®ion->dev)); -memcpy (__entry->uuid, ®ion->params.uuid,16 ); - __entry->hpa =cxl_trace_hpa (region, cxlmd, +if (cxlr) { +__assign_str (region,dev_name (&cxlr->dev)); +memcpy (__entry->uuid, &cxlr->params.uuid,16 ); + __entry->hpa =cxl_trace_hpa (cxlr, cxlmd, __entry->dpa); }else {__assign_str (region,"" );
drivers/firmware/efi/efi.c +2 -0
@@ -203,6 +203,8 @@ static bool generic_ops_supported(void) name_size =sizeof (name); +if (!efi.get_next_variable) +return false; status = efi.get_next_variable (&name_size, &name, &guid);if (status ==EFI_UNSUPPORTED )return false;
drivers/firmware/efi/libstub/randomalloc.c +1 -1
@@ -120,7 +120,7 @@ efi_status_t efi_random_alloc(unsigned long size,continue ; } - target =round_up (md->phys_addr, align) + target_slot * align; + target =round_up (max_t (u64, md->phys_addr, alloc_min), align) + target_slot * align; pages = size /EFI_PAGE_SIZE ; status = efi_bs_call(allocate_pages, EFI_ALLOCATE_ADDRESS,
drivers/firmware/efi/libstub/x86-stub.c +1 -0
@@ -487,6 +487,7 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle, hdr->vid_mode =0xffff ; hdr->type_of_loader =0x21 ; + hdr->initrd_addr_max =INT_MAX ;/* Convert unicode cmdline to ascii */ cmdline_ptr =efi_convert_cmdline (image, &options_size);
drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c +16 -4
@@ -129,13 +129,25 @@ static const struct mmu_interval_notifier_ops amdgpu_hmm_hsa_ops = {*/ int amdgpu_hmm_register (struct amdgpu_bo *bo,unsigned long addr) { +int r; +if (bo->kfd_bo) -return mmu_interval_notifier_insert (&bo->notifier, current->mm, + r =mmu_interval_notifier_insert (&bo->notifier, current->mm, addr,amdgpu_bo_size (bo), &amdgpu_hmm_hsa_ops); -return mmu_interval_notifier_insert (&bo->notifier, current->mm, addr, -amdgpu_bo_size (bo), - &amdgpu_hmm_gfx_ops); +else + r =mmu_interval_notifier_insert (&bo->notifier, current->mm, addr, +amdgpu_bo_size (bo), + &amdgpu_hmm_gfx_ops); +if (r) +/* +* Make sure amdgpu_hmm_unregister() doesn't call +* mmu_interval_notifier_remove() when the notifier isn't properly +* initialized. +*/ + bo->notifier.mm =NULL ; + +return r; }/**
drivers/gpu/drm/amd/amdgpu/amdgpu_ring.c +29 -17
75 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +1 -0
@@ -869,6 +869,7 @@ static void amdgpu_ttm_gart_bind(struct amdgpu_device *adev,amdgpu_gart_bind (adev, gtt->offset, ttm->num_pages, gtt->ttm.dma_address, flags); } + gtt->bound = true; }/*
drivers/gpu/drm/amd/amdkfd/kfd_priv.h +1 -1
@@ -1473,7 +1473,7 @@ static inline void kfd_flush_tlb(struct kfd_process_device *pdd,static inline bool kfd_flush_tlb_after_unmap (struct kfd_dev *dev) { -return KFD_GC_VERSION (dev) >IP_VERSION (9 ,4 ,2 ) || +return KFD_GC_VERSION (dev) >=IP_VERSION (9 ,4 ,2 ) || (KFD_GC_VERSION (dev) ==IP_VERSION (9 ,4 ,1 ) && dev->sdma_fw_version >=18 ) ||KFD_GC_VERSION (dev) ==IP_VERSION (9 ,4 ,0 ); }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +21 -13
@@ -5199,6 +5199,10 @@ static inline void fill_dc_dirty_rect(struct drm_plane *plane,* @new_plane_state: New state of @plane * @crtc_state: New state of CRTC connected to the @plane * @flip_addrs: DC flip tracking struct, which also tracts dirty rects +* @is_psr_su: Flag indicating whether Panel Self Refresh Selective Update (PSR SU) is enabled. +* If PSR SU is enabled and damage clips are available, only the regions of the screen +* that have changed will be updated. If PSR SU is not enabled, +* or if damage clips are not available, the entire screen will be updated. * @dirty_regions_changed: dirty regions changed * * For PSR SU, DC informs the DMUB uController of dirty rectangle regions
@@ -6252,9 +6256,8 @@ create_stream_for_sink(struct drm_connector *connector,if (stream->signal ==SIGNAL_TYPE_HDMI_TYPE_A )mod_build_hf_vsif_infopacket (stream, &stream->vsp_infopacket); -else if (stream->signal ==SIGNAL_TYPE_DISPLAY_PORT || - stream->signal ==SIGNAL_TYPE_DISPLAY_PORT_MST || - stream->signal ==SIGNAL_TYPE_EDP ) { + +if (stream->link->psr_settings.psr_feature_enabled || stream->link->replay_settings.replay_feature_enabled) {// // should decide stream support vsc sdp colorimetry capability // before building vsc info packet
@@ -6270,9 +6273,8 @@ create_stream_for_sink(struct drm_connector *connector,if (stream->out_transfer_func->tf ==TRANSFER_FUNCTION_GAMMA22 ) tf =TRANSFER_FUNC_GAMMA_22 ;mod_build_vsc_infopacket (stream, &stream->vsc_infopacket, stream->output_color_space, tf); + aconnector->psr_skip_count =AMDGPU_DM_PSR_ENTRY_DELAY ; -if (stream->link->psr_settings.psr_feature_enabled) - aconnector->psr_skip_count =AMDGPU_DM_PSR_ENTRY_DELAY ; } finish:dc_sink_release (sink);
@@ -11136,18 +11138,24 @@ void amdgpu_dm_update_freesync_caps(struct drm_connector *connector,if (!adev->dm.freesync_module) goto update; -if (sink->sink_signal ==SIGNAL_TYPE_DISPLAY_PORT - || sink->sink_signal ==SIGNAL_TYPE_EDP ) { +if (edid && (sink->sink_signal ==SIGNAL_TYPE_DISPLAY_PORT || + sink->sink_signal ==SIGNAL_TYPE_EDP )) {bool edid_check_required = false; -if (edid) { - edid_check_required =is_dp_capable_without_timing_msa ( - adev->dm.dc, - amdgpu_dm_connector); +if (is_dp_capable_without_timing_msa (adev->dm.dc, + amdgpu_dm_connector)) { +if (edid->features &DRM_EDID_FEATURE_CONTINUOUS_FREQ ) { + freesync_capable = true; + amdgpu_dm_connector->min_vfreq = connector->display_info.monitor_range.min_vfreq; + amdgpu_dm_connector->max_vfreq = connector->display_info.monitor_range.max_vfreq; + }else { + edid_check_required = edid->version >1 || + (edid->version ==1 && + edid->revision >1 ); + } } -if (edid_check_required == true && (edid->version >1 || - (edid->version ==1 && edid->revision >1 ))) { +if (edid_check_required) {for (i =0 ; i <4 ; i++) { timing = &edid->detailed_timings[i];
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.c +5 -3
@@ -141,9 +141,8 @@ bool amdgpu_dm_link_setup_psr(struct dc_stream_state *stream)* amdgpu_dm_psr_enable() - enable psr f/w * @stream: stream state * -* Return: true if success */ -bool amdgpu_dm_psr_enable (struct dc_stream_state *stream) +void amdgpu_dm_psr_enable (struct dc_stream_state *stream) {struct dc_link *link = stream->link;unsigned int vsync_rate_hz =0 ;
@@ -190,7 +189,10 @@ bool amdgpu_dm_psr_enable(struct dc_stream_state *stream)if (link->psr_settings.psr_version <DC_PSR_VERSION_SU_1 ) power_opt |= psr_power_opt_z10_static_screen; -return dc_link_set_psr_allow_active (link, &psr_enable, false, false, &power_opt); +dc_link_set_psr_allow_active (link, &psr_enable, false, false, &power_opt); + +if (link->ctx->dc->caps.ips_support) +dc_allow_idle_optimizations (link->ctx->dc, true); }/*
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_psr.h +1 -1
@@ -32,7 +32,7 @@#define AMDGPU_DM_PSR_ENTRY_DELAY 5void amdgpu_dm_set_psr_caps (struct dc_link *link); -bool amdgpu_dm_psr_enable (struct dc_stream_state *stream); +void amdgpu_dm_psr_enable (struct dc_stream_state *stream);bool amdgpu_dm_link_setup_psr (struct dc_stream_state *stream);bool amdgpu_dm_psr_disable (struct dc_stream_state *stream);bool amdgpu_dm_psr_disable_all (struct amdgpu_display_manager *dm);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn32/dcn32_clk_mgr.c +14 -0
@@ -216,6 +216,16 @@ void dcn32_init_clocks(struct clk_mgr *clk_mgr_base)if (clk_mgr_base->bw_params->dc_mode_limit.dispclk_mhz >1950 ) clk_mgr_base->bw_params->dc_mode_limit.dispclk_mhz =1950 ; +/* DPPCLK */ +dcn32_init_single_clock (clk_mgr,PPCLK_DPPCLK , + &clk_mgr_base->bw_params->clk_table.entries[0 ].dppclk_mhz, + &num_entries_per_clk->num_dppclk_levels); + num_levels = num_entries_per_clk->num_dppclk_levels; + clk_mgr_base->bw_params->dc_mode_limit.dppclk_mhz =dcn30_smu_get_dc_mode_max_dpm_freq (clk_mgr,PPCLK_DPPCLK ); +//HW recommends limit of 1950 MHz in display clock for all DCN3.2.x +if (clk_mgr_base->bw_params->dc_mode_limit.dppclk_mhz >1950 ) + clk_mgr_base->bw_params->dc_mode_limit.dppclk_mhz =1950 ; +if (num_entries_per_clk->num_dcfclk_levels && num_entries_per_clk->num_dtbclk_levels && num_entries_per_clk->num_dispclk_levels)
@@ -240,6 +250,10 @@ void dcn32_init_clocks(struct clk_mgr *clk_mgr_base) = khz_to_mhz_ceil(clk_mgr_base->ctx->dc->debug.min_dpp_clk_khz); } +for (i =0 ; i < num_levels; i++) +if (clk_mgr_base->bw_params->clk_table.entries[i].dppclk_mhz >1950 ) + clk_mgr_base->bw_params->clk_table.entries[i].dppclk_mhz =1950 ; +/* Get UCLK, update bounding box */ clk_mgr_base->funcs->get_memclk_states_from_smu (clk_mgr_base);
drivers/gpu/drm/amd/display/dc/clk_mgr/dcn35/dcn35_clk_mgr.c +1 -1
@@ -706,7 +706,7 @@ static void dcn35_clk_mgr_helper_populate_bw_params(struct clk_mgr_internal *clk clock_table->NumFclkLevelsEnabled; max_fclk =find_max_clk_value (clock_table->FclkClocks_Freq, num_fclk); - num_dcfclk = (clock_table->NumFclkLevelsEnabled >NUM_DCFCLK_DPM_LEVELS ) ?NUM_DCFCLK_DPM_LEVELS : + num_dcfclk = (clock_table->NumDcfClkLevelsEnabled >NUM_DCFCLK_DPM_LEVELS ) ?NUM_DCFCLK_DPM_LEVELS : clock_table->NumDcfClkLevelsEnabled;for (i =0 ; i < num_dcfclk; i++) {int j;
drivers/gpu/drm/amd/display/dc/core/dc.c +108 -19
31 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/core/dc_state.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +18 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_surface.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dc_stream.h +0 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dc_types.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_opp.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_opp.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_opp.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn201/dcn201_opp.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.c +32 -22
54 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_mpc.h +7 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_mpc.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_resource_helpers.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/dml2_translation_helper.c +16 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.c +20 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dml2/dml2_wrapper.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dce110/dce110_hwseq.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn10/dcn10_hwseq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn20/dcn20_hwseq.c +27 -26
53 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/hwss/dcn30/dcn30_hwseq.c +11 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn314/dcn314_hwseq.c +0 -41
41 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.c +30 -41
71 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_hwseq.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn32/dcn32_init.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/hwss/dcn35/dcn35_hwseq.c +0 -41
41 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/inc/hw/opp.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/hw/timing_generator.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/link.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/protocols/link_edp_panel_control.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/optc/dcn10/dcn10_optc.h +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/optc/dcn32/dcn32_optc.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/optc/dcn32/dcn32_optc.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn32/dcn32_resource.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/resource/dcn321/dcn321_resource.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/inc/dmub_cmd.h +8 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/info_packet/info_packet.c +5 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/power/power_helpers.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/modules/power/power_helpers.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/arcturus_ppt.c +12 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +11 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +18 -13
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +11 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +11 -7
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/bridge/lontium-lt8912b.c +11 -13
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/display/drm_dp_helper.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/drm_bridge.c +45 -1
46 lines not on this page · raw message
drivers/gpu/drm/exynos/exynos_drm_vidi.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_bios.c +40 -6
46 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_cursor.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_display_trace.h +3 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_display_types.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dpll_mgr.c +48 -28
76 lines not on this page · raw message
drivers/gpu/drm/i915/display/intel_dpll_mgr.h +4 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dsb.c +14 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_fb_pin.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_vrr.c +4 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_engine_pm.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gt/intel_execlists_submission.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/i915_vma.c +43 -7
50 lines not on this page · raw message
drivers/gpu/drm/imx/ipuv3/parallel-display.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/scheduler/sched_entity.c +9 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +11 -3
Lines of this file are not shown. View the raw message.
drivers/irqchip/irq-renesas-rzg2l.c +52 -15
67 lines not on this page · raw message
drivers/md/dm-raid.c +72 -21
93 lines not on this page · raw message
drivers/md/md.c +64 -18
82 lines not on this page · raw message
drivers/md/raid5.c +50 -8
58 lines not on this page · raw message
drivers/media/mc/mc-entity.c +69 -24
93 lines not on this page · raw message
drivers/media/platform/nxp/imx8-isi/imx8-isi-crossbar.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/nand_base.c +56 -29
85 lines not on this page · raw message
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_trace.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_trace.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/xilinx/ll_temac_main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c +5 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +24 -36
60 lines not on this page · raw message
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cyw/core.c +24 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwvid.h +18 -15
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/wcc/core.c +6 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/dbg.c +8 -7
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c +7 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/mac.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/rtw8821cu.c +26 -14
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware-ep.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-qcom.c +39 -2
41 lines not on this page · raw message
drivers/scsi/libsas/sas_expander.c +34 -17
51 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_init.c +65 -63
128 lines not on this page · raw message
drivers/scsi/qla2xxx/qla_iocb.c +44 -24
68 lines not on this page · raw message
drivers/staging/vc04_services/vchiq-mmal/mmal-vchiq.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/processor_thermal_device.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/int340x_thermal/processor_thermal_rapl.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/thermal/intel/x86_pkg_temp_thermal.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/thermal/mediatek/auxadc_thermal.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/usb/dwc2/core_intr.c +48 -24
72 lines not on this page · raw message
drivers/usb/dwc2/hcd.c +40 -9
49 lines not on this page · raw message
drivers/usb/typec/ucsi/ucsi.c +42 -4
46 lines not on this page · raw message
drivers/usb/typec/ucsi/ucsi_acpi.c +33 -42
75 lines not on this page · raw message
drivers/vfio/pci/vfio_pci_intrs.c +106 -70
176 lines not on this page · raw message
drivers/vfio/platform/vfio_platform_irq.c +72 -33
105 lines not on this page · raw message
fs/btrfs/extent_io.c +39 -22
61 lines not on this page · raw message
fs/btrfs/inode.c +30 -24
54 lines not on this page · raw message
fs/btrfs/ioctl.c +24 -34
58 lines not on this page · raw message
fs/btrfs/qgroup.c +56 -5
61 lines not on this page · raw message
fs/btrfs/volumes.c +58 -11
69 lines not on this page · raw message
fs/smb/server/smb2pdu.c +144 -84
228 lines not on this page · raw message
include/drm/drm_modeset_helper_vtables.h +2 -1
Lines of this file are not shown. View the raw message.
kernel/trace/ring_buffer.c +103 -58
161 lines not on this page · raw message
kernel/trace/trace.c +31 -12
43 lines not on this page · raw message
net/mac80211/vht.c +22 -24
46 lines not on this page · raw message
sound/pci/hda/tas2781_hda_i2c.c +47 -36
83 lines not on this page · raw message
tools/testing/selftests/lsm/lsm_get_self_attr_test.c +5 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/lsm/lsm_list_modules_test.c +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/lsm/lsm_set_self_attr_test.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/soft-dirty.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/split_huge_page_test.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/uffd-common.c +3 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/uffd-common.h +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mm/uffd-unit-tests.c +12 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/mqueue/setting new file +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/wireguard/qemu/arch/riscv32.config +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/wireguard/qemu/arch/riscv64.config +1 -0
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.