Linux 6.6.3
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.6.3 kernel.
All users of the 6.6 kernel series must upgrade.
The updated 6.6.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.6.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/admin-guide/kernel-parameters.txt | 7 Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml | 21 + Documentation/devicetree/bindings/serial/serial.yaml | 2 Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml | 38 - Documentation/i2c/busses/i2c-i801.rst | 1 Makefile | 2 arch/arm/include/asm/exception.h | 4 arch/arm64/Kconfig | 2 arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi | 46 +- arch/arm64/boot/dts/qcom/ipq5332.dtsi | 2 arch/arm64/boot/dts/qcom/ipq6018.dtsi | 4 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 arch/arm64/boot/dts/qcom/ipq9574.dtsi | 2 arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts | 28 + arch/arm64/kernel/module-plts.c | 6 arch/loongarch/include/asm/percpu.h | 10 arch/mips/mm/cache.c | 2 arch/parisc/Kconfig | 6 arch/parisc/include/asm/elf.h | 10 arch/parisc/include/asm/processor.h | 2 arch/parisc/include/uapi/asm/pdc.h | 1 arch/parisc/kernel/entry.S | 88 ++-- arch/parisc/kernel/head.S | 5 arch/parisc/kernel/sys_parisc.c | 2 arch/powerpc/perf/core-book3s.c | 5 arch/riscv/include/asm/asm-prototypes.h | 1 arch/riscv/include/asm/asm.h | 22 + arch/riscv/include/asm/hwprobe.h | 5 arch/riscv/include/asm/page.h | 4 arch/riscv/include/asm/thread_info.h | 3 arch/riscv/include/asm/vdso/processor.h | 2 arch/riscv/kernel/asm-offsets.c | 1 arch/riscv/kernel/entry.S | 72 --- arch/riscv/kernel/probes/simulate-insn.c | 2 arch/riscv/kernel/probes/uprobes.c | 6 arch/riscv/kernel/traps.c | 36 - arch/riscv/kernel/vdso/hwprobe.c | 2 arch/riscv/mm/Makefile | 1 arch/riscv/mm/cache-ops.c | 17 arch/riscv/mm/dma-noncoherent.c | 15 arch/riscv/mm/ptdump.c | 3 arch/s390/mm/gmap.c | 24 - arch/s390/mm/page-states.c | 6 arch/s390/mm/pgalloc.c | 1 arch/s390/mm/vmem.c | 8 arch/x86/crypto/sha1_ssse3_glue.c | 12 arch/x86/crypto/sha256_ssse3_glue.c | 12 arch/x86/include/asm/acpi.h | 14 arch/x86/include/asm/kvm-x86-ops.h | 1 arch/x86/include/asm/kvm_host.h | 1 arch/x86/include/asm/msr-index.h | 1 arch/x86/include/asm/numa.h | 7 arch/x86/include/asm/xen/hypervisor.h | 9 arch/x86/kernel/apic/msi.c | 8 arch/x86/kernel/cpu/bugs.c | 4 arch/x86/kernel/cpu/hygon.c | 8 arch/x86/kernel/signal_64.c | 6 arch/x86/kvm/hyperv.c | 10 arch/x86/kvm/lapic.c | 30 - arch/x86/kvm/vmx/vmx.c | 4 arch/x86/kvm/x86.c | 2 arch/x86/mm/numa.c | 7 arch/x86/pci/fixup.c | 59 ++ block/blk-mq.c | 75 +-- crypto/pcrypt.c | 4 drivers/acpi/acpi_fpdt.c | 45 +- drivers/acpi/apei/ghes.c | 23 + drivers/acpi/ec.c | 10 drivers/acpi/resource.c | 12 drivers/atm/iphase.c | 20 - drivers/base/dd.c | 2 drivers/base/regmap/regcache.c | 30 + drivers/block/virtio_blk.c | 4 drivers/bluetooth/btusb.c | 7 drivers/char/agp/parisc-agp.c | 16 drivers/clk/qcom/gcc-ipq6018.c | 6 drivers/clk/qcom/gcc-ipq8074.c | 6 drivers/clk/socfpga/stratix10-clk.h | 4 drivers/clk/visconti/pll.h | 4 drivers/clocksource/timer-atmel-tcb.c | 1 drivers/clocksource/timer-imx-gpt.c | 18 drivers/cpufreq/cpufreq_stats.c | 14 drivers/crypto/hisilicon/qm.c | 2 drivers/cxl/core/port.c | 34 - drivers/cxl/core/region.c | 23 - drivers/dma/stm32-mdma.c | 4 drivers/firmware/qcom_scm.c | 7 drivers/gpio/gpiolib-acpi.c | 20 + drivers/gpio/gpiolib-of.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 23 + drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c | 16 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 9 drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c | 7 drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 35 - drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c | 5 drivers/gpu/drm/amd/amdgpu/psp_v13_0.c | 5 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c | 6 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c | 6 drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c | 6 drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 13 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 24 - drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 29 - drivers/gpu/drm/amd/display/dc/core/dc.c | 78 +-- drivers/gpu/drm/amd/display/dc/core/dc_resource.c | 2 drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 4 drivers/gpu/drm/amd/display/dc/dc.h | 5 drivers/gpu/drm/amd/display/dc/dc_types.h | 1 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 3 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 10 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c | 108 +++++ drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h | 9 drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c | 2 drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h | 8 drivers/gpu/drm/amd/display/dc/link/link_detection.c | 3 drivers/gpu/drm/amd/display/dmub/dmub_srv.h | 22 - drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c | 50 +- drivers/gpu/drm/amd/include/pptable.h | 4 drivers/gpu/drm/amd/pm/amdgpu_pm.c | 8 drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h | 16 drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c | 4 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 2 drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h | 2 drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 4 drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c | 4 drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c | 10 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 9 drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c | 40 -- drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c | 9 drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c | 9 drivers/gpu/drm/bridge/ite-it66121.c | 4 drivers/gpu/drm/drm_edid.c | 18 drivers/gpu/drm/drm_lease.c | 4 drivers/gpu/drm/gma500/psb_drv.h | 1 drivers/gpu/drm/gma500/psb_irq.c | 5 drivers/gpu/drm/i915/display/intel_cdclk.c | 12 drivers/gpu/drm/i915/display/intel_dp.c | 2 drivers/gpu/drm/i915/display/intel_tc.c | 11 drivers/gpu/drm/i915/gem/i915_gem_context.c | 1 drivers/gpu/drm/i915/gt/intel_ggtt.c | 35 + drivers/gpu/drm/i915/gt/intel_rc6.c | 16 drivers/gpu/drm/i915/i915_perf.c | 15 drivers/gpu/drm/mediatek/mtk_dp.c | 6 drivers/gpu/drm/msm/dp/dp_panel.c | 21 - drivers/gpu/drm/panel/panel-arm-versatile.c | 2 drivers/gpu/drm/panel/panel-sitronix-st7703.c | 25 - drivers/gpu/drm/panel/panel-tpo-tpg110.c | 2 drivers/gpu/drm/qxl/qxl_display.c | 3 drivers/gpu/drm/radeon/radeon_connectors.c | 2 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 drivers/hid/hid-ids.h | 2 drivers/hid/hid-lenovo.c | 118 +++-- drivers/hid/hid-logitech-dj.c | 11 drivers/hid/hid-quirks.c | 1 drivers/i2c/busses/Kconfig | 1 drivers/i2c/busses/i2c-designware-master.c | 19 drivers/i2c/busses/i2c-i801.c | 22 - drivers/i2c/busses/i2c-pxa.c | 76 +++ drivers/i2c/busses/i2c-sun6i-p2wi.c | 5 drivers/i2c/i2c-core-base.c | 13 drivers/i2c/i2c-core.h | 2 drivers/i2c/i2c-dev.c | 4 drivers/i3c/master/i3c-master-cdns.c | 6 drivers/i3c/master/mipi-i3c-hci/dat_v1.c | 29 - drivers/i3c/master/mipi-i3c-hci/dma.c | 2 drivers/i3c/master/svc-i3c-master.c | 54 ++ drivers/iio/adc/stm32-adc-core.c | 9 drivers/infiniband/hw/hfi1/pcie.c | 9 drivers/iommu/iommufd/io_pagetable.c | 10 drivers/leds/trigger/ledtrig-netdev.c | 6 drivers/mcb/mcb-core.c | 1 drivers/mcb/mcb-parse.c | 2 drivers/md/dm-bufio.c | 87 +++- drivers/md/dm-crypt.c | 15 drivers/md/dm-verity-fec.c | 4 drivers/md/dm-verity-target.c | 23 - drivers/md/dm-verity.h | 2 drivers/md/md.c | 2 drivers/media/i2c/ccs/ccs-core.c | 2 drivers/media/i2c/ccs/ccs-quirk.h | 4 drivers/media/pci/cobalt/cobalt-driver.c | 11 drivers/media/platform/qcom/camss/camss-csid-gen2.c | 11 drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c | 2 drivers/media/platform/qcom/camss/camss-vfe-170.c | 22 - drivers/media/platform/qcom/camss/camss-vfe-480.c | 22 - drivers/media/platform/qcom/camss/camss-vfe.c | 5 drivers/media/platform/qcom/camss/camss.c | 12 drivers/media/platform/qcom/venus/hfi_msgs.c | 2 drivers/media/platform/qcom/venus/hfi_parser.c | 15 drivers/media/platform/qcom/venus/hfi_venus.c | 10 drivers/media/rc/imon.c | 6 drivers/media/rc/ir-sharp-decoder.c | 8 drivers/media/rc/lirc_dev.c | 6 drivers/media/test-drivers/vivid/vivid-rds-gen.c | 2 drivers/media/usb/gspca/cpia1.c | 3 drivers/mfd/intel-lpss-pci.c | 13 drivers/mfd/qcom-spmi-pmic.c | 101 +++-- drivers/misc/pci_endpoint_test.c | 4 drivers/mmc/core/block.c | 4 drivers/mmc/core/card.h | 4 drivers/mmc/core/mmc.c | 8 drivers/mmc/core/quirks.h | 7 drivers/mmc/host/meson-gx-mmc.c | 1 drivers/mmc/host/sdhci-pci-gli.c | 30 + drivers/mmc/host/sdhci_am654.c | 2 drivers/mmc/host/vub300.c | 1 drivers/mtd/chips/cfi_cmdset_0001.c | 20 - drivers/mtd/nand/raw/intel-nand-controller.c | 10 drivers/mtd/nand/raw/meson_nand.c | 3 drivers/mtd/nand/raw/tegra_nand.c | 4 drivers/net/bonding/bond_main.c | 6 drivers/net/dsa/lan9303_mdio.c | 4 drivers/net/ethernet/amd/pds_core/adminq.c | 2 drivers/net/ethernet/amd/pds_core/core.h | 2 drivers/net/ethernet/amd/pds_core/dev.c | 8 drivers/net/ethernet/amd/pds_core/devlink.c | 2 drivers/net/ethernet/atheros/atl1c/atl1c.h | 3 drivers/net/ethernet/atheros/atl1c/atl1c_main.c | 67 --- drivers/net/ethernet/cortina/gemini.c | 45 +- drivers/net/ethernet/cortina/gemini.h | 4 drivers/net/ethernet/engleder/tsnep.h | 2 drivers/net/ethernet/engleder/tsnep_main.c | 12 drivers/net/ethernet/google/gve/gve_main.c | 8 drivers/net/ethernet/google/gve/gve_rx.c | 4 drivers/net/ethernet/google/gve/gve_tx.c | 4 drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c | 9 drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 33 + drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c | 25 + drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h | 1 drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c | 7 drivers/net/ethernet/marvell/mvneta.c | 28 + drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c | 20 - drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c | 4 drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c | 30 - drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c | 13 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c | 12 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c | 60 +-- drivers/net/ethernet/mellanox/mlx5/core/en_tx.c | 4 drivers/net/ethernet/mellanox/mlx5/core/eq.c | 25 - drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 3 drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c | 42 -- drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c | 7 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c | 6 drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h | 3 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c | 115 ----- drivers/net/ethernet/realtek/r8169_main.c | 46 +- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 3 drivers/net/ethernet/ti/icssg/icssg_prueth.c | 15 drivers/net/ipvlan/ipvlan_core.c | 41 +- drivers/net/macvlan.c | 2 drivers/net/phy/phylink.c | 1 drivers/net/phy/sfp.c | 8 drivers/net/ppp/ppp_synctty.c | 6 drivers/net/wireless/ath/ath10k/debug.c | 2 drivers/net/wireless/ath/ath10k/snoc.c | 18 drivers/net/wireless/ath/ath11k/dp_rx.c | 8 drivers/net/wireless/ath/ath11k/wmi.c | 19 drivers/net/wireless/ath/ath12k/dp.c | 1 drivers/net/wireless/ath/ath12k/dp_rx.c | 33 + drivers/net/wireless/ath/ath12k/mhi.c | 11 drivers/net/wireless/ath/ath12k/peer.h | 3 drivers/net/wireless/ath/ath12k/wmi.c | 17 drivers/net/wireless/ath/ath9k/debug.c | 2 drivers/net/wireless/ath/ath9k/htc_drv_debug.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/link.c | 4 drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 14 drivers/net/wireless/mediatek/mt76/mt7915/main.c | 2 drivers/net/wireless/mediatek/mt76/mt7921/pci.c | 2 drivers/net/wireless/mediatek/mt76/mt792x_core.c | 2 drivers/net/wireless/mediatek/mt76/mt7996/main.c | 2 drivers/net/wireless/microchip/wilc1000/wlan.c | 2 drivers/net/wireless/purelifi/plfxlc/mac.c | 2 drivers/net/wireless/virtual/mac80211_hwsim.c | 2 drivers/of/address.c | 30 + drivers/parisc/power.c | 16 drivers/pci/controller/dwc/pci-exynos.c | 4 drivers/pci/controller/dwc/pci-keystone.c | 8 drivers/pci/controller/dwc/pcie-designware.c | 93 ++-- drivers/pci/controller/dwc/pcie-kirin.c | 4 drivers/pci/controller/dwc/pcie-qcom-ep.c | 17 drivers/pci/controller/dwc/pcie-tegra194.c | 9 drivers/pci/controller/pci-mvebu.c | 2 drivers/pci/pci-acpi.c | 2 drivers/pci/pci-sysfs.c | 10 drivers/pci/pci.c | 22 - drivers/pci/pcie/aer.c | 10 drivers/pci/pcie/aspm.c | 2 drivers/pci/probe.c | 6 drivers/pci/quirks.c | 53 ++ drivers/perf/arm_cspmu/arm_cspmu.c | 3 drivers/perf/riscv_pmu_sbi.c | 5 drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c | 131 ++++-- drivers/platform/chrome/cros_ec_proto_test.c | 1 drivers/platform/x86/thinkpad_acpi.c | 1 drivers/pmdomain/amlogic/meson-ee-pwrc.c | 2 drivers/pmdomain/bcm/bcm2835-power.c | 2 drivers/pmdomain/imx/gpc.c | 1 drivers/powercap/intel_rapl_common.c | 2 drivers/ptp/ptp_chardev.c | 3 drivers/ptp/ptp_clock.c | 5 drivers/ptp/ptp_private.h | 8 drivers/ptp/ptp_sysfs.c | 3 drivers/s390/crypto/ap_bus.c | 4 drivers/scsi/hisi_sas/hisi_sas_v3_hw.c | 13 drivers/scsi/ibmvscsi/ibmvfc.c | 124 ++++++ drivers/scsi/libfc/fc_lport.c | 6 drivers/scsi/megaraid/megaraid_sas_base.c | 4 drivers/scsi/mpt3sas/mpt3sas_base.c | 4 drivers/scsi/qla2xxx/qla_os.c | 12 drivers/soc/qcom/pmic_glink_altmode.c | 30 + drivers/soundwire/dmi-quirks.c | 2 drivers/spi/spi.c | 56 +- drivers/thermal/intel/intel_powerclamp.c | 2 drivers/thunderbolt/quirks.c | 3 drivers/tty/hvc/hvc_xen.c | 39 + drivers/tty/serial/meson_uart.c | 14 drivers/tty/sysrq.c | 3 drivers/tty/vcc.c | 16 drivers/ufs/core/ufs-mcq.c | 5 drivers/ufs/core/ufshcd.c | 3 drivers/ufs/host/ufs-qcom.c | 9 drivers/usb/dwc3/core.c | 160 ++++++-- drivers/usb/dwc3/core.h | 13 drivers/usb/gadget/function/f_ncm.c | 27 - drivers/usb/host/xhci-pci.c | 4 drivers/usb/host/xhci.c | 12 drivers/usb/typec/ucsi/ucsi_glink.c | 54 ++ drivers/vdpa/vdpa_sim/vdpa_sim_blk.c | 4 drivers/vhost/vdpa.c | 1 drivers/watchdog/sbsa_gwdt.c | 4 drivers/xen/events/events_base.c | 16 drivers/xen/pcpu.c | 22 + fs/9p/xattr.c | 5 fs/btrfs/block-group.c | 4 fs/btrfs/ctree.c | 109 ++--- fs/btrfs/ctree.h | 11 fs/btrfs/delalloc-space.c | 3 fs/btrfs/delayed-inode.c | 2 fs/btrfs/dev-replace.c | 2 fs/btrfs/dir-item.c | 8 fs/btrfs/disk-io.c | 13 fs/btrfs/disk-io.h | 3 fs/btrfs/extent-tree.c | 36 + fs/btrfs/file-item.c | 17 fs/btrfs/file.c | 34 - fs/btrfs/free-space-cache.c | 6 fs/btrfs/free-space-tree.c | 17 fs/btrfs/inode-item.c | 16 fs/btrfs/inode.c | 17 fs/btrfs/ioctl.c | 4 fs/btrfs/qgroup.c | 14 fs/btrfs/relocation.c | 10 fs/btrfs/root-tree.c | 4 fs/btrfs/tests/extent-buffer-tests.c | 6 fs/btrfs/tests/inode-tests.c | 12 fs/btrfs/tree-log.c | 12 fs/btrfs/uuid-tree.c | 6 fs/btrfs/volumes.c | 10 fs/btrfs/xattr.c | 8 fs/exfat/namei.c | 29 + fs/ext4/acl.h | 5 fs/ext4/ext4.h | 3 fs/ext4/extents_status.c | 127 ++++-- fs/ext4/file.c | 169 +++----- fs/ext4/inode.c | 14 fs/ext4/mballoc.c | 39 - fs/ext4/resize.c | 23 - fs/ext4/super.c | 14 fs/f2fs/compress.c | 2 fs/f2fs/extent_cache.c | 53 +- fs/f2fs/file.c | 9 fs/f2fs/node.c | 18 fs/f2fs/xattr.c | 20 - fs/gfs2/inode.c | 14 fs/gfs2/ops_fstype.c | 4 fs/gfs2/quota.c | 11 fs/gfs2/super.c | 12 fs/hugetlbfs/inode.c | 4 fs/jbd2/recovery.c | 8 fs/jfs/jfs_dmap.c | 23 - fs/jfs/jfs_imap.c | 5 fs/nfs/nfs4proc.c | 12 fs/nfsd/nfs4state.c | 2 fs/nfsd/nfscache.c | 23 - fs/overlayfs/super.c | 2 fs/proc/proc_sysctl.c | 8 fs/quota/dquot.c | 14 fs/smb/client/cached_dir.c | 84 ++-- fs/smb/client/cifs_debug.c | 6 fs/smb/client/cifs_ioctl.h | 6 fs/smb/client/cifs_spnego.c | 4 fs/smb/client/cifsfs.c | 1 fs/smb/client/cifsglob.h | 12 fs/smb/client/cifspdu.h | 2 fs/smb/client/cifsproto.h | 9 fs/smb/client/connect.c | 17 fs/smb/client/dfs.c | 18 fs/smb/client/fs_context.h | 1 fs/smb/client/inode.c | 4 fs/smb/client/ioctl.c | 25 + fs/smb/client/namespace.c | 17 fs/smb/client/sess.c | 13 fs/smb/client/smb2misc.c | 2 fs/smb/client/smb2ops.c | 8 fs/smb/client/smb2transport.c | 5 fs/smb/client/transport.c | 11 fs/smb/client/xattr.c | 5 fs/smb/server/smb_common.c | 11 fs/smb/server/smbacl.c | 29 + fs/smb/server/vfs.c | 23 - fs/xfs/xfs_inode_item_recover.c | 32 - include/acpi/ghes.h | 4 include/linux/bpf.h | 8 include/linux/damon.h | 7 include/linux/ethtool.h | 4 include/linux/f2fs_fs.h | 1 include/linux/generic-radix-tree.h | 7 include/linux/irq.h | 26 - include/linux/lsm_hook_defs.h | 4 include/linux/mmc/card.h | 2 include/linux/msi.h | 6 include/linux/pci_ids.h | 2 include/linux/perf_event.h | 13 include/linux/preempt.h | 15 include/linux/pwm.h | 4 include/linux/socket.h | 1 include/linux/spi/spi.h | 1 include/linux/string.h | 40 ++ include/linux/sunrpc/clnt.h | 1 include/linux/sysctl.h | 6 include/linux/torture.h | 3 include/linux/workqueue.h | 46 +- include/media/ipu-bridge.h | 2 include/net/netfilter/nf_tables.h | 4 include/net/sock.h | 26 - include/net/tc_act/tc_ct.h | 9 include/sound/soc-acpi.h | 7 include/sound/soc-card.h | 37 + include/sound/soc-dai.h | 1 include/sound/soc.h | 11 include/sound/sof.h | 8 include/uapi/linux/prctl.h | 2 include/uapi/linux/vm_sockets.h | 17 include/video/sticore.h | 2 init/Makefile | 1 init/main.c | 4 io_uring/fdinfo.c | 9 io_uring/sqpoll.c | 12 kernel/audit_watch.c | 9 kernel/bpf/core.c | 6 kernel/bpf/verifier.c | 83 ++-- kernel/cgroup/cgroup.c | 12 kernel/cpu.c | 11 kernel/debug/debug_core.c | 3 kernel/dma/swiotlb.c | 28 - kernel/events/core.c | 17 kernel/events/ring_buffer.c | 6 kernel/irq/debugfs.c | 1 kernel/irq/generic-chip.c | 25 - kernel/irq/msi.c | 12 kernel/kexec.c | 2 kernel/locking/test-ww_mutex.c | 20 - kernel/padata.c | 2 kernel/power/snapshot.c | 16 kernel/rcu/srcutree.c | 10 kernel/rcu/tree.c | 21 + kernel/rcu/tree.h | 4 kernel/rcu/tree_stall.h | 20 - kernel/reboot.c | 1 kernel/sched/core.c | 5 kernel/smp.c | 13 kernel/torture.c | 58 -- kernel/trace/trace_events_synth.c | 2 kernel/trace/trace_fprobe.c | 9 kernel/watch_queue.c | 2 kernel/watchdog.c | 7 kernel/workqueue.c | 20 - lib/generic-radix-tree.c | 17 mm/cma.c | 2 mm/damon/core.c | 12 mm/damon/lru_sort.c | 4 mm/damon/ops-common.c | 5 mm/damon/sysfs-schemes.c | 5 mm/damon/sysfs.c | 89 ++-- mm/huge_memory.c | 16 mm/hugetlb.c | 2 mm/memcontrol.c | 3 mm/memory_hotplug.c | 2 mm/util.c | 10 net/9p/client.c | 2 net/9p/trans_fd.c | 13 net/bluetooth/hci_conn.c | 6 net/bluetooth/hci_sysfs.c | 23 - net/bridge/netfilter/nf_conntrack_bridge.c | 2 net/core/sock.c | 2 net/ipv4/inet_hashtables.c | 2 net/ipv4/tcp_output.c | 2 net/mac80211/cfg.c | 4 net/mptcp/pm_netlink.c | 5 net/mptcp/protocol.c | 4 net/mptcp/sockopt.c | 3 net/ncsi/ncsi-aen.c | 5 net/netfilter/nf_tables_api.c | 58 +- net/netfilter/nft_byteorder.c | 5 net/netfilter/nft_meta.c | 2 net/sched/act_ct.c | 3 net/sunrpc/clnt.c | 7 net/sunrpc/rpcb_clnt.c | 4 net/sunrpc/xprtrdma/svc_rdma_recvfrom.c | 3 net/tipc/netlink_compat.c | 1 net/unix/af_unix.c | 9 net/vmw_vsock/af_vsock.c | 6 samples/bpf/syscall_tp_user.c | 45 +- scripts/Makefile.vmlinux | 1 scripts/gcc-plugins/randomize_layout_plugin.c | 21 - scripts/gdb/linux/constants.py.in | 1 scripts/gdb/linux/vmalloc.py | 8 security/apparmor/apparmorfs.c | 11 security/apparmor/audit.c | 71 +-- security/apparmor/capability.c | 29 - security/apparmor/domain.c | 97 +++- security/apparmor/file.c | 199 ++++++---- security/apparmor/include/audit.h | 37 + security/apparmor/include/capability.h | 3 security/apparmor/include/file.h | 17 security/apparmor/include/ipc.h | 4 security/apparmor/include/mount.h | 26 - security/apparmor/include/net.h | 19 security/apparmor/include/perms.h | 4 security/apparmor/include/policy.h | 9 security/apparmor/include/resource.h | 3 security/apparmor/include/task.h | 3 security/apparmor/ipc.c | 49 +- security/apparmor/lib.c | 50 +- security/apparmor/lsm.c | 113 +++-- security/apparmor/mount.c | 166 +++++--- security/apparmor/net.c | 61 +-- security/apparmor/policy.c | 73 ++- security/apparmor/policy_unpack.c | 29 - security/apparmor/resource.c | 54 +- security/apparmor/task.c | 58 +- security/integrity/Kconfig | 2 security/integrity/iint.c | 48 +- security/integrity/ima/ima_api.c | 5 security/integrity/ima/ima_main.c | 16 security/integrity/integrity.h | 2 security/keys/trusted-keys/trusted_core.c | 20 - security/keys/trusted-keys/trusted_tee.c | 64 +-- sound/core/info.c | 21 - sound/hda/hdac_stream.c | 6 sound/pci/hda/patch_realtek.c | 26 - sound/soc/codecs/cs35l56.c | 11 sound/soc/codecs/lpass-wsa-macro.c | 3 sound/soc/codecs/wsa883x.c | 7 sound/soc/intel/boards/sof_sdw.c | 6 sound/soc/intel/common/soc-acpi-intel-cht-match.c | 43 ++ sound/soc/mediatek/mt8188/mt8188-mt6359.c | 21 + sound/soc/soc-dai.c | 7 sound/soc/soc-pcm.c | 12 sound/soc/sof/ipc4.c | 3 sound/soc/sof/sof-audio.c | 7 sound/soc/sof/sof-pci-dev.c | 8 sound/soc/ti/omap-mcbsp.c | 6 tools/include/uapi/linux/prctl.h | 2 tools/perf/util/intel-pt.c | 2 tools/power/x86/turbostat/turbostat.c | 3 tools/testing/cxl/test/cxl.c | 2 tools/testing/selftests/bpf/progs/verifier_loops1.c | 9 tools/testing/selftests/bpf/verifier/calls.c | 6 tools/testing/selftests/bpf/verifier/ld_imm64.c | 8 tools/testing/selftests/clone3/clone3.c | 7 tools/testing/selftests/efivarfs/create-read.c | 2 tools/testing/selftests/lkdtm/config | 1 tools/testing/selftests/lkdtm/tests.txt | 2 tools/testing/selftests/net/mptcp/mptcp_join.sh | 2 tools/testing/selftests/resctrl/Makefile | 2 tools/testing/selftests/resctrl/cache.c | 5 tools/testing/selftests/resctrl/cat_test.c | 21 - tools/testing/selftests/resctrl/cmt_test.c | 37 + tools/testing/selftests/resctrl/mba_test.c | 6 tools/testing/selftests/resctrl/mbm_test.c | 9 tools/testing/selftests/resctrl/resctrl.h | 23 - tools/testing/selftests/resctrl/resctrl_tests.c | 132 +++--- tools/testing/selftests/resctrl/resctrl_val.c | 36 + tools/testing/selftests/resctrl/resctrlfs.c | 69 +-- 591 files changed, 6024 insertions(+), 3334 deletions(-)
Adrian Hunter (1):
perf intel-pt: Fix async branch flags
Ajay Singh (1):
wifi: wilc1000: use vmm_table as array in wilc struct
Al Viro (1):
gfs2: fix an oops in gfs2_permission
Alain Volmat (1):
dmaengine: stm32-mdma: correct desc prep when channel running
Alex Deucher (4):
drm/amdgpu/smu13: drop compute workload workaround drm/amdgpu: don't use pci_is_thunderbolt_attached() drm/amdgpu: add a retry for IP discovery init drm/amdgpu: don't use ATRM for external devices
Alex Spataru (1):
ALSA: hda/realtek: Add quirk for ASUS UX7602ZM
Alexander Sverdlin (1):
net: dsa: lan9303: consequently nested-lock physical MDIO
Alexandre Ghiti (1):
drivers: perf: Check find_first_bit() return value
Alvin Lee (2):
drm/amd/display: Blank phantom OTG before enabling drm/amd/display: Don't lock phantom pipe on disabling
Amir Goldstein (1):
ima: annotate iint mutex to avoid lockdep false positive warnings
Anastasia Belova (1):
cifs: spnego: add ';' in HOST_KEY_LEN
Andreas Gruenbacher (2):
gfs2: Silence "suspicious RCU usage in gfs2_permission" warning
gfs2: don't withdraw if init_threads() got interrupted
Andrew Jones (1):
RISC-V: hwprobe: Fix vDSO SIGSEGV
Andrew Lunn (1):
net: ethtool: Fix documentation of ethtool_sprintf()
Andrey Konovalov (1):
media: qcom: camss: Fix csid-gen2 for test pattern generator
Andrii Nakryiko (4):
bpf: Ensure proper register state printing for cond jumps
bpf: handle ldimm64 properly in check_cfg()
bpf: fix precision backtracking instruction iteration
bpf: fix control-flow graph checking in privileged mode
Arnd Bergmann (1):
drm/i915/mtl: avoid stringop-overflow warning
Arseniy Krasnov (1):
vsock: read from socket's error queue
Axel Lin (1):
i2c: sun6i-p2wi: Prevent potential division by zero
Baochen Qiang (2):
wifi: ath12k: fix possible out-of-bound read in ath12k_htt_pull_ppdu_stats()
wifi: ath12k: fix possible out-of-bound write in ath12k_wmi_ext_hal_reg_caps()
Baokun Li (1):
ext4: fix race between writepages and remount
Bartosz Pawlowski (2):
PCI: Extract ATS disabling to a helper function
PCI: Disable ATS for specific Intel IPU E2000 devices
Baruch Siach (2):
net: stmmac: fix rx budget limit check
net: stmmac: avoid rx queue overrun
Bas Nieuwenhuizen (1):
drm/amd/pm: Handle non-terminated overdrive commands.
Basavaraj Natikar (1):
xhci: Enable RPM on controllers that support low-power states
Bean Huo (1):
mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A
Ben Wolsieffer (1):
scripts/gdb/vmalloc: disable on no-MMU
Benjamin Bara (2):
kernel/reboot: emergency_restart: Set correct system_state
i2c: core: Run atomic i2c xfer when !preemptible
Biju Das (1):
dt-bindings: timer: renesas,rz-mtu3: Fix overflow/underflow interrupt names
Billy Tsai (1):
i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data.
Bjorn Helgaas (1):
PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk
Bob Peterson (1):
gfs2: ignore negated quota changes
Brian Foster (1):
ext4: fix racy may inline data check in dio write
Brian Geffon (2):
PM: hibernate: Use __get_safe_page() rather than touching the list
PM: hibernate: Clean up sync_read handling in snapshot_write_next()
Bryan O'Donoghue (7):
media: qcom: camss: Fix pm_domain_on sequence in probe
media: qcom: camss: Fix vfe_get() error jump
media: qcom: camss: Fix VFE-17x vfe_disable_output()
media: qcom: camss: Fix VFE-480 vfe_disable_output()
media: qcom: camss: Fix missing vfe_lite clocks check
media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3
media: qcom: camss: Fix invalid clock enable bit disjunction
Catalin Marinas (1):
rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects
Cezary Rojewski (1):
ALSA: hda: Fix possible null-ptr-deref when assigning a stream
Chaitanya Kumar Borah (1):
drm/i915/mtl: Support HBR3 rate with C10 phy and eDP in MTL
Chandradeep Dey (1):
ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC
Chandrakanth patil (1):
scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers
Chen Yu (1):
tools/power/turbostat: Enable the C-state Pre-wake printing
Christian König (3):
drm/amdgpu: fix error handling in amdgpu_vm_init drm/amdgpu: fix error handling in amdgpu_bo_list_get() drm/amdgpu: lower CS errors to debug severity
Christian Marangi (3):
net: sfp: add quirk for Fiberstone GPON-ONU-34-20BI
cpufreq: stats: Fix buffer overflow detection in trans_stats()
leds: trigger: netdev: Move size check in set_device_name
Christoph Hellwig (2):
riscv: split cache ops out of dma-noncoherent.c
blk-mq: make sure active queue usage is held for bio_integrity_prep()
Chuck Lever (2):
svcrdma: Drop connection after an RDMA Read error
NFSD: Update nfsd_cache_append() to use xdr_stream
ChunHao Lin (2):
r8169: fix network lost after resume on DASH systems
r8169: add handling DASH when DASH is disabled
Dan Carpenter (5):
pwm: Fix double shift bug
SUNRPC: Add an IS_ERR() check back to where it was
vhost-vdpa: fix use after free in vhost_vdpa_probe()
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
mmc: vub300: fix an error code
Dan Williams (1):
cxl/port: Fix delete_endpoint() vs parent unregistration race
Darren Hart (1):
sbsa_gwdt: Calculate timeout with 64-bit math
Dave Chinner (1):
xfs: recovery should not clear di_flushiter unconditionally
David (Ming Qiang) Wu (1):
drm/amdgpu: not to save bo in the case of RAS err_event_athub
David Arcari (1):
thermal: intel: powerclamp: fix mismatch in get function for max_idle
David Howells (1):
cifs: Fix encryption of cleared, but unset rq_iter data buffers
David Woodhouse (3):
hvc/xen: fix console unplug
hvc/xen: fix error path in xen_hvc_init() to always register frontend driver hvc/xen: fix event channel handling for secondary consoles
Deepak Gupta (1):
riscv: VMAP_STACK overflow detection thread-safe
Denis Arefev (1):
srcu: Fix srcu_struct node grpmask overflow on 64-bit systems
Dmitry Antipov (5):
wifi: plfxlc: fix clang-specific fortify warning
wifi: mac80211_hwsim: fix clang-specific fortify warning
wifi: ath9k: fix clang-specific fortify warnings
wifi: ath10k: fix clang-specific fortify warning
wifi: mt76: fix clang-specific fortify warnings
Dominique Martinet (1):
9p: v9fs_listxattr: fix %s null argument warning
Douglas Anderson (2):
wifi: ath10k: Don't touch the CE interrupt registers after power up
kgdb: Flush console before entering kgdb on panic
Dust Li (1):
net/mlx5e: fix double free of encap_header
Ekaterina Esina (1):
cifs: fix check of rc in function generate_smb3signingkey
Eric Biggers (1):
quota: explicitly forbid quota files from being encrypted
Eric Dumazet (6):
net: annotate data-races around sk->sk_tx_queue_mapping
net: annotate data-races around sk->sk_dst_pending_confirm
ipvlan: add ipvlan_route_v6_outbound() helper
ptp: annotate data-race around q->head and q->tail
bonding: stop the device in bond_setup_by_slave()
af_unix: fix use-after-free in unix_stream_read_actor()
Eymen Yigit (1):
ALSA: hda/realtek: Enable Mute LED on HP 255 G8
Fangzhi Zuo (1):
drm/amd/display: Fix DSC not Enabled on Direct MST Sink
Felix Kuehling (1):
drm/amdgpu: Fix possible null pointer dereference
Filipe Manana (1):
btrfs: abort transaction on generation mismatch when marking eb as dirty
Finn Thain (1):
sched/core: Optimize in_task() and in_interrupt() a bit
Florent Revest (1):
mm: make PR_MDWE_REFUSE_EXEC_GAIN an unsigned long
Frank Li (6):
i3c: master: svc: fix race condition in ibi work thread
i3c: master: svc: fix wrong data return when IBI happen during start frame
i3c: master: svc: fix ibi may not return mandatory data byte
i3c: master: svc: fix check wrong status register in irq handler
i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen
i3c: master: svc: fix random hot join failure since timeout error
Frederic Weisbecker (2):
srcu: Only accelerate on enqueue time
workqueue: Provide one lock class key per work_on_cpu() callsite
Gabe Teeger (1):
drm/amd/display: Add Null check for DPP resource
Gaosheng Cui (4):
apparmor: Fix kernel-doc warnings in apparmor/audit.c
apparmor: Fix kernel-doc warnings in apparmor/lib.c
apparmor: Fix kernel-doc warnings in apparmor/resource.c
apparmor: Fix kernel-doc warnings in apparmor/policy.c
Gavin Li (1):
net/mlx5e: fix double free of encap_header in update funcs
Geliang Tang (1):
mptcp: add validity check for sending RM_ADDR
Gerhard Engleder (1):
tsnep: Fix tsnep_request_irq() format-overflow warning
Greg Kroah-Hartman (1):
Linux 6.6.3
Gregory Greenman (1):
wifi: iwlwifi: mvm: fix size check for fw_link_id
Guan Wentao (1):
Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE
Gustavo A. R. Silva (2):
clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data
clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider
Haitao Shan (1):
KVM: x86: Fix lapic timer interrupt lost after loading a snapshot.
Hans Verkuil (2):
media: vivid: avoid integer overflow
media: ipu-bridge: increase sensor_name size
Hans de Goede (2):
gpiolib: acpi: Add a ignore interrupt quirk for Peaq C1010
ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk
Hao Jia (1):
sched/core: Fix RQCF_ACT_SKIP leak
Hao Sun (1):
bpf: Fix check_stack_write_fixed_off() to correctly spill imm
Harald Freudenberger (1):
s390/ap: fix AP bus crash on early config change callback invocation
Hardik Gajjar (1):
usb: gadget: f_ncm: Always set current gadget in ncm_bind()
Harish Kasiviswanathan (1):
drm/amdkfd: ratelimited SQ interrupt messages
Harshit Mogalapalli (1):
i915/perf: Fix NULL deref bugs with drm_dbg() calls
Harshitha Prem (1):
wifi: ath12k: Ignore fragments from uninitialized peer in dp
Heiko Carstens (3):
s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc() s390/mm: add missing arch_set_page_dat() call to gmap allocations s390/cmma: fix detection of DAT pages
Heiner Kallweit (3):
PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common()
i2c: i801: fix potential race in i801_block_transaction_byte_by_byte Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E"
Helge Deller (8):
fbdev: stifb: Make the STI next font pointer a 32-bit signed offset parisc/agp: Use 64-bit LE values in SBA IOMMU PDIR table parisc/pdc: Add width field to struct pdc_model parisc/power: Add power soft-off when running on qemu
parisc: Prevent booting 64-bit kernels on PA1.x machines parisc/pgtable: Do not drop upper 5 address bits of physical address parisc/power: Fix power soft-off when running on qemu
parisc: fix mmap_base calculation when stack grows upwards
Herve Codina (2):
of: address: Fix address translation when address-size is greater than 2 genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware
Hyeongtak Ji (1):
mm/damon/core.c: avoid unintentional filtering out of schemes
Ilkka Koskinen (1):
perf: arm_cspmu: Reject events meant for other PMUs
Ilpo Järvinen (17):
RDMA/hfi1: Use FIELD_GET() to extract Link Width
PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields
PCI: mvebu: Use FIELD_PREP() with Link Width
atm: iphase: Do PCI error checks on own line
PCI: Do error check on own line to split long "if" conditions
PCI: Use FIELD_GET() to extract Link Width
media: cobalt: Use FIELD_GET() to extract Link Width selftests/resctrl: Fix uninitialized .sa_flags
selftests/resctrl: Remove duplicate feature check from CMT test selftests/resctrl: Move _GNU_SOURCE define into Makefile selftests/resctrl: Refactor feature check to use resource and feature name selftests/resctrl: Fix feature checks
selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests selftests/resctrl: Remove bw_report and bm_type from main() selftests/resctrl: Simplify span lifetime
selftests/resctrl: Make benchmark command const and build it with pointers selftests/resctrl: Extend signal handler coverage to unmount on receiving signal
Ingo Rohloff (1):
wifi: mt76: mt7921e: Support MT7992 IP in Xiaomi Redmibook 15 Pro (2023)
Itamar Gozlan (1):
Revert "net/mlx5: DR, Supporting inline WQE when possible"
Jacky Bai (1):
clocksource/drivers/timer-imx-gpt: Fix potential memory leak
Jaegeuk Kim (3):
f2fs: do not return EFSCORRUPTED, but try to run online repair
f2fs: set the default compress_level on ioctl
f2fs: split initial and dynamic conditions for extent_cache
Jamie Lentin (1):
hid: lenovo: Resend all settings on reset_resume for compact keyboards
Jan Kara (1):
ext4: properly sync file size update after O_SYNC direct IO
Jan Kiszka (2):
net: ti: icssg-prueth: Add missing icss_iep_put to error path
net: ti: icssg-prueth: Fix error cleanup on failing pruss_request_mem_region
Jani Nikula (4):
drm/msm/dp: skip validity check for DP CTS EDID checksum
drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection
drm/mediatek/dp: fix memory leak on ->get_edid callback error path
drm: bridge: it66121: ->get_edid callback must not return err pointersJarkko Nikula (3):
mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs
i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler
i2c: i801: Add support for Intel Birch Stream SoC
Jarkko Sakkinen (1):
KEYS: trusted: Rollback init_trusted() consistently
Jens Axboe (1):
io_uring/fdinfo: remove need for sqpoll lock for thread/pid retrieval
Jesse Zhang (1):
drm/amdkfd: Fix shift out-of-bounds issue
Jian Shen (2):
net: hns3: fix add VLAN fail issue
net: hns3: fix incorrect capability bit display for copper port
Jianbo Liu (1):
net/mlx5e: Don't modify the peer sent-to-vport rules for IPSec offload
Jijie Shao (2):
net: hns3: fix VF reset fail issue
net: hns3: fix VF wrong speed and duplex issue
Jim Harris (2):
cxl/region: Do not try to cleanup after cxl_region_setup_targets() fails cxl/region: Fix x1 root-decoder granularity calculations
Jinghao Jia (2):
samples/bpf: syscall_tp_user: Rename num_progs into nr_tests samples/bpf: syscall_tp_user: Fix array out-of-bound access
Jiri Kosina (2):
HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W Revert "HID: logitech-dj: Add support for a new lightspeed receiver iteration"
Joel Fernandes (Google) (2):
rcu/tree: Defer setting of jiffies during stall reset
rcutorture: Fix stuttering races and other issues
Johan Hovold (8):
wifi: ath11k: fix temperature event locking
wifi: ath11k: fix dfs radar event locking
wifi: ath11k: fix htt pktlog locking
wifi: ath11k: fix gtk offload status event locking
wifi: ath12k: fix htt mlo-offset event locking
wifi: ath12k: fix dfs-radar and temperature event locking
mfd: qcom-spmi-pmic: Fix reference leaks in revid helper
mfd: qcom-spmi-pmic: Fix revid implementation
Johannes Weiner (1):
sched: psi: fix unprivileged polling against cgroups
John Clark (1):
arm64: dts: rockchip: Add NanoPC T6 PCIe e-key support
John David Anglin (1):
parisc: Add nop instructions after TLB inserts
John Johansen (4):
apparmor: combine common_audit_data and apparmor_audit_data
apparmor: rename audit_data->label to audit_data->subj_label
apparmor: pass cred through to audit info.
apparmor: Fix regression in mount mediation
John Stultz (1):
locking/ww_mutex/test: Fix potential workqueue corruption
Johnathan Mantey (1):
Revert ncsi: Propagate carrier gain/loss events to the NCSI controller
Jonathan Denose (1):
ACPI: EC: Add quirk for HP 250 G7 Notebook PC
Josef Bacik (1):
btrfs: don't arbitrarily slow down delalloc if we're committing
Josh Poimboeuf (2):
x86/retpoline: Make sure there are no unconverted return thunks due to KCSAN x86/srso: Move retbleed IBPB check into existing 'has_microcode' code block
Joshua Yeong (1):
i3c: master: cdns: Fix reading status register
Juergen Gross (2):
xen/events: avoid using info_for_irq() in xen_send_IPI_one() xen/events: fix delayed eoi list handling
Juntong Deng (3):
fs/jfs: Add check for negative db_l2nbperpage fs/jfs: Add validity check for db_maxag and db_agpref
gfs2: Fix slab-use-after-free in gfs2_qd_dealloc
Kailang Yang (1):
ALSA: hda/realtek - Add Dell ALC295 to pin fall back table
Kathiravan Thirumoorthy (3):
clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks
clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks
firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit
Kees Cook (2):
gcc-plugins: randstruct: Only warn about true flexible arrays
randstruct: Fix gcc-plugin performance mode to stay in group
Kemeng Shi (4):
ext4: correct offset of gdb backup in non meta_bg group to update_backups
ext4: correct return value of ext4_convert_meta_bg
ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks
ext4: add missed brelse in update_backups
Kent Overstreet (1):
lib/generic-radix-tree.c: Don't overflow in peek()
Klaus Kudielka (1):
net: phylink: initialize carrier state at creation
Koichiro Den (2):
x86/apic/msi: Fix misconfigured non-maskable MSI quirk
iommufd: Fix missing update of domains_itree after splitting iopt_area
Konrad Dybcio (3):
dt-bindings: phy: qcom,snps-eusb2-repeater: Add magic tuning overrides
phy: qualcomm: phy-qcom-eusb2-repeater: Use regmap_fields
phy: qualcomm: phy-qcom-eusb2-repeater: Zero out untouched tuning regs
Krister Johansen (2):
proc: sysctl: prevent aliased sysctls from getting passed to init
watchdog: move softlockup_panic back to early_param
Krzysztof Kozlowski (2):
dt-bindings: serial: fix regex pattern for matching serial node children
ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix
Kumar Kartikeya Dwivedi (1):
bpf: Detect IP == ksym.end as part of BPF program
Kunwu Chan (1):
drm/i915: Fix potential spectre vulnerability
Laurentiu Tudor (1):
arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size
Lewis Huang (1):
drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox
Lin.Cao (1):
drm/amd: check num of link levels when update pcie param
Linkui Xiao (1):
netfilter: nf_conntrack_bridge: initialize err to 0
Linus Walleij (5):
gpiolib: of: Add quirk for mt2701-cs42448 ASoC sound
net: ethernet: cortina: Fix max RX frame define
net: ethernet: cortina: Handle large frames
net: ethernet: cortina: Fix MTU max setting
mtd: cfi_cmdset_0001: Byte swap OTP info
Longfang Liu (1):
crypto: hisilicon/qm - prevent soft lockup in receive loop
Lu Hongfei (1):
soc: qcom: pmic: Fix resource leaks in a device_for_each_child_node() loop
Lu Jialin (1):
crypto: pcrypt - Fix hungtask for PADATA_RESET
Lukas Wunner (2):
PCI/sysfs: Protect driver's D3cold preference from user space
PCI: Lengthen reset delay for VideoPropulsion Torrent QN16e card
Ma Jun (1):
drm/amd/pm: Fix error of MACO flag setting code
Ma Ke (5):
wifi: ath12k: mhi: fix potential memory leak in ath12k_mhi_register() drm/panel: fix a possible null pointer dereference drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference drm/radeon: fix a possible null pointer dereference drm/amdgpu/vkms: fix a possible null pointer dereference
Maciej S. Szmigiero (1):
KVM: x86: Ignore MSR_AMD64_TW_CFG access
Maher Sanalla (1):
net/mlx5: Free used cpus mask when an IRQ is released
Mahmoud Adam (1):
nfsd: fix file memleak on client_opens_release
Manas Ghandat (2):
jfs: fix array-index-out-of-bounds in dbFindLeaf
jfs: fix array-index-out-of-bounds in diAlloc
Manivannan Sadhasivam (2):
scsi: ufs: qcom: Update PHY settings only when scaling to higher gears
PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers
Marco Elver (1):
9p/trans_fd: Annotate data-racy writes to file::f_flags
Maria Yu (1):
arm64: module: Fix PLT counting when CONFIG_RANDOMIZE_BASE=n
Mario Limonciello (6):
drm/amd: Update update_pcie_parameters functions to use uint8_t arguments drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7
drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga drm/amd: Disable PP_PCIE_DPM_MASK when dynamic speed switching not supported x86/PCI: Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4 drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer()
Marios Makassikis (1):
ksmbd: fix recursive locking in vfs helpers
Mark Brown (1):
regmap: Ensure range selector registers are updated after cache sync
Mark Hasemeyer (1):
spi: Fix null dereference on suspend
Masami Hiramatsu (Google) (1):
tracing: fprobe-event: Fix to check tracepoint event and return
Masum Reza (1):
Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables
Matus Malych (1):
ALSA: hda/realtek: Enable Mute LED on HP 255 G10
Max Kellermann (1):
ext4: apply umask if ACL support is disabled
Maíra Canal (1):
pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable
Michal Suchanek (1):
integrity: powerpc: Do not select CA_MACHINE_KEYRING
Mika Westerberg (1):
thunderbolt: Apply USB 3.x bandwidth quirk only in software connection manager
Mike Rapoport (IBM) (1):
x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size
Mikhail Khvainitski (1):
HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround
Mikulas Patocka (3):
dm crypt: account large pages in cc->n_allocated_pages
dm-bufio: fix no-sleep mode
dm-verity: don't use blocking calls from tasklets
Mimi Zohar (1):
ima: detect changes to the backing overlay file
Minda Chen (1):
riscv: Using TOOLCHAIN_HAS_ZIHINTPAUSE marco replace zihintpause
Miri Korenblit (1):
wifi: iwlwifi: Use FW rate for non-data frames
Muhammad Ahmed (1):
drm/amd/display: enable dsc_clk even if dsc_pg disabled
Muhammad Usama Anjum (1):
tty/sysrq: replace smp_processor_id() with get_cpu()
Nam Cao (3):
riscv: provide riscv-specific is_trap_insn()
riscv: put interrupt entries into .irqentry.text
riscv: kprobes: allow writing to x0
Namjae Jeon (2):
ksmbd: handle malformed smb1 message
ksmbd: fix slab out of bounds write in smb_inherit_dacl()
Naohiro Aota (1):
btrfs: zoned: wait for data BG to be finished on direct IO allocation
Naomi Chu (1):
scsi: ufs: core: Expand MCQ queue slot to DeviceQueueDepth + 1
Nathan Chancellor (2):
arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer
LoongArch: Mark __percpu functions as always inline
Neil Armstrong (1):
usb: ucsi: glink: use the connector orientation GPIO to provide switch events
Nicholas Kazlauskas (1):
drm/amd/display: Guard against invalid RPTR/WPTR being set
Nicholas Piggin (1):
powerpc/perf: Fix disabling BHRB and instruction sampling
Nicolas Saenz Julienne (1):
KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space
Nirmoy Das (2):
drm/i915/tc: Fix -Wformat-truncation in intel_tc_port_init drm/i915: Flush WC GGTT only on required platforms
Nitin Yadav (1):
mmc: sdhci_am654: fix start loop index for TAP value parsing
Ojaswin Mujoo (1):
ext4: mark buffer new if it is unwritten to avoid stale data exposure
Olga Kornievskaia (2):
NFSv4.1: fix handling NFS4ERR_DELAY when testing for session trunking NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO
Olli Asikainen (1):
platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e
Ondrej Jirman (1):
drm/panel: st7703: Pick different reset sequence
Ondrej Mosnacek (2):
lsm: fix default return value for vm_enough_memory
lsm: fix default return value for inode_getsecctx
Pablo Neira Ayuso (3):
netfilter: nf_tables: bogus ENOENT when destroying element which does not exist
netfilter: nf_tables: remove catchall element in GC sync path
netfilter: nf_tables: split async and sync catchall in two functions
Paolo Abeni (3):
mptcp: deal with large GSO size
mptcp: fix setsockopt(IP_TOS) subflow locking
selftests: mptcp: fix fastclose with csum failure
Paul E. McKenney (1):
torture: Make torture_hrtimeout_ns() take an hrtimer mode parameter
Paul Hsieh (1):
drm/amd/display: Clear dpcd_sink_ext_caps if not set
Paul Moore (2):
audit: don't take task_lock() in audit_exe_compare() code path
audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare()
Paulo Alcantara (4):
smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
smb: client: fix use-after-free in smb2_query_info_compound()
smb: client: fix potential deadlock when releasing mids
smb: client: fix mount when dns_resolver key is not available
Pavel Krasavin (1):
tty: serial: meson: fix hard LOCKUP on crtscts mode
Pengfei Li (1):
pmdomain: imx: Make imx pgc power domain also set the fwnode
Peter Wang (1):
scsi: ufs: core: Fix racing issue between ufshcd_mcq_abort() and ISR
Peter Zijlstra (1):
perf/core: Fix cpuctx refcounting
Petr Tesarik (2):
swiotlb: do not free decrypted pages if dynamic
swiotlb: fix out-of-bounds TLB allocations with CONFIG_SWIOTLB_DYNAMIC
Philipp Stanner (6):
string.h: add array-wrappers for (v)memdup_user()
kernel: kexec: copy user-array safely
kernel: watch_queue: copy user-array safely drm_lease.c: copy user-array safely
drm: vmwgfx_surface.c: copy user-array safely
i2c: dev: copy userspace array safely
Pierre-Louis Bossart (1):
soundwire: dmi-quirks: update HP Omen match
Ping-Ke Shih (1):
wifi: mac80211: don't return unset power in ieee80211_get_tx_power()
Pu Wen (1):
x86/cpu/hygon: Fix the CPU topology evaluation for real
Qu Huang (1):
drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL
Quinn Tran (1):
scsi: qla2xxx: Fix system crash due to bad pointer access
Rahul Rameshbabu (7):
net/mlx5: Decouple PHC .adjtime and .adjphase implementations
net/mlx5e: Avoid referencing skb after free-ing in drop path of mlx5e_sq_xmit_wqe net/mlx5e: Track xmit submission to PTP WQ after populating metadata map net/mlx5e: Update doorbell for port timestamping CQ before the software counter net/mlx5: Increase size of irq name buffer
net/mlx5e: Check return value of snprintf writing to fw_version buffer net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors
Rajeshwar R Shinde (1):
media: gspca: cpia1: shift-out-of-bounds in set_flicker
Raju Lakkaraju (1):
net: sfp: add quirk for FS's 2.5G copper SFP
Ran Xiaokai (1):
cpu/hotplug: Don't offline the last non-isolated CPU
Rander Wang (1):
ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware
Ranjan Kumar (1):
scsi: mpt3sas: Fix loop logic
Ricardo Cañuelo (1):
selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config
Richard Fitzgerald (4):
ASoC: soc-card: Add storage for PCI SSID
ASoC: SOF: Pass PCI SSID to machine driver
ASoC: Intel: sof_sdw: Copy PCI SSID to struct snd_soc_card
ASoC: cs35l56: Use PCI SSID as the firmware UID
Rick Edgecombe (1):
x86/shstk: Delay signal entry SSP write until after user accesses
Rik van Riel (1):
smp,csd: Throw an error if a CSD lock is stuck for too long
Robert Marko (1):
Revert "i2c: pxa: move to generic GPIO recovery"
Roger Pau Monne (1):
acpi/processor: sanitize _OSC/_PDC capabilities for Xen dom0
Roman Gushchin (1):
mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors
Ronald Wahl (1):
clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware
Rong Chen (1):
mmc: meson-gx: Remove setting of CMD_CFG_ERROR
Roxana Nicolescu (1):
crypto: x86/sha - load modules based on CPU features
Saeed Mahameed (1):
net/mlx5e: Reduce the size of icosq_str
Sakari Ailus (2):
media: ccs: Fix driver quirk struct documentation
media: ccs: Correctly initialise try compose rectangle
Samson Tam (1):
drm/amd/display: fix num_ways overflow error
Sanjuán García, Jorge (1):
mcb: fix error handling for different scenarios when parsing
Saravana Kannan (1):
driver core: Release all resources during unbind before updating device links
Sean Young (2):
media: lirc: drop trailing space from scancode transmit
media: sharp: fix sharp encoding
SeongJae Park (9):
mm/damon/sysfs: remove requested targets when online-commit inputs mm/damon/sysfs: update monitoring target regions for online input commit mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation mm/damon/ops-common: avoid divide-by-zero during region hotness calculation mm/damon: implement a function for max nr_accesses safe calculation mm/damon/core: avoid divide-by-zero during monitoring results update mm/damon/sysfs-schemes: handle tried region directory allocation failure mm/damon/sysfs-schemes: handle tried regions sysfs directory allocation failure mm/damon/sysfs: check error from damon_sysfs_update_target()
Shannon Nelson (2):
pds_core: use correct index to mask irq
pds_core: fix up some format-truncation complaints
Shigeru Yoshida (2):
tty: Fix uninit-value access in ppp_sync_receive()
tipc: Fix kernel-infoleak due to uninitialized TLV value
Shiju Jose (1):
ACPI: APEI: Fix AER info corruption when error status data has multiple sections
Shuai Xue (1):
perf/core: Bail out early if the request AUX area is out of bound
Shung-Hsi Yu (1):
bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END
Shyam Prasad N (4):
cifs: reconnect helper should set reconnect for the right channel
cifs: force interface update before a fresh session setup
cifs: do not reset chan_max if multichannel is not supported at mount
cifs: do not pass cifs_sb when trying to add channels
Sieng-Piaw Liew (1):
atl1c: Work around the DMA RX overflow issue
Song Shuai (2):
riscv: mm: Update the comment of CONFIG_PAGE_OFFSET
riscv: correct pt_level name via pgtable_l5/4_enabled
Srinivas Kandagatla (2):
ASoC: soc-dai: add flag to mute and unmute stream during trigger
ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag
Stanislav Fomichev (1):
net: set SOCK_RCU_FREE before inserting socket into hashtable
Stanley Chang (1):
usb: dwc3: core: configure TX/RX threshold for DWC3_IP
Stanley.Yang (1):
drm/amdgpu: Fix potential null pointer derefernce
Stefan Binding (1):
ALSA: hda/realtek: Add quirks for HP Laptops
Stefan Roesch (1):
mm: fix for negative counter: nr_file_hugepages
Stefano Garzarella (1):
vdpa_sim_blk: allocate the buffer zeroed
Steve French (4):
smb3: fix creating FIFOs when mounting with "sfu" mount option
smb3: fix touch -h of symlink
smb3: allow dumping session and tcon id to improve stats analysis and debugging
smb3: fix caching of ctime on setxattr
Steven Rostedt (Google) (1):
tracing: Have the user copy of synthetic event address use correct context
Su Hui (1):
f2fs: avoid format-overflow warning
Sui Jingfeng (1):
drm/gma500: Fix call trace when psb_gem_mm_init() fails
Sumit Garg (1):
KEYS: trusted: tee: Refactor register SHM usage
Sven Auhagen (1):
net: mvneta: fix calls to page_pool_get_stats
Takashi Iwai (2):
media: imon: fix access to invalid resource for the second interface
ALSA: info: Fix potential deadlock at disconnection
Tam Nguyen (1):
i2c: designware: Disable TX_EMPTY irq while waiting for block length byte
Tao Su (1):
KVM: x86: Clear bit12 of ICR after APIC-write VM-exit
Tao Zhou (1):
drm/amdgpu: update retry times for psp vmbx wait
Tianci Yin (1):
drm/amd/display: Enable fast plane updates on DCN3.2 and above
Tiezhu Yang (1):
selftests/clone3: Fix broken test under !CONFIG_TIME_NS
Tim Huang (1):
drm/amdgpu: fix GRBM read timeout when do mes_self_test
Tomeu Vizoso (1):
pmdomain: amlogic: Fix mask for the second NNA mem PD domain
Tony Lindgren (1):
ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings
Trevor Wu (1):
ASoC: mediatek: mt8188-mt6359: support dynamic pinctrl
Trond Myklebust (1):
SUNRPC: ECONNRESET might require a rebind
Tyrel Datwyler (1):
scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool
Tzung-Bi Shih (1):
platform/chrome: kunit: initialize lock for fake ec_dev
Uwe Kleine-König (4):
PCI: keystone: Don't discard .remove() callback
PCI: keystone: Don't discard .probe() callback
PCI: kirin: Don't discard .remove() callback
PCI: exynos: Don't discard .remove() callback
Vasily Khoruzhick (1):
ACPI: FPDT: properly handle invalid FPDT subtables
Victor Shih (3):
mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER
mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2
mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER
Vignesh Viswanathan (5):
arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM
arm64: dts: qcom: ipq5332: Fix hwlock index for SMEM
arm64: dts: qcom: ipq8074: Fix hwlock index for SMEM
arm64: dts: qcom: ipq9574: Fix hwlock index for SMEM
arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size
Vikash Garodia (4):
media: venus: hfi: add checks to perform sanity on queue pointers
media: venus: hfi_parser: Add check to keep the number of codecs within range
media: venus: hfi: fix the check to handle session buffer requirement
media: venus: hfi: add checks to handle capabilities from firmware
Ville Syrjälä (3):
drm/edid: Fixup h/vsync_end instead of h/vtotal
powercap: intel_rapl: Downgrade BIOS locked limits pr_warn() to pr_debug() drm/i915: Bump GLK CDCLK frequency when driving multiple pipes
Vincent Whitchurch (1):
ARM: 9320/1: fix stack depot IRQ stack filter
Vitaly Prosyak (1):
drm/amdgpu: fix software pci_unplug on some chips
Vlad Buslov (2):
net/mlx5e: Fix pedit endianness
macvlan: Don't propagate promisc change to lower dev in passthru
Wang Jianjian (1):
ext4: no need to generate from free list in mballoc
Wayne Lin (1):
drm/amd/display: Avoid NULL dereference of timing generator
Wenchao Hao (1):
scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup()
Wenjing Liu (2):
drm/amd/display: add seamless pipe topology transition check drm/amd/display: use full update for clip size increase of large plane source
Werner Sembach (1):
ACPI: resource: Do IRQ override on TongFang GMxXGxx
Wesley Cheng (1):
usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present
Willem de Bruijn (1):
ppp: limit MRU to 64K
Wolfram Sang (1):
i2c: fix memleak in i2c_new_client_device()
Xiaogang Chen (1):
drm/amdkfd: Fix a race condition of vram buffer unref in svm code
Xin Long (1):
net: sched: do not offload flows with a helper in act_ct
Yi Yang (4):
tty: vcc: Add check for kstrdup() in vcc_probe()
mtd: rawnand: tegra: add missing check for platform_get_irq()
mtd: rawnand: intel: check return value of devm_kasprintf()
mtd: rawnand: meson: check return value of devm_kasprintf()
Yihang Li (1):
scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs
Yonglong Liu (3):
net: hns3: add barrier in vf mailbox reply process
net: hns3: fix out-of-bounds access may occur when coalesce info is read via debugfs
net: hns3: fix variable may not initialized problem in hns3_init_mac_addr()
Yoshihiro Shimoda (3):
PCI: dwc: Add dw_pcie_link_set_max_link_width()
PCI: dwc: Add missing PCI_EXP_LNKCAP_MLW handling
misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller
Yu Kuai (1):
md: don't rely on 'mddev->pers' to be set in mddev_suspend()
Yuezhang Mo (1):
exfat: support handle zero-size directory
Zhang Rui (1):
tools/power/turbostat: Fix a knl bug
Zhang Shurong (1):
iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe()
Zhang Yi (2):
ext4: make sure allocate pending entry not fail
ext4: correct the start block of counting reserved clusters
ZhengHan Wang (1):
Bluetooth: Fix double free in hci_conn_cleanup
Zhiguo Niu (2):
f2fs: fix error path of __f2fs_build_free_nids
f2fs: fix error handling of __get_node_page
Zhihao Cheng (1):
jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev
Zi Yan (5):
fs: use nth_page() in place of direct struct page manipulation
mips: use nth_page() in place of direct struct page manipulation mm/cma: use nth_page() in place of direct struct page manipulation mm/hugetlb: use nth_page() in place of direct struct page manipulation mm/memory_hotplug: use pfn math in place of direct struct page manipulation
Ziwei Xiao (1):
gve: Fixes for napi_poll when budget is 0
Zongmin Zhou (1):
drm/qxl: prevent memory leak
baozhu.liu (1):
drm/komeda: drop all currently held locks if deadlock happens
felix (1):
SUNRPC: Fix RPC client cleaned up the freed pipefs dentries
youwan Wang (1):
Bluetooth: btusb: Add date->evt_skb is NULL check
zhenwei pi (1):
virtio-blk: fix implicit overflow on virtio_max_dma_size
zhujun2 (1):
selftests/efivarfs: create-read: fix a resource leak
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/kernel-parameters.txt +7 -0
@@ -5858,6 +5858,13 @@ This feature may be more efficiently disabled using the csdlock_debug- kernel parameter. + smp.panic_on_ipistall= [KNL] + If a csd_lock_timeout extends for more than + the specified number of milliseconds, panic the + system. By default, let CSD-lock acquisition + take as long as they take. Specifying 300,000 + for this value provides a 5-minute timeout. + smsc-ircc2.nopnp [HW] Don't use PNP to discover SMC devices smsc-ircc2.ircc_cfg= [HW] Device configuration I/O port smsc-ircc2.ircc_sir= [HW] SIR base I/O port
Documentation/devicetree/bindings/phy/qcom,snps-eusb2-repeater.yaml +21 -0
@@ -32,6 +32,27 @@ properties: vdd3-supply: true + qcom,tune-usb2-disc-thres: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed disconnect threshold + minimum: 0 + maximum: 7 + default: 0 + + qcom,tune-usb2-amplitude: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed trasmit amplitude + minimum: 0 + maximum: 15 + default: 8 + + qcom,tune-usb2-preem: + $ref: /schemas/types.yaml#/definitions/uint8 + description: High-Speed TX pre-emphasis tuning + minimum: 0 + maximum: 7 + default: 5 + required: - compatible - reg
Documentation/devicetree/bindings/serial/serial.yaml +1 -1
@@ -96,7 +96,7 @@ then: rts-gpios: false patternProperties: - "^bluetooth|gnss|gps|mcu$": + "^(bluetooth|gnss|gps|mcu)$": if: type: object then:
Documentation/devicetree/bindings/timer/renesas,rz-mtu3.yaml +19 -19
@@ -169,27 +169,27 @@ properties: - const: tgib0 - const: tgic0 - const: tgid0 - - const: tgiv0 + - const: tciv0 - const: tgie0 - const: tgif0 - const: tgia1 - const: tgib1 - - const: tgiv1 - - const: tgiu1 + - const: tciv1 + - const: tciu1 - const: tgia2 - const: tgib2 - - const: tgiv2 - - const: tgiu2 + - const: tciv2 + - const: tciu2 - const: tgia3 - const: tgib3 - const: tgic3 - const: tgid3 - - const: tgiv3 + - const: tciv3 - const: tgia4 - const: tgib4 - const: tgic4 - const: tgid4 - - const: tgiv4 + - const: tciv4 - const: tgiu5 - const: tgiv5 - const: tgiw5
@@ -197,18 +197,18 @@ properties: - const: tgib6 - const: tgic6 - const: tgid6 - - const: tgiv6 + - const: tciv6 - const: tgia7 - const: tgib7 - const: tgic7 - const: tgid7 - - const: tgiv7 + - const: tciv7 - const: tgia8 - const: tgib8 - const: tgic8 - const: tgid8 - - const: tgiv8 - - const: tgiu8 + - const: tciv8 + - const: tciu8 clocks: maxItems: 1
@@ -285,16 +285,16 @@ examples: <GIC_SPI 211 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 212 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 213 IRQ_TYPE_EDGE_RISING>; - interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0", "tgiv0", "tgie0", + interrupt-names = "tgia0", "tgib0", "tgic0", "tgid0", "tciv0", "tgie0", "tgif0", - "tgia1", "tgib1", "tgiv1", "tgiu1", - "tgia2", "tgib2", "tgiv2", "tgiu2", - "tgia3", "tgib3", "tgic3", "tgid3", "tgiv3", - "tgia4", "tgib4", "tgic4", "tgid4", "tgiv4", + "tgia1", "tgib1", "tciv1", "tciu1", + "tgia2", "tgib2", "tciv2", "tciu2", + "tgia3", "tgib3", "tgic3", "tgid3", "tciv3", + "tgia4", "tgib4", "tgic4", "tgid4", "tciv4", "tgiu5", "tgiv5", "tgiw5", - "tgia6", "tgib6", "tgic6", "tgid6", "tgiv6", - "tgia7", "tgib7", "tgic7", "tgid7", "tgiv7", - "tgia8", "tgib8", "tgic8", "tgid8", "tgiv8", "tgiu8"; + "tgia6", "tgib6", "tgic6", "tgid6", "tciv6", + "tgia7", "tgib7", "tgic7", "tgid7", "tciv7", + "tgia8", "tgib8", "tgic8", "tgid8", "tciv8", "tciu8"; clocks = <&cpg CPG_MOD R9A07G044_MTU_X_MCK_MTU3>; power-domains = <&cpg>; resets = <&cpg R9A07G044_MTU_X_PRESET_MTU3>;
Documentation/i2c/busses/i2c-i801.rst +1 -0
@@ -47,6 +47,7 @@ Supported adapters: * Intel Alder Lake (PCH) * Intel Raptor Lake (PCH) * Intel Meteor Lake (SOC and PCH) + * Intel Birch Stream (SOC) Datasheets: Publicly available at the Intel website
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 6 -SUBLEVEL = 2 +SUBLEVEL = 3 EXTRAVERSION = NAME = Hurr durr I'ma ninja sloth
arch/arm/include/asm/exception.h +0 -4
@@ -10,10 +10,6 @@#include <linux/interrupt.h> -#ifdef CONFIG_FUNCTION_GRAPH_TRACER #define __exception_irq_entry __irq_entry -#else -#define __exception_irq_entry -#endif #endif /* __ASM_ARM_EXCEPTION_H */
arch/arm64/Kconfig +2 -0
@@ -1368,6 +1368,8 @@ choice config CPU_BIG_ENDIAN bool "Build big-endian kernel" depends on !LD_IS_LLD || LLD_VERSION >= 130000 + # https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c + depends on AS_IS_GNU || AS_VERSION >= 150000 help Say Y if you plan on running a kernel with a big-endian userspace.
arch/arm64/boot/dts/freescale/fsl-ls208xa.dtsi +27 -19
53 lines not on this page · raw message
arch/arm64/boot/dts/qcom/ipq5332.dtsi +1 -1
@@ -135,7 +135,7 @@ smem@4a800000 { reg = <0x0 0x4a800000 0x0 0x100000>; no-map; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; };
arch/arm64/boot/dts/qcom/ipq6018.dtsi +2 -2
@@ -211,7 +211,7 @@ q6_region: memory@4ab00000 { smem { compatible = "qcom,smem"; memory-region = <&smem_region>; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; soc: soc@0 {
@@ -393,7 +393,7 @@ gcc: gcc@1800000 { tcsr_mutex: hwlock@1905000 { compatible = "qcom,ipq6018-tcsr-mutex", "qcom,tcsr-mutex"; - reg = <0x0 0x01905000 0x0 0x1000>; + reg = <0x0 0x01905000 0x0 0x20000>; #hwlock-cells = <1>; };
arch/arm64/boot/dts/qcom/ipq8074.dtsi +1 -1
@@ -101,7 +101,7 @@ smem@4ab00000 { reg = <0x0 0x4ab00000 0x0 0x100000>; no-map; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; }; memory@4ac00000 {
arch/arm64/boot/dts/qcom/ipq9574.dtsi +1 -1
@@ -195,7 +195,7 @@ tz_region: tz@4a600000 { smem@4aa00000 { compatible = "qcom,smem"; reg = <0x0 0x4aa00000 0x0 0x100000>; - hwlocks = <&tcsr_mutex 0>; + hwlocks = <&tcsr_mutex 3>; no-map; }; };
arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts +28 -0
@@ -137,6 +137,18 @@ vbus5v0_typec: vbus5v0-typec-regulator { vin-supply = <&vcc5v0_sys>; }; + vcc3v3_pcie2x1l0: vcc3v3-pcie2x1l0-regulator { + compatible = "regulator-fixed"; + enable-active-high; + gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&pcie_m2_1_pwren>; + regulator-name = "vcc3v3_pcie2x1l0"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc5v0_sys>; + }; + vcc3v3_pcie30: vcc3v3-pcie30-regulator { compatible = "regulator-fixed"; enable-active-high;
@@ -421,6 +433,14 @@ &pcie2x1l0 { status = "okay"; }; +&pcie2x1l1 { + reset-gpios = <&gpio4 RK_PA2 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply = <&vcc3v3_pcie2x1l0>; + pinctrl-names = "default"; + pinctrl-0 = <&pcie2_1_rst>; + status = "okay"; +}; + &pcie2x1l2 { reset-gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; vpcie3v3-supply = <&vcc_3v3_pcie20>;
@@ -467,6 +487,10 @@ pcie2_0_rst: pcie2-0-rst { rockchip,pins = <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; }; + pcie2_1_rst: pcie2-1-rst { + rockchip,pins = <4 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + pcie2_2_rst: pcie2-2-rst { rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; };
@@ -474,6 +498,10 @@ pcie2_2_rst: pcie2-2-rst { pcie_m2_0_pwren: pcie-m20-pwren { rockchip,pins = <2 RK_PC5 RK_FUNC_GPIO &pcfg_pull_none>; }; + + pcie_m2_1_pwren: pcie-m21-pwren { + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; }; usb {
arch/arm64/kernel/module-plts.c +0 -6
@@ -167,9 +167,6 @@ static unsigned int count_plts(Elf64_Sym *syms, Elf64_Rela *rela, int num,switch (ELF64_R_TYPE (rela[i].r_info)) {case R_AARCH64_JUMP26 :case R_AARCH64_CALL26 : -if (!IS_ENABLED (CONFIG_RANDOMIZE_BASE )) -break ; -/* * We only have to consider branch targets that resolve * to symbols that are defined in a different section.
@@ -269,9 +266,6 @@ static int partition_branch_plt_relas(Elf64_Sym *syms, Elf64_Rela *rela, {int i =0 , j = numrels -1 ; -if (!IS_ENABLED (CONFIG_RANDOMIZE_BASE )) -return 0 ; -while (i < j) {if (branch_rela_needs_plt (syms, &rela[i], dstidx)) i++;
arch/loongarch/include/asm/percpu.h +5 -5
@@ -32,7 +32,7 @@ static inline void set_my_cpu_offset(unsigned long off)#define __my_cpu_offset __my_cpu_offset#define PERCPU_OP (op, asm_op, c_op) \ -static inline unsigned long __percpu_##op(void *ptr, \ +static __always_inline unsigned long __percpu_##op(void *ptr, \ unsigned long val, int size) \ { \ unsigned long ret; \
@@ -63,7 +63,7 @@ PERCPU_OP(and, and, &) PERCPU_OP(or, or, |) #undef PERCPU_OP -static inline unsigned long __percpu_read(void *ptr, int size) +static __always_inline unsigned long __percpu_read(void *ptr, int size) { unsigned long ret;
@@ -100,7 +100,7 @@ static inline unsigned long __percpu_read(void *ptr, int size)return ret; } -static inline void __percpu_write (void *ptr,unsigned long val,int size) +static __always_inline void __percpu_write(void *ptr, unsigned long val, int size) {switch (size) {case 1 :
@@ -132,8 +132,8 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size) } } -static inline unsigned long __percpu_xchg (void *ptr,unsigned long val, -int size) +static __always_inline unsigned long __percpu_xchg (void *ptr,unsigned long val, +int size) {switch (size) {case 1 :
arch/mips/mm/cache.c +1 -1
@@ -117,7 +117,7 @@ void __flush_dcache_pages(struct page *page, unsigned int nr)* get faulted into the tlb (and thus flushed) anyways. */ for (i =0 ; i < nr; i++) { - addr = (unsigned long )kmap_local_page (page + i); + addr = (unsigned long )kmap_local_page (nth_page (page, i));flush_data_cache_page (addr);kunmap_local ((void *)addr); }
arch/parisc/Kconfig +3 -3
@@ -138,11 +138,11 @@ config ARCH_MMAP_RND_COMPAT_BITS_MIN default 8 config ARCH_MMAP_RND_BITS_MAX - default 24 if 64BIT - default 17 + default 18 if 64BIT + default 13 config ARCH_MMAP_RND_COMPAT_BITS_MAX - default 17 + default 13 # unless you want to implement ACPI on PA-RISC ... ;-) config PM
arch/parisc/include/asm/elf.h +1 -9
@@ -349,15 +349,7 @@ struct pt_regs; /* forward declaration... */#define ELF_HWCAP 0 -/* Masks for stack and mmap randomization */ -#define BRK_RND_MASK (is_32bit_task() ? 0x07ffUL : 0x3ffffUL) -#define MMAP_RND_MASK (is_32bit_task() ? 0x1fffUL : 0x3ffffUL) -#define STACK_RND_MASK MMAP_RND_MASK - -struct mm_struct ; -extern unsigned long arch_randomize_brk (struct mm_struct *); -#define arch_randomize_brk arch_randomize_brk - +#define STACK_RND_MASK 0x7ff/* 8MB of VA */ #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1struct linux_binprm ;
arch/parisc/include/asm/processor.h +2 -0
@@ -47,6 +47,8 @@#ifndef __ASSEMBLY__ +struct rlimit ; +unsigned long mmap_upper_limit (struct rlimit *rlim_stack);unsigned long calc_max_stack_size (unsigned long stack_max);/*
arch/parisc/include/uapi/asm/pdc.h +1 -0
@@ -472,6 +472,7 @@ struct pdc_model { /* for PDC_MODEL */unsigned long arch_rev;unsigned long pot_key;unsigned long curr_key; +unsigned long width;/* default of PSW_W bit (1=enabled) */ };struct pdc_cache_cf {/* for PDC_CACHE (I/D-caches) */
arch/parisc/kernel/entry.S +55 -33
265 lines not on this page · raw message
arch/parisc/kernel/head.S +2 -3
@@ -70,9 +70,8 @@ $bss_loop: stw,ma %arg2,4(%r1) stw,ma %arg3,4(%r1) -#if !defined(CONFIG_64BIT) && defined(CONFIG_PA20) - /* This 32-bit kernel was compiled for PA2.0 CPUs. Check current CPU - * and halt kernel if we detect a PA1.x CPU. */ +#if defined(CONFIG_PA20) + /* check for 64-bit capable CPU as required by current kernel */ ldi 32,%r10 mtctl %r10,%cr11 .level 2.0
arch/parisc/kernel/sys_parisc.c +1 -1
@@ -77,7 +77,7 @@ unsigned long calc_max_stack_size(unsigned long stack_max)* indicating that "current" should be used instead of a passed-in * value from the exec bprm as done with arch_pick_mmap_layout(). */ -static unsigned long mmap_upper_limit (struct rlimit *rlim_stack) +unsigned long mmap_upper_limit (struct rlimit *rlim_stack) {unsigned long stack_base;
arch/powerpc/perf/core-book3s.c +2 -3
@@ -1371,8 +1371,7 @@ static void power_pmu_disable(struct pmu *pmu)/* * Disable instruction sampling if it was enabled */ -if (cpuhw->mmcr.mmcra &MMCRA_SAMPLE_ENABLE ) - val &= ~MMCRA_SAMPLE_ENABLE ; + val &= ~MMCRA_SAMPLE_ENABLE ;/* Disable BHRB via mmcra (BHRBRD) for p10 */ if (ppmu->flags &PPMU_ARCH_31 )
@@ -1383,7 +1382,7 @@ static void power_pmu_disable(struct pmu *pmu)* instruction sampling or BHRB. */ if (val != mmcra) { -mtspr (SPRN_MMCRA , mmcra); +mtspr (SPRN_MMCRA , val);mb ();isync (); }
arch/riscv/include/asm/asm-prototypes.h +0 -1
@@ -25,7 +25,6 @@ DECLARE_DO_ERROR_INFO(do_trap_ecall_s);DECLARE_DO_ERROR_INFO (do_trap_ecall_m);DECLARE_DO_ERROR_INFO (do_trap_break); -asmlinkage unsigned long get_overflow_stack (void ); asmlinkage void handle_bad_stack(struct pt_regs *regs); asmlinkage void do_page_fault(struct pt_regs *regs); asmlinkage void do_irq(struct pt_regs *regs);
arch/riscv/include/asm/asm.h +22 -0
@@ -82,6 +82,28 @@ .endr .endm +#ifdef CONFIG_SMP +#ifdef CONFIG_32BIT +#define PER_CPU_OFFSET_SHIFT 2 +#else +#define PER_CPU_OFFSET_SHIFT 3 +#endif + +.macro asm_per_cpu dst sym tmp + REG_L \tmp, TASK_TI_CPU_NUM(tp) + slli \tmp, \tmp, PER_CPU_OFFSET_SHIFT + la \dst, __per_cpu_offset + add \dst, \dst, \tmp + REG_L \tmp, 0(\dst) + la \dst, \sym + add \dst, \dst, \tmp +.endm +#else /* CONFIG_SMP */ +.macro asm_per_cpu dst sym tmp + la \dst, \sym +.endm +#endif /* CONFIG_SMP */ + /* save all GPs except x1 ~ x5 */ .macro save_from_x6_to_x31 REG_S x6, PT_T1(sp)
arch/riscv/include/asm/hwprobe.h +5 -0
@@ -10,4 +10,9 @@#define RISCV_HWPROBE_MAX_KEY 5 +static inline bool riscv_hwprobe_key_is_valid (__s64 key) +{ +return key >=0 && key <=RISCV_HWPROBE_MAX_KEY ; +} +#endif
arch/riscv/include/asm/page.h +2 -2
@@ -33,8 +33,8 @@#define PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL)#endif /* -* By default, CONFIG_PAGE_OFFSET value corresponds to SV48 address space so -* define the PAGE_OFFSET value for SV39. +* By default, CONFIG_PAGE_OFFSET value corresponds to SV57 address space so +* define the PAGE_OFFSET value for SV48 and SV39. */ #define PAGE_OFFSET_L4 _AC(0xffffaf8000000000, UL)#define PAGE_OFFSET_L3 _AC(0xffffffd800000000, UL)
arch/riscv/include/asm/thread_info.h +0 -3
@@ -34,9 +34,6 @@#ifndef __ASSEMBLY__ -extern long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE /sizeof (long )]; -extern unsigned long spin_shadow_stack; -#include <asm/processor.h> #include <asm/csr.h>
arch/riscv/include/asm/vdso/processor.h +1 -1
@@ -14,7 +14,7 @@ static inline void cpu_relax(void) __asm__ __volatile__ ("div %0, %0, zero" :"=r" (dummy));#endif -#ifdef __riscv_zihintpause +#ifdef CONFIG_TOOLCHAIN_HAS_ZIHINTPAUSE /* * Reduce instruction retirement. * This assumes the PC changes.
arch/riscv/kernel/asm-offsets.c +1 -0
@@ -39,6 +39,7 @@ void asm_offsets(void)OFFSET (TASK_TI_KERNEL_SP , task_struct, thread_info.kernel_sp);OFFSET (TASK_TI_USER_SP , task_struct, thread_info.user_sp); +OFFSET (TASK_TI_CPU_NUM , task_struct, thread_info.cpu);OFFSET (TASK_THREAD_F0 , task_struct, thread.fstate.f[0 ]);OFFSET (TASK_THREAD_F1 , task_struct, thread.fstate.f[1 ]);OFFSET (TASK_THREAD_F2 , task_struct, thread.fstate.f[2 ]);
arch/riscv/kernel/entry.S +12 -60
88 lines not on this page · raw message
arch/riscv/kernel/probes/simulate-insn.c +1 -1
@@ -24,7 +24,7 @@ static inline bool rv_insn_reg_set_val(struct pt_regs *regs, u32 index, unsigned long val) {if (index ==0 ) -return false; +return true;else if (index <=31 ) *((unsigned long *)regs + index) = val;else
arch/riscv/kernel/probes/uprobes.c +6 -0
@@ -3,6 +3,7 @@#include <linux/highmem.h> #include <linux/ptrace.h> #include <linux/uprobes.h> +#include <asm/insn.h> #include "decode-insn.h"
@@ -17,6 +18,11 @@ bool is_swbp_insn(uprobe_opcode_t *insn)#endif } +bool is_trap_insn (uprobe_opcode_t *insn) +{ +return riscv_insn_is_ebreak (*insn) ||riscv_insn_is_c_ebreak (*insn); +} +unsigned long uprobe_get_swbp_addr (struct pt_regs *regs) {return instruction_pointer (regs);
arch/riscv/kernel/traps.c +1 -35
@@ -410,48 +410,14 @@ int is_valid_bugaddr(unsigned long pc)#endif /* CONFIG_GENERIC_BUG */ #ifdef CONFIG_VMAP_STACK -/* -* Extra stack space that allows us to provide panic messages when the kernel -* has overflowed its stack. -*/ -static DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)], +DEFINE_PER_CPU(unsigned long [OVERFLOW_STACK_SIZE/sizeof(long)], overflow_stack)__aligned(16); -/* -* A temporary stack for use by handle_kernel_stack_overflow. This is used so -* we can call into C code to get the per-hart overflow stack. Usage of this -* stack must be protected by spin_shadow_stack. -*/ -long shadow_stack[SHADOW_OVERFLOW_STACK_SIZE /sizeof (long )]__aligned(16) ; - -/* -* A pseudo spinlock to protect the shadow stack from being used by multiple -* harts concurrently. This isn't a real spinlock because the lock side must -* be taken without a valid stack and only a single register, it's only taken -* while in the process of panicing anyway so the performance and error -* checking a proper spinlock gives us doesn't matter. -*/ -unsigned long spin_shadow_stack; - -asmlinkage unsigned long get_overflow_stack (void ) -{ -return (unsigned long )this_cpu_ptr (overflow_stack) + -OVERFLOW_STACK_SIZE ; -} asmlinkage void handle_bad_stack(struct pt_regs *regs) {unsigned long tsk_stk = (unsigned long )current->stack;unsigned long ovf_stk = (unsigned long )this_cpu_ptr (overflow_stack); -/* -* We're done with the shadow stack by this point, as we're on the -* overflow stack. Tell any other concurrent overflowing harts that -* they can proceed with panicing by releasing the pseudo-spinlock. -* -* This pairs with an amoswap.aq in handle_kernel_stack_overflow. -*/ -smp_store_release (&spin_shadow_stack,0 ); -console_verbose ();pr_emerg ("Insufficient stack space to handle exception!\n" );
arch/riscv/kernel/vdso/hwprobe.c +1 -1
@@ -37,7 +37,7 @@ int __vdso_riscv_hwprobe(struct riscv_hwprobe *pairs, size_t pair_count,/* This is something we can handle, fill out the pairs. */ while (p < end) { -if (p->key <=RISCV_HWPROBE_MAX_KEY ) { +if (riscv_hwprobe_key_is_valid (p->key)) { p->value = avd->all_cpu_hwprobe_values[p->key]; }else {
arch/riscv/mm/Makefile +1 -0
@@ -36,3 +36,4 @@ endif obj-$(CONFIG_DEBUG_VIRTUAL) += physaddr.o obj-$(CONFIG_RISCV_DMA_NONCOHERENT) += dma-noncoherent.o +obj-$(CONFIG_RISCV_NONSTANDARD_CACHE_OPS) += cache-ops.o
arch/riscv/mm/cache-ops.c new file +17 -0
@@ -0,0 +1,17 @@ +// SPDX-License-Identifier: GPL-2.0-only +/* +* Copyright (c) 2021 Western Digital Corporation or its affiliates. +*/ + +#include <asm/dma-noncoherent.h> + +struct riscv_nonstd_cache_ops noncoherent_cache_ops__ro_after_init ; + +void +riscv_noncoherent_register_cache_ops (const struct riscv_nonstd_cache_ops *ops) +{ +if (!ops) +return ; + noncoherent_cache_ops = *ops; +} +EXPORT_SYMBOL_GPL (riscv_noncoherent_register_cache_ops);
arch/riscv/mm/dma-noncoherent.c +0 -15
@@ -15,12 +15,6 @@ static bool noncoherent_supported __ro_after_init;int dma_cache_alignment__ro_after_init =ARCH_DMA_MINALIGN ;EXPORT_SYMBOL_GPL (dma_cache_alignment); -struct riscv_nonstd_cache_ops noncoherent_cache_ops__ro_after_init = { - .wback =NULL , - .inv =NULL , - .wback_inv =NULL , -}; -static inline void arch_dma_cache_wback (phys_addr_t paddr,size_t size) {void *vaddr =phys_to_virt (paddr);
@@ -162,12 +156,3 @@ void __init riscv_set_dma_cache_alignment(void)if (!noncoherent_supported) dma_cache_alignment =1 ; } - -void riscv_noncoherent_register_cache_ops (const struct riscv_nonstd_cache_ops *ops) -{ -if (!ops) -return ; - - noncoherent_cache_ops = *ops; -} -EXPORT_SYMBOL_GPL (riscv_noncoherent_register_cache_ops);
arch/riscv/mm/ptdump.c +3 -0
@@ -384,6 +384,9 @@ static int __init ptdump_init(void) kernel_ptd_info.base_addr =KERN_VIRT_START ; + pg_level[1 ].name = pgtable_l5_enabled ?"P4D" :"PGD" ; + pg_level[2 ].name = pgtable_l4_enabled ?"PUD" :"PGD" ; +for (i =0 ; i <ARRAY_SIZE (pg_level); i++)for (j =0 ; j <ARRAY_SIZE (pte_bits); j++) pg_level[i].mask |= pte_bits[j].mask;
arch/s390/mm/gmap.c +18 -6
@@ -21,10 +21,22 @@#include <asm/pgalloc.h> #include <asm/gmap.h> +#include <asm/page.h> #include <asm/tlb.h> #define GMAP_SHADOW_FAKE_TABLE 1ULL +static struct page *gmap_alloc_crst (void ) +{ +struct page *page; + + page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); +if (!page) +return NULL ; +arch_set_page_dat (page,CRST_ALLOC_ORDER ); +return page; +} +/** * gmap_alloc - allocate and initialize a guest address space * @limit: maximum address of the gmap address space
@@ -67,7 +79,7 @@ static struct gmap *gmap_alloc(unsigned long limit)spin_lock_init (&gmap->guest_table_lock);spin_lock_init (&gmap->shadow_lock);refcount_set (&gmap->ref_count,1 ); - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page) goto out_free; page->index =0 ;
@@ -308,7 +320,7 @@ static int gmap_alloc_table(struct gmap *gmap, unsigned long *table,unsigned long *new;/* since we dont free the gmap table until gmap_free we can unlock */ - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page)return -ENOMEM ; new =page_to_virt (page);
@@ -1759,7 +1771,7 @@ int gmap_shadow_r2t(struct gmap *sg, unsigned long saddr, unsigned long r2t,BUG_ON (!gmap_is_shadow (sg));/* Allocate a shadow region second table */ - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page)return -ENOMEM ; page->index = r2t & _REGION_ENTRY_ORIGIN;
@@ -1843,7 +1855,7 @@ int gmap_shadow_r3t(struct gmap *sg, unsigned long saddr, unsigned long r3t,BUG_ON (!gmap_is_shadow (sg));/* Allocate a shadow region second table */ - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page)return -ENOMEM ; page->index = r3t & _REGION_ENTRY_ORIGIN;
@@ -1927,7 +1939,7 @@ int gmap_shadow_sgt(struct gmap *sg, unsigned long saddr, unsigned long sgt,BUG_ON (!gmap_is_shadow (sg) || (sgt & _REGION3_ENTRY_LARGE));/* Allocate a shadow segment table */ - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page)return -ENOMEM ; page->index = sgt & _REGION_ENTRY_ORIGIN;
@@ -2855,7 +2867,7 @@ int s390_replace_asce(struct gmap *gmap)if ((gmap->asce & _ASCE_TYPE_MASK) == _ASCE_TYPE_SEGMENT)return -EINVAL ; - page =alloc_pages (GFP_KERNEL_ACCOUNT ,CRST_ALLOC_ORDER ); + page =gmap_alloc_crst ();if (!page)return -ENOMEM ; page->index =0 ;
arch/s390/mm/page-states.c +3 -3
@@ -121,7 +121,7 @@ static void mark_kernel_pud(p4d_t *p4d, unsigned long addr, unsigned long end)continue ;if (!pud_folded (*pud)) { page =phys_to_page (pud_val (*pud)); -for (i =0 ; i <3 ; i++) +for (i =0 ; i <4 ; i++)set_bit (PG_arch_1, &page[i].flags); }mark_kernel_pmd (pud, addr, next);
@@ -142,7 +142,7 @@ static void mark_kernel_p4d(pgd_t *pgd, unsigned long addr, unsigned long end)continue ;if (!p4d_folded (*p4d)) { page =phys_to_page (p4d_val (*p4d)); -for (i =0 ; i <3 ; i++) +for (i =0 ; i <4 ; i++)set_bit (PG_arch_1, &page[i].flags); }mark_kernel_pud (p4d, addr, next);
@@ -164,7 +164,7 @@ static void mark_kernel_pgd(void)continue ;if (!pgd_folded (*pgd)) { page =phys_to_page (pgd_val (*pgd)); -for (i =0 ; i <3 ; i++) +for (i =0 ; i <4 ; i++)set_bit (PG_arch_1, &page[i].flags); }mark_kernel_p4d (pgd, addr, next);
arch/s390/mm/pgalloc.c +1 -0
@@ -146,6 +146,7 @@ struct page *page_table_alloc_pgste(struct mm_struct *mm) ptdesc =pagetable_alloc (GFP_KERNEL ,0 );if (ptdesc) { table = (u64 *)ptdesc_to_virt (ptdesc); +arch_set_page_dat (virt_to_page (table),0 );memset64 (table, _PAGE_INVALID,PTRS_PER_PTE );memset64 (table +PTRS_PER_PTE ,0 ,PTRS_PER_PTE ); }
arch/s390/mm/vmem.c +6 -2
@@ -12,6 +12,7 @@#include <linux/hugetlb.h> #include <linux/slab.h> #include <linux/sort.h> +#include <asm/page-states.h> #include <asm/cacheflush.h> #include <asm/nospec-branch.h> #include <asm/pgalloc.h>
@@ -45,8 +46,11 @@ void *vmem_crst_alloc(unsigned long val)unsigned long *table; table =vmem_alloc_pages (CRST_ALLOC_ORDER ); -if (table) -crst_table_init (table, val); +if (!table) +return NULL ; +crst_table_init (table, val); +if (slab_is_available ()) +arch_set_page_dat (virt_to_page (table),CRST_ALLOC_ORDER );return table; }
arch/x86/crypto/sha1_ssse3_glue.c +12 -0
@@ -24,8 +24,17 @@#include <linux/types.h> #include <crypto/sha1.h> #include <crypto/sha1_base.h> +#include <asm/cpu_device_id.h> #include <asm/simd.h> +static const struct x86_cpu_id module_cpu_ids[] = { +X86_MATCH_FEATURE (X86_FEATURE_AVX2 ,NULL ), +X86_MATCH_FEATURE (X86_FEATURE_AVX ,NULL ), +X86_MATCH_FEATURE (X86_FEATURE_SSSE3 ,NULL ), + {} +}; +MODULE_DEVICE_TABLE (x86cpu, module_cpu_ids); +static int sha1_update (struct shash_desc *desc,const u8 *data,unsigned int len,sha1_block_fn *sha1_xform) {
@@ -301,6 +310,9 @@ static inline void unregister_sha1_ni(void) { }static int __init sha1_ssse3_mod_init (void ) { +if (!x86_match_cpu (module_cpu_ids)) +return -ENODEV ; +if (register_sha1_ssse3 ()) goto fail;
arch/x86/crypto/sha256_ssse3_glue.c +12 -0
@@ -38,11 +38,20 @@#include <crypto/sha2.h> #include <crypto/sha256_base.h> #include <linux/string.h> +#include <asm/cpu_device_id.h> #include <asm/simd.h> asmlinkage void sha256_transform_ssse3(struct sha256_state *state,const u8 *data,int blocks); +static const struct x86_cpu_id module_cpu_ids[] = { +X86_MATCH_FEATURE (X86_FEATURE_AVX2 ,NULL ), +X86_MATCH_FEATURE (X86_FEATURE_AVX ,NULL ), +X86_MATCH_FEATURE (X86_FEATURE_SSSE3 ,NULL ), + {} +}; +MODULE_DEVICE_TABLE (x86cpu, module_cpu_ids); +static int _sha256_update (struct shash_desc *desc,const u8 *data,unsigned int len,sha256_block_fn *sha256_xform) {
@@ -366,6 +375,9 @@ static inline void unregister_sha256_ni(void) { }static int __init sha256_ssse3_mod_init (void ) { +if (!x86_match_cpu (module_cpu_ids)) +return -ENODEV ; +if (register_sha256_ssse3 ()) goto fail;
arch/x86/include/asm/acpi.h +14 -0
@@ -16,6 +16,9 @@#include <asm/x86_init.h> #include <asm/cpufeature.h> #include <asm/irq_vectors.h> +#include <asm/xen/hypervisor.h> + +#include <xen/xen.h> #ifdef CONFIG_ACPI_APEI # include <asm/pgtable_types.h>
@@ -127,6 +130,17 @@ static inline void arch_acpi_set_proc_cap_bits(u32 *cap)if (!cpu_has (c,X86_FEATURE_MWAIT ) || boot_option_idle_override ==IDLE_NOMWAIT ) *cap &= ~(ACPI_PROC_CAP_C_C1_FFH |ACPI_PROC_CAP_C_C2C3_FFH ); + +if (xen_initial_domain ()) { +/* +* When Linux is running as Xen dom0, the hypervisor is the +* entity in charge of the processor power management, and so +* Xen needs to check the OS capabilities reported in the +* processor capabilities buffer matches what the hypervisor +* driver supports. +*/ +xen_sanitize_proc_cap_bits (cap); + } }static inline bool acpi_has_cpu_in_madt (void )
arch/x86/include/asm/kvm-x86-ops.h +1 -0
@@ -108,6 +108,7 @@ KVM_X86_OP_OPTIONAL(vcpu_blocking) KVM_X86_OP_OPTIONAL(vcpu_unblocking) KVM_X86_OP_OPTIONAL(pi_update_irte) KVM_X86_OP_OPTIONAL(pi_start_assignment) +KVM_X86_OP_OPTIONAL(apicv_pre_state_restore) KVM_X86_OP_OPTIONAL(apicv_post_state_restore) KVM_X86_OP_OPTIONAL_RET0(dy_apicv_has_pending_interrupt) KVM_X86_OP_OPTIONAL(set_hv_timer)
arch/x86/include/asm/kvm_host.h +1 -0
@@ -1708,6 +1708,7 @@ struct kvm_x86_ops {int (*pi_update_irte)(struct kvm *kvm,unsigned int host_irq,uint32_t guest_irq,bool set);void (*pi_start_assignment)(struct kvm *kvm); +void (*apicv_pre_state_restore)(struct kvm_vcpu *vcpu);void (*apicv_post_state_restore)(struct kvm_vcpu *vcpu);bool (*dy_apicv_has_pending_interrupt)(struct kvm_vcpu *vcpu);
arch/x86/include/asm/msr-index.h +1 -0
@@ -553,6 +553,7 @@#define MSR_AMD64_CPUID_FN_1 0xc0011004#define MSR_AMD64_LS_CFG 0xc0011020#define MSR_AMD64_DC_CFG 0xc0011022 +#define MSR_AMD64_TW_CFG 0xc0011023#define MSR_AMD64_DE_CFG 0xc0011029#define MSR_AMD64_DE_CFG_LFENCE_SERIALIZE_BIT 1
arch/x86/include/asm/numa.h +0 -7
@@ -12,13 +12,6 @@#define NR_NODE_MEMBLKS (MAX_NUMNODES*2) -/* -* Too small node sizes may confuse the VM badly. Usually they -* result from BIOS bugs. So dont recognize nodes as standalone -* NUMA entities that have less than this amount of RAM listed: -*/ -#define NODE_MIN_SIZE (4*1024*1024) -extern int numa_off;/*
arch/x86/include/asm/xen/hypervisor.h +9 -0
@@ -100,4 +100,13 @@ static inline void leave_lazy(enum xen_lazy_mode mode)enum xen_lazy_mode xen_get_lazy_mode (void ); +#if defined(CONFIG_XEN_DOM0 ) && defined(CONFIG_ACPI ) +void xen_sanitize_proc_cap_bits (uint32_t *buf); +#else +static inline void xen_sanitize_proc_cap_bits (uint32_t *buf) +{ +BUG (); +} +#endif +#endif /* _ASM_X86_XEN_HYPERVISOR_H */
arch/x86/kernel/apic/msi.c +3 -5
@@ -55,14 +55,14 @@ msi_set_affinity(struct irq_data *irqd, const struct cpumask *mask, bool force)* caused by the non-atomic update of the address/data pair. * * Direct update is possible when: -* - The MSI is maskable (remapped MSI does not use this code path)). -* The quirk bit is not set in this case. +* - The MSI is maskable (remapped MSI does not use this code path). +* The reservation mode bit is set in this case. * - The new vector is the same as the old vector * - The old vector is MANAGED_IRQ_SHUTDOWN_VECTOR (interrupt starts up) * - The interrupt is not yet started up * - The new destination CPU is the same as the old destination CPU */ - if (!irqd_msi_nomask_quirk(irqd) || + if (!irqd_can_reserve(irqd) || cfg->vector == old_cfg.vector || old_cfg.vector == MANAGED_IRQ_SHUTDOWN_VECTOR || !irqd_is_started(irqd) ||
@@ -215,8 +215,6 @@ static bool x86_init_dev_msi_info(struct device *dev, struct irq_domain *domain,if (WARN_ON_ONCE (domain != real_parent))return false; info->chip->irq_set_affinity = msi_set_affinity; -/* See msi_set_affinity() for the gory details */ - info->flags |=MSI_FLAG_NOMASK_QUIRK ;break ;case DOMAIN_BUS_DMAR :case DOMAIN_BUS_AMDVI :
arch/x86/kernel/cpu/bugs.c +1 -3
@@ -2422,10 +2422,8 @@ static void __init srso_select_mitigation(void)setup_force_cpu_cap (X86_FEATURE_SRSO_NO );return ; } - } -if (retbleed_mitigation ==RETBLEED_MITIGATION_IBPB ) { -if (has_microcode) { +if (retbleed_mitigation ==RETBLEED_MITIGATION_IBPB ) { srso_mitigation =SRSO_MITIGATION_IBPB ; goto out; }
arch/x86/kernel/cpu/hygon.c +6 -2
@@ -87,8 +87,12 @@ static void hygon_get_topology(struct cpuinfo_x86 *c)if (!err) c->x86_coreid_bits =get_count_order (c->x86_max_cores); -/* Socket ID is ApicId[6] for these processors. */ - c->phys_proc_id = c->apicid >>APICID_SOCKET_ID_BIT ; +/* +* Socket ID is ApicId[6] for the processors with model <= 0x3 +* when running on host. +*/ +if (!boot_cpu_has (X86_FEATURE_HYPERVISOR ) && c->x86_model <=0x3 ) + c->phys_proc_id = c->apicid >>APICID_SOCKET_ID_BIT ;cacheinfo_hygon_init_llc_id (c, cpu); }else if (cpu_has (c,X86_FEATURE_NODEID_MSR )) {
arch/x86/kernel/signal_64.c +3 -3
@@ -175,9 +175,6 @@ int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs) frame =get_sigframe (ksig, regs,sizeof (struct rt_sigframe ), &fp); uc_flags =frame_uc_flags (regs); -if (setup_signal_shadow_stack (ksig)) -return -EFAULT ; -if (!user_access_begin (frame,sizeof (*frame)))return -EFAULT ;
@@ -198,6 +195,9 @@ int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)return -EFAULT ; } +if (setup_signal_shadow_stack (ksig)) +return -EFAULT ; +/* Set up registers for signal handler */ regs->di = ksig->sig;/* In case the signal handler was declared without prototypes */
arch/x86/kvm/hyperv.c +6 -4
@@ -727,10 +727,12 @@ static int stimer_set_count(struct kvm_vcpu_hv_stimer *stimer, u64 count,stimer_cleanup (stimer); stimer->count = count; -if (stimer->count ==0 ) - stimer->config.enable =0 ; -else if (stimer->config.auto_enable) - stimer->config.enable =1 ; +if (!host) { +if (stimer->count ==0 ) + stimer->config.enable =0 ; +else if (stimer->config.auto_enable) + stimer->config.enable =1 ; + }if (stimer->config.enable)stimer_mark_pending (stimer, false);
arch/x86/kvm/lapic.c +17 -13
@@ -2444,22 +2444,22 @@ EXPORT_SYMBOL_GPL(kvm_lapic_set_eoi);void kvm_apic_write_nodecode (struct kvm_vcpu *vcpu,u32 offset) {struct kvm_lapic *apic = vcpu->arch.apic; -u64 val;/* -* ICR is a single 64-bit register when x2APIC is enabled. For legacy -* xAPIC, ICR writes need to go down the common (slightly slower) path -* to get the upper half from ICR2. +* ICR is a single 64-bit register when x2APIC is enabled, all others +* registers hold 32-bit values. For legacy xAPIC, ICR writes need to +* go down the common path to get the upper half from ICR2. +* +* Note, using the write helpers may incur an unnecessary write to the +* virtual APIC state, but KVM needs to conditionally modify the value +* in certain cases, e.g. to clear the ICR busy bit. The cost of extra +* conditional branches is likely a wash relative to the cost of the +* maybe-unecessary write, and both are in the noise anyways. */ -if (apic_x2apic_mode (apic) && offset ==APIC_ICR ) { - val =kvm_lapic_get_reg64 (apic,APIC_ICR ); -kvm_apic_send_ipi (apic, (u32 )val, (u32)(val >>32 )); -trace_kvm_apic_write (APIC_ICR , val); - }else { -/* TODO: optimize to just emulate side effect w/o one more write */ - val =kvm_lapic_get_reg (apic, offset); -kvm_lapic_reg_write (apic, offset, (u32 )val); - } +if (apic_x2apic_mode (apic) && offset ==APIC_ICR ) +kvm_x2apic_icr_write (apic,kvm_lapic_get_reg64 (apic,APIC_ICR )); +else +kvm_lapic_reg_write (apic, offset,kvm_lapic_get_reg (apic, offset)); }EXPORT_SYMBOL_GPL (kvm_apic_write_nodecode);
@@ -2670,6 +2670,8 @@ void kvm_lapic_reset(struct kvm_vcpu *vcpu, bool init_event)u64 msr_val;int i; +static_call_cond (kvm_x86_apicv_pre_state_restore)(vcpu); +if (!init_event) { msr_val =APIC_DEFAULT_PHYS_BASE |MSR_IA32_APICBASE_ENABLE ;if (kvm_vcpu_is_reset_bsp (vcpu))
@@ -2981,6 +2983,8 @@ int kvm_apic_set_state(struct kvm_vcpu *vcpu, struct kvm_lapic_state *s)struct kvm_lapic *apic = vcpu->arch.apic;int r; +static_call_cond (kvm_x86_apicv_pre_state_restore)(vcpu); +kvm_lapic_set_base (vcpu, vcpu->arch.apic_base);/* set SPIV separately to get count of SW disabled APICs right */ apic_set_spiv (apic, *((u32 *)(s->regs +APIC_SPIV )));
arch/x86/kvm/vmx/vmx.c +2 -2
@@ -6912,7 +6912,7 @@ static void vmx_load_eoi_exitmap(struct kvm_vcpu *vcpu, u64 *eoi_exit_bitmap)vmcs_write64 (EOI_EXIT_BITMAP3 , eoi_exit_bitmap[3 ]); } -static void vmx_apicv_post_state_restore (struct kvm_vcpu *vcpu) +static void vmx_apicv_pre_state_restore (struct kvm_vcpu *vcpu) {struct vcpu_vmx *vmx =to_vmx (vcpu);
@@ -8286,7 +8286,7 @@ static struct kvm_x86_ops vmx_x86_ops __initdata = { .set_apic_access_page_addr = vmx_set_apic_access_page_addr, .refresh_apicv_exec_ctrl = vmx_refresh_apicv_exec_ctrl, .load_eoi_exitmap = vmx_load_eoi_exitmap, - .apicv_post_state_restore = vmx_apicv_post_state_restore, + .apicv_pre_state_restore = vmx_apicv_pre_state_restore, .required_apicv_inhibits = VMX_REQUIRED_APICV_INHIBITS, .hwapic_irr_update = vmx_hwapic_irr_update, .hwapic_isr_update = vmx_hwapic_isr_update,
arch/x86/kvm/x86.c +2 -0
@@ -3641,6 +3641,7 @@ int kvm_set_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)case MSR_AMD64_PATCH_LOADER :case MSR_AMD64_BU_CFG2 :case MSR_AMD64_DC_CFG : +case MSR_AMD64_TW_CFG :case MSR_F15H_EX_CFG :break ;
@@ -4065,6 +4066,7 @@ int kvm_get_msr_common(struct kvm_vcpu *vcpu, struct msr_data *msr_info)case MSR_AMD64_BU_CFG2 :case MSR_IA32_PERF_CTL :case MSR_AMD64_DC_CFG : +case MSR_AMD64_TW_CFG :case MSR_F15H_EX_CFG :/* * Intel Sandy Bridge CPUs must support the RAPL (running average power
arch/x86/mm/numa.c +0 -7
@@ -602,13 +602,6 @@ static int __init numa_register_memblks(struct numa_meminfo *mi)if (start >= end)continue ; -/* -* Don't confuse VM with a node that doesn't have the -* minimum amount of memory: -*/ -if (end && (end - start) <NODE_MIN_SIZE ) -continue ; -alloc_node_data (nid); }
arch/x86/pci/fixup.c +59 -0
71 lines not on this page · raw message
block/blk-mq.c +38 -37
123 lines not on this page · raw message
crypto/pcrypt.c +4 -0
@@ -117,6 +117,8 @@ static int pcrypt_aead_encrypt(struct aead_request *req) err =padata_do_parallel (ictx->psenc, padata, &ctx->cb_cpu);if (!err)return -EINPROGRESS ; +if (err == -EBUSY ) +return -EAGAIN ;return err; }
@@ -164,6 +166,8 @@ static int pcrypt_aead_decrypt(struct aead_request *req) err =padata_do_parallel (ictx->psdec, padata, &ctx->cb_cpu);if (!err)return -EINPROGRESS ; +if (err == -EBUSY ) +return -EAGAIN ;return err; }
drivers/acpi/acpi_fpdt.c +37 -8
110 lines not on this page · raw message
drivers/acpi/apei/ghes.c +22 -1
@@ -209,6 +209,20 @@ int ghes_estatus_pool_init(unsigned int num_ghes)return -ENOMEM ; } +/** +* ghes_estatus_pool_region_free - free previously allocated memory +* from the ghes_estatus_pool. +* @addr: address of memory to free. +* @size: size of memory to free. +* +* Returns none. +*/ +void ghes_estatus_pool_region_free (unsigned long addr,u32 size) +{ +gen_pool_free (ghes_estatus_pool, addr, size); +} +EXPORT_SYMBOL_GPL (ghes_estatus_pool_region_free); +static int map_gen_v2 (struct ghes *ghes) {return apei_map_generic_address (&ghes->generic_v2->read_ack_register);
@@ -564,6 +578,7 @@ static void ghes_handle_aer(struct acpi_hest_generic_data *gdata) pcie_err->validation_bits & CPER_PCIE_VALID_AER_INFO) {unsigned int devfn;int aer_severity; +u8 *aer_info; devfn =PCI_DEVFN (pcie_err->device_id.device, pcie_err->device_id.function);
@@ -577,11 +592,17 @@ static void ghes_handle_aer(struct acpi_hest_generic_data *gdata)if (gdata->flags &CPER_SEC_RESET ) aer_severity =AER_FATAL ; + aer_info = (void *)gen_pool_alloc (ghes_estatus_pool, +sizeof (struct aer_capability_regs )); +if (!aer_info) +return ; +memcpy (aer_info, pcie_err->aer_info,sizeof (struct aer_capability_regs )); +aer_recover_queue (pcie_err->device_id.segment, pcie_err->device_id.bus, devfn, aer_severity, (struct aer_capability_regs *) - pcie_err->aer_info); + aer_info); }#endif }
drivers/acpi/ec.c +10 -0
@@ -1924,6 +1924,16 @@ static const struct dmi_system_id ec_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Gaming Laptop 15-dk1xxx"), }, }, + { +/* +* HP 250 G7 Notebook PC +*/ + .callback = ec_honor_dsdt_gpe, + .matches = { +DMI_MATCH (DMI_SYS_VENDOR ,"HP" ), + DMI_MATCH(DMI_PRODUCT_NAME, "HP 250 G7 Notebook PC"), + }, + }, {/* * Samsung hardware
drivers/acpi/resource.c +12 -0
@@ -495,6 +495,18 @@ static const struct dmi_system_id maingear_laptop[] = { DMI_MATCH(DMI_PRODUCT_NAME, "MG-VCP2-15A3070T"), } }, + { +/* TongFang GMxXGxx/TUXEDO Polaris 15 Gen5 AMD */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GMxXGxx"), + }, + }, + { +/* TongFang GM6XGxX/TUXEDO Stellaris 16 Gen5 AMD */ + .matches = { + DMI_MATCH(DMI_BOARD_NAME, "GM6XGxX"), + }, + }, { .ident = "MAINGEAR Vector Pro 2 17", .matches = {
drivers/atm/iphase.c +11 -9
@@ -2291,19 +2291,21 @@ static int get_esi(struct atm_dev *dev)static int reset_sar (struct atm_dev *dev) {IADEV *iadev; -int i, error =1 ; +int i, error;unsigned int pci[64 ]; iadev =INPH_IA_DEV (dev); -for (i=0 ; i<64 ; i++) -if ((error =pci_read_config_dword (iadev->pci, - i*4 , &pci[i])) !=PCIBIOS_SUCCESSFUL ) -return error; +for (i =0 ; i <64 ; i++) { + error =pci_read_config_dword (iadev->pci, i *4 , &pci[i]); +if (error !=PCIBIOS_SUCCESSFUL ) +return error; + }writel (0 , iadev->reg+IPHASE5575_EXT_RESET ); -for (i=0 ; i<64 ; i++) -if ((error =pci_write_config_dword (iadev->pci, - i*4 , pci[i])) !=PCIBIOS_SUCCESSFUL ) -return error; +for (i =0 ; i <64 ; i++) { + error =pci_write_config_dword (iadev->pci, i *4 , pci[i]); +if (error !=PCIBIOS_SUCCESSFUL ) +return error; + }udelay (5 );return 0 ; }
drivers/base/dd.c +1 -1
@@ -1274,8 +1274,8 @@ static void __device_release_driver(struct device *dev, struct device *parent)if (dev->bus && dev->bus->dma_cleanup) dev->bus->dma_cleanup (dev); -device_links_driver_cleanup (dev);device_unbind_cleanup (dev); +device_links_driver_cleanup (dev);klist_remove (&dev->p->knode_driver);device_pm_check_callbacks (dev);
drivers/base/regmap/regcache.c +30 -0
@@ -334,6 +334,11 @@ static int regcache_default_sync(struct regmap *map, unsigned int min,return 0 ; } +static int rbtree_all (const void *key,const struct rb_node *node) +{ +return 0 ; +} +/** * regcache_sync - Sync the register cache with the hardware. *
@@ -351,6 +356,7 @@ int regcache_sync(struct regmap *map)unsigned int i;const char *name;bool bypass; +struct rb_node *node;if (WARN_ON (map->cache_type ==REGCACHE_NONE ))return -EINVAL ;
@@ -392,6 +398,30 @@ int regcache_sync(struct regmap *map)/* Restore the bypass state */ map->cache_bypass = bypass; map->no_sync_defaults = false; + +/* +* If we did any paging with cache bypassed and a cached +* paging register then the register and cache state might +* have gone out of sync, force writes of all the paging +* registers. +*/ +rb_for_each (node,0 , &map->range_tree, rbtree_all) { +struct regmap_range_node *this = + rb_entry(node, struct regmap_range_node, node); + +/* If there's nothing in the cache there's nothing to sync */ + ret =regcache_read (map, this->selector_reg, &i); +if (ret !=0 ) +continue ; + + ret =_regmap_write (map, this->selector_reg, i); +if (ret !=0 ) { +dev_err (map->dev,"Failed to write %x = %x: %d\n" , + this->selector_reg, i, ret); +break ; + } + } + map->unlock (map->lock_arg);regmap_async_complete (map);
drivers/block/virtio_blk.c +3 -1
@@ -1313,6 +1313,7 @@ static int virtblk_probe(struct virtio_device *vdev)u16 min_io_size;u8 physical_block_exp, alignment_offset;unsigned int queue_depth; +size_t max_dma_size;if (!vdev->config->get) { dev_err(&vdev->dev, "%s failure: config access disabled\n",
@@ -1411,7 +1412,8 @@ static int virtblk_probe(struct virtio_device *vdev)/* No real sector limit. */ blk_queue_max_hw_sectors (q,UINT_MAX ); - max_size =virtio_max_dma_size (vdev); + max_dma_size =virtio_max_dma_size (vdev); + max_size = max_dma_size >U32_MAX ?U32_MAX : max_dma_size;/* Host can optionally specify maximum segment size and number of * segments. */
drivers/bluetooth/btusb.c +7 -0
@@ -543,6 +543,10 @@ static const struct usb_device_id quirks_table[] = { BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x0bda, 0x887b), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x0bda, 0xb85b), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, + { USB_DEVICE(0x13d3, 0x3570), .driver_info = BTUSB_REALTEK | + BTUSB_WIDEBAND_SPEECH }, { USB_DEVICE(0x13d3, 0x3571), .driver_info = BTUSB_REALTEK | BTUSB_WIDEBAND_SPEECH },
@@ -2818,6 +2822,9 @@ static int btusb_mtk_hci_wmt_sync(struct hci_dev *hdev, goto err_free_wc; } +if (data->evt_skb ==NULL ) + goto err_free_wc; +/* Parse and handle the return WMT event */ wmt_evt = (struct btmtk_hci_wmt_evt *)data->evt_skb->data;if (wmt_evt->whdr.op != hdr->op) {
drivers/char/agp/parisc-agp.c +9 -7
@@ -38,7 +38,7 @@ static struct _parisc_agp_info {int lba_cap_offset; -u64 *gatt; +__le64 *gatt;u64 gatt_entries;u64 gart_base;
@@ -104,7 +104,7 @@ parisc_agp_create_gatt_table(struct agp_bridge_data *bridge)int i;for (i =0 ; i < info->gatt_entries; i++) { - info->gatt[i] = (unsigned long )agp_bridge->scratch_page; + info->gatt[i] =cpu_to_le64 (agp_bridge->scratch_page); }return 0 ;
@@ -158,9 +158,9 @@ parisc_agp_insert_memory(struct agp_memory *mem, off_t pg_start, int type)for (k =0 ; k < info->io_pages_per_kpage; k++, j++, paddr += info->io_page_size) { - info->gatt[j] = + info->gatt[j] =cpu_to_le64 (parisc_agp_mask_memory (agp_bridge, - paddr, type); + paddr, type));asm_io_fdc (&info->gatt[j]); } }
@@ -184,7 +184,7 @@ parisc_agp_remove_memory(struct agp_memory *mem, off_t pg_start, int type) io_pg_start = info->io_pages_per_kpage * pg_start; io_pg_count = info->io_pages_per_kpage * mem->page_count;for (i = io_pg_start; i < io_pg_count + io_pg_start; i++) { - info->gatt[i] = agp_bridge->scratch_page; + info->gatt[i] =cpu_to_le64 (agp_bridge->scratch_page); } agp_bridge->driver->tlb_flush (mem);
@@ -204,7 +204,8 @@ parisc_agp_mask_memory(struct agp_bridge_data *bridge, dma_addr_t addr, pa |= (ci >>PAGE_SHIFT ) &0xff ;/* move CI (8 bits) into lowest byte */ pa |=SBA_PDIR_VALID_BIT ;/* set "valid" bit */ -return cpu_to_le64 (pa); +/* return native (big-endian) PDIR entry */ +return pa; } static void
@@ -251,7 +252,8 @@ static int __init agp_ioc_init(void __iomem *ioc_regs) {struct _parisc_agp_info *info = &parisc_agp_info; -u64 iova_base, *io_pdir, io_tlb_ps; +u64 iova_base, io_tlb_ps; +__le64 *io_pdir;int io_tlb_shift; printk(KERN_INFO DRVPFX "IO PDIR shared with sba_iommu\n");
drivers/clk/qcom/gcc-ipq6018.c +0 -6
@@ -72,7 +72,6 @@ static struct clk_fixed_factor gpll0_out_main_div2 = { &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -86,7 +85,6 @@ static struct clk_alpha_pll_postdiv gpll0 = { &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -161,7 +159,6 @@ static struct clk_alpha_pll_postdiv gpll6 = { &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -192,7 +189,6 @@ static struct clk_alpha_pll_postdiv gpll4 = { &gpll4_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -243,7 +239,6 @@ static struct clk_alpha_pll_postdiv gpll2 = { &gpll2_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -274,7 +269,6 @@ static struct clk_alpha_pll_postdiv nss_crypto_pll = { &nss_crypto_pll_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
drivers/clk/qcom/gcc-ipq8074.c +0 -6
@@ -75,7 +75,6 @@ static struct clk_fixed_factor gpll0_out_main_div2 = { &gpll0_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -121,7 +120,6 @@ static struct clk_alpha_pll_postdiv gpll2 = { &gpll2_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -154,7 +152,6 @@ static struct clk_alpha_pll_postdiv gpll4 = { &gpll4_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -188,7 +185,6 @@ static struct clk_alpha_pll_postdiv gpll6 = { &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -201,7 +197,6 @@ static struct clk_fixed_factor gpll6_out_main_div2 = { &gpll6_main.clkr.hw }, .num_parents = 1, .ops = &clk_fixed_factor_ops, - .flags = CLK_SET_RATE_PARENT, }, };
@@ -266,7 +261,6 @@ static struct clk_alpha_pll_postdiv nss_crypto_pll = { &nss_crypto_pll_main.clkr.hw }, .num_parents = 1, .ops = &clk_alpha_pll_postdiv_ro_ops, - .flags = CLK_SET_RATE_PARENT, }, };
drivers/clk/socfpga/stratix10-clk.h +3 -1
@@ -7,8 +7,10 @@#define __STRATIX10_CLK_Hstruct stratix10_clock_data { -struct clk_hw_onecell_data clk_data;void __iomem *base; + +/* Must be last */ +struct clk_hw_onecell_data clk_data; };struct stratix10_pll_clock {
drivers/clk/visconti/pll.h +3 -1
@@ -15,8 +15,10 @@struct visconti_pll_provider {void __iomem *reg_base; -struct clk_hw_onecell_data clk_data;struct device_node *node; + +/* Must be last */ +struct clk_hw_onecell_data clk_data; }; #define VISCONTI_PLL_RATE(_rate, _dacen, _dsmen, \
drivers/clocksource/timer-atmel-tcb.c +1 -0
@@ -315,6 +315,7 @@ static void __init tcb_setup_dual_chan(struct atmel_tc *tc, int mck_divisor_idx)writel (mck_divisor_idx/* likely divide-by-8 */ |ATMEL_TC_WAVE |ATMEL_TC_WAVESEL_UP /* free-run */ + |ATMEL_TC_ASWTRG_SET /* TIOA0 rises at software trigger */ |ATMEL_TC_ACPA_SET /* TIOA0 rises at 0 */ |ATMEL_TC_ACPC_CLEAR ,/* (duty cycle 50%) */ tcaddr +ATMEL_TC_REG (0 ,CMR ));
drivers/clocksource/timer-imx-gpt.c +13 -5
@@ -434,12 +434,16 @@ static int __init mxc_timer_init_dt(struct device_node *np, enum imx_gpt_type treturn -ENOMEM ; imxtm->base =of_iomap (np,0 ); -if (!imxtm->base) -return -ENXIO ; +if (!imxtm->base) { + ret = -ENXIO ; + goto err_kfree; + } imxtm->irq =irq_of_parse_and_map (np,0 ); -if (imxtm->irq <=0 ) -return -EINVAL ; +if (imxtm->irq <=0 ) { + ret = -EINVAL ; + goto err_kfree; + } imxtm->clk_ipg =of_clk_get_by_name (np,"ipg" );
@@ -452,11 +456,15 @@ static int __init mxc_timer_init_dt(struct device_node *np, enum imx_gpt_type t ret =_mxc_timer_init (imxtm);if (ret) -return ret; + goto err_kfree; initialized =1 ;return 0 ; + +err_kfree: +kfree (imxtm); +return ret; }static int __init imx1_timer_init_dt (struct device_node *np)
drivers/cpufreq/cpufreq_stats.c +7 -7
@@ -131,23 +131,23 @@ static ssize_t show_trans_table(struct cpufreq_policy *policy, char *buf) len +=sysfs_emit_at (buf, len," From : To\n" ); len +=sysfs_emit_at (buf, len," : " );for (i =0 ; i < stats->state_num; i++) { -if (len >=PAGE_SIZE ) +if (len >=PAGE_SIZE -1 )break ; len +=sysfs_emit_at (buf, len,"%9u " , stats->freq_table[i]); } -if (len >=PAGE_SIZE ) -return PAGE_SIZE ; +if (len >=PAGE_SIZE -1 ) +return PAGE_SIZE -1 ; len +=sysfs_emit_at (buf, len,"\n" );for (i =0 ; i < stats->state_num; i++) { -if (len >=PAGE_SIZE ) +if (len >=PAGE_SIZE -1 )break ; len +=sysfs_emit_at (buf, len,"%9u: " , stats->freq_table[i]);for (j =0 ; j < stats->state_num; j++) { -if (len >=PAGE_SIZE ) +if (len >=PAGE_SIZE -1 )break ;if (pending)
@@ -157,12 +157,12 @@ static ssize_t show_trans_table(struct cpufreq_policy *policy, char *buf) len +=sysfs_emit_at (buf, len,"%9u " , count); } -if (len >=PAGE_SIZE ) +if (len >=PAGE_SIZE -1 )break ; len +=sysfs_emit_at (buf, len,"\n" ); } -if (len >=PAGE_SIZE ) { +if (len >=PAGE_SIZE -1 ) {pr_warn_once ("cpufreq transition table exceeds PAGE_SIZE. Disabling\n" );return -EFBIG ; }
drivers/crypto/hisilicon/qm.c +2 -0
@@ -847,6 +847,8 @@ static void qm_poll_req_cb(struct hisi_qp *qp)qm_db (qm, qp->qp_id,QM_DOORBELL_CMD_CQ , qp->qp_status.cq_head,0 );atomic_dec (&qp->qp_status.used); + +cond_resched (); }/* set c_flag */
drivers/cxl/core/port.c +19 -15
@@ -1242,35 +1242,39 @@ static struct device *grandparent(struct device *dev)return NULL ; } +static struct device *endpoint_host (struct cxl_port *endpoint) +{ +struct cxl_port *port =to_cxl_port (endpoint->dev.parent); + +if (is_cxl_root (port)) +return port->uport_dev; +return &port->dev; +} +static void delete_endpoint (void *data) {struct cxl_memdev *cxlmd = data;struct cxl_port *endpoint = cxlmd->endpoint; -struct cxl_port *parent_port; -struct device *parent; - - parent_port =cxl_mem_find_port (cxlmd,NULL ); -if (!parent_port) - goto out; - parent = &parent_port->dev; +struct device *host =endpoint_host (endpoint); -device_lock (parent); -if (parent->driver && !endpoint->dead) { -devm_release_action (parent, cxl_unlink_parent_dport, endpoint); -devm_release_action (parent, cxl_unlink_uport, endpoint); -devm_release_action (parent, unregister_port, endpoint); +device_lock (host); +if (host->driver && !endpoint->dead) { +devm_release_action (host, cxl_unlink_parent_dport, endpoint); +devm_release_action (host, cxl_unlink_uport, endpoint); +devm_release_action (host, unregister_port, endpoint); } cxlmd->endpoint =NULL ; -device_unlock (parent); -put_device (parent); -out: +device_unlock (host);put_device (&endpoint->dev); +put_device (host); }int cxl_endpoint_autoremove (struct cxl_memdev *cxlmd,struct cxl_port *endpoint) { +struct device *host =endpoint_host (endpoint);struct device *dev = &cxlmd->dev; +get_device (host);get_device (&endpoint->dev); cxlmd->endpoint = endpoint; cxlmd->depth = endpoint->depth;
drivers/cxl/core/region.c +15 -8
@@ -1127,7 +1127,14 @@ static int cxl_port_setup_targets(struct cxl_port *port, }if (is_cxl_root (parent_port)) { - parent_ig = cxlrd->cxlsd.cxld.interleave_granularity; +/* +* Root decoder IG is always set to value in CFMWS which +* may be different than this region's IG. We can use the +* region's IG here since interleave_granularity_store() +* does not allow interleaved host-bridges with +* root IG != region IG. +*/ + parent_ig = p->interleave_granularity; parent_iw = cxlrd->cxlsd.cxld.interleave_ways;/* * For purposes of address bit routing, use power-of-2 math for
@@ -1675,6 +1682,12 @@ static int cxl_region_attach(struct cxl_region *cxlr,return -ENXIO ; } +if (p->nr_targets >= p->interleave_ways) { +dev_dbg (&cxlr->dev,"region already has %d endpoints\n" , + p->nr_targets); +return -EINVAL ; + } + ep_port =cxled_to_port (cxled); root_port =cxlrd_to_port (cxlrd); dport =cxl_find_dport_by_dev (root_port, ep_port->host_bridge);
@@ -1767,7 +1780,7 @@ static int cxl_region_attach(struct cxl_region *cxlr,if (p->nr_targets == p->interleave_ways) { rc =cxl_region_setup_targets (cxlr);if (rc) - goto err_decrement; +return rc; p->state =CXL_CONFIG_ACTIVE ; }
@@ -1799,12 +1812,6 @@ static int cxl_region_attach(struct cxl_region *cxlr, }return 0 ; - -err_decrement: - p->nr_targets--; - cxled->pos =-1 ; - p->targets[pos] =NULL ; -return rc; }static int cxl_region_detach (struct cxl_endpoint_decoder *cxled)
drivers/dma/stm32-mdma.c +2 -2
@@ -489,7 +489,7 @@ static int stm32_mdma_set_xfer_param(struct stm32_mdma_chan *chan, src_maxburst = chan->dma_config.src_maxburst; dst_maxburst = chan->dma_config.dst_maxburst; - ccr =stm32_mdma_read (dmadev,STM32_MDMA_CCR (chan->id)); + ccr =stm32_mdma_read (dmadev,STM32_MDMA_CCR (chan->id)) & ~STM32_MDMA_CCR_EN ; ctcr =stm32_mdma_read (dmadev,STM32_MDMA_CTCR (chan->id)); ctbr =stm32_mdma_read (dmadev,STM32_MDMA_CTBR (chan->id));
@@ -965,7 +965,7 @@ stm32_mdma_prep_dma_memcpy(struct dma_chan *c, dma_addr_t dest, dma_addr_t src,if (!desc)return NULL ; - ccr =stm32_mdma_read (dmadev,STM32_MDMA_CCR (chan->id)); + ccr =stm32_mdma_read (dmadev,STM32_MDMA_CCR (chan->id)) & ~STM32_MDMA_CCR_EN ; ctcr =stm32_mdma_read (dmadev,STM32_MDMA_CTCR (chan->id)); ctbr =stm32_mdma_read (dmadev,STM32_MDMA_CTBR (chan->id)); cbndtr =stm32_mdma_read (dmadev,STM32_MDMA_CBNDTR (chan->id));
drivers/firmware/qcom_scm.c +7 -0
@@ -167,6 +167,12 @@ static enum qcom_scm_convention __get_convention(void)if (likely (qcom_scm_convention !=SMC_CONVENTION_UNKNOWN ))return qcom_scm_convention; +/* +* Per the "SMC calling convention specification", the 64-bit calling +* convention can only be used when the client is 64-bit, otherwise +* system will encounter the undefined behaviour. +*/ +#if IS_ENABLED (CONFIG_ARM64 )/* * Device isn't required as there is only one argument - no device * needed to dma_map_single to secure world
@@ -187,6 +193,7 @@ static enum qcom_scm_convention __get_convention(void) forced = true; goto found; } +#endif probed_convention =SMC_CONVENTION_ARM_32 ; ret =__scm_smc_call (NULL , &desc, probed_convention, &res, true);
drivers/gpio/gpiolib-acpi.c +20 -0
@@ -1655,6 +1655,26 @@ static const struct dmi_system_id gpiolib_acpi_quirks[] __initconst = { .ignore_wake = "SYNA1202:00@16", }, }, + { + /* + * On the Peaq C1010 2-in-1 INT33FC:00 pin 3 is connected to + * a "dolby" button. At the ACPI level an _AEI event-handler + * is connected which sets an ACPI variable to 1 on both + * edges. This variable can be polled + cleared to 0 using + * WMI. But since the variable is set on both edges the WMI + * interface is pretty useless even when polling. + * So instead the x86-android-tablets code instantiates + * a gpio-keys platform device for it. + * Ignore the _AEI handler for the pin, so that it is not busy. + */ + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "PEAQ"), + DMI_MATCH(DMI_PRODUCT_NAME, "PEAQ PMM C1010 MD99187"), + }, + .driver_data = &(struct acpi_gpiolib_dmi_quirk) { + .ignore_interrupt = "INT33FC:00@3", + }, + }, {} /* Terminating entry */ };
drivers/gpio/gpiolib-of.c +4 -0
@@ -512,6 +512,10 @@ static struct gpio_desc *of_find_gpio_rename(struct device_node *np, #if IS_ENABLED(CONFIG_SND_SOC_CS42L56) { "reset", "cirrus,gpio-nreset", "cirrus,cs42l56" }, #endif +#if IS_ENABLED(CONFIG_SND_SOC_MT2701_CS42448) + { "i2s1-in-sel-gpio1", NULL, "mediatek,mt2701-cs42448-machine" }, + { "i2s1-in-sel-gpio2", NULL, "mediatek,mt2701-cs42448-machine" }, +#endif #if IS_ENABLED(CONFIG_SND_SOC_TLV320AIC3X) { "reset", "gpio-reset", "ti,tlv320aic3x" }, { "reset", "gpio-reset", "ti,tlv320aic33" },
drivers/gpu/drm/amd/amdgpu/amdgpu_bios.c +5 -0
@@ -29,6 +29,7 @@#include "amdgpu.h" #include "atom.h" +#include <linux/device.h> #include <linux/pci.h> #include <linux/slab.h> #include <linux/acpi.h>
@@ -287,6 +288,10 @@ static bool amdgpu_atrm_get_bios(struct amdgpu_device *adev)if (adev->flags &AMD_IS_APU )return false; +/* ATRM is for on-platform devices only */ +if (dev_is_removable (&adev->pdev->dev)) +return false; +while ((pdev =pci_get_class (PCI_CLASS_DISPLAY_VGA <<8 , pdev)) !=NULL ) { dhandle =ACPI_HANDLE (&pdev->dev);if (!dhandle)
drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c +1 -0
@@ -183,6 +183,7 @@ int amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id, }rcu_read_unlock (); + *result =NULL ;return -ENOENT ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +1 -1
@@ -1411,7 +1411,7 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)if (r == -ENOMEM )DRM_ERROR ("Not enough memory for command submission!\n" );else if (r != -ERESTARTSYS && r != -EAGAIN ) -DRM_ERROR ("Failed to process the buffer list %d!\n" , r); +DRM_DEBUG ("Failed to process the buffer list %d!\n" , r); goto error_fini; }
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +6 -0
@@ -748,6 +748,9 @@ static ssize_t amdgpu_debugfs_regs_smc_read(struct file *f, char __user *buf,ssize_t result =0 ;int r; +if (!adev->smc_rreg) +return -EPERM ; +if (size &0x3 || *pos &0x3 )return -EINVAL ;
@@ -804,6 +807,9 @@ static ssize_t amdgpu_debugfs_regs_smc_write(struct file *f, const char __user *ssize_t result =0 ;int r; +if (!adev->smc_wreg) +return -EPERM ; +if (size &0x3 || *pos &0x3 )return -EINVAL ;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +8 -5
@@ -43,6 +43,7 @@#include <drm/drm_fb_helper.h> #include <drm/drm_probe_helper.h> #include <drm/amdgpu_drm.h> +#include <linux/device.h> #include <linux/vgaarb.h> #include <linux/vga_switcheroo.h> #include <linux/efi.h>
@@ -2018,7 +2019,6 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev)*/ static int amdgpu_device_ip_early_init (struct amdgpu_device *adev) { -struct drm_device *dev =adev_to_drm (adev);struct pci_dev *parent;int i, r;bool total;
@@ -2089,7 +2089,7 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev) (amdgpu_is_atpx_hybrid () ||amdgpu_has_atpx_dgpu_power_cntl ()) && ((adev->flags &AMD_IS_APU ) ==0 ) && - !pci_is_thunderbolt_attached(to_pci_dev(dev->dev))) + !dev_is_removable(&adev->pdev->dev)) adev->flags |= AMD_IS_PX;if (!(adev->flags &AMD_IS_APU )) {
@@ -2103,6 +2103,8 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev) adev->pm.pp_feature &= ~PP_GFXOFF_MASK ;if (amdgpu_sriov_vf (adev) && adev->asic_type ==CHIP_SIENNA_CICHLID ) adev->pm.pp_feature &= ~PP_OVERDRIVE_MASK ; +if (!amdgpu_device_pcie_dynamic_switching_supported ()) + adev->pm.pp_feature &= ~PP_PCIE_DPM_MASK ; total = true;for (i =0 ; i < adev->num_ip_blocks; i++) {
@@ -3901,7 +3903,7 @@ int amdgpu_device_init(struct amdgpu_device *adev, px =amdgpu_device_supports_px (ddev); -if (px || (!pci_is_thunderbolt_attached (adev->pdev) && +if (px || (!dev_is_removable (&adev->pdev->dev) &&apple_gmux_detect (NULL ,NULL )))vga_switcheroo_register_client (adev->pdev, &amdgpu_switcheroo_ops, px);
@@ -4046,7 +4048,7 @@ void amdgpu_device_fini_sw(struct amdgpu_device *adev) px =amdgpu_device_supports_px (adev_to_drm (adev)); -if (px || (!pci_is_thunderbolt_attached (adev->pdev) && +if (px || (!dev_is_removable (&adev->pdev->dev) &&apple_gmux_detect (NULL ,NULL )))vga_switcheroo_unregister_client (adev->pdev);
@@ -5183,7 +5185,8 @@ int amdgpu_device_gpu_recover(struct amdgpu_device *adev,* Flush RAM to disk so that after reboot * the user can read log and see why the system rebooted. */ -if (need_emergency_restart &&amdgpu_ras_get_context (adev)->reboot) { +if (need_emergency_restart &&amdgpu_ras_get_context (adev) && +amdgpu_ras_get_context (adev)->reboot) {DRM_WARN ("Emergency reboot." );ksys_sync_helper ();
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +21 -2
@@ -93,6 +93,7 @@MODULE_FIRMWARE (FIRMWARE_IP_DISCOVERY );#define mmRCC_CONFIG_MEMSIZE 0xde3 +#define mmMP0_SMN_C2PMSG_33 0x16061#define mmMM_INDEX 0x0#define mmMM_INDEX_HI 0x6#define mmMM_DATA 0x1
@@ -231,8 +232,26 @@ static int amdgpu_discovery_read_binary_from_sysmem(struct amdgpu_device *adev,static int amdgpu_discovery_read_binary_from_mem (struct amdgpu_device *adev,uint8_t *binary) { -uint64_t vram_size = (uint64_t )RREG32 (mmRCC_CONFIG_MEMSIZE) <<20 ; -int ret =0 ; +uint64_t vram_size; +u32 msg; +int i, ret =0 ; + +/* It can take up to a second for IFWI init to complete on some dGPUs, +* but generally it should be in the 60-100ms range. Normally this starts +* as soon as the device gets power so by the time the OS loads this has long +* completed. However, when a card is hotplugged via e.g., USB4, we need to +* wait for this to complete. Once the C2PMSG is updated, we can +* continue. +*/ +if (dev_is_removable (&adev->pdev->dev)) { +for (i =0 ; i <1000 ; i++) { + msg =RREG32 (mmMP0_SMN_C2PMSG_33); +if (msg &0x80000000 ) +break ; +msleep (1 ); + } + } + vram_size = (uint64_t )RREG32 (mmRCC_CONFIG_MEMSIZE) <<20 ;if (vram_size) {uint64_t pos = vram_size -DISCOVERY_TMR_OFFSET ;
drivers/gpu/drm/amd/amdgpu/amdgpu_mes.c +16 -0
@@ -556,8 +556,20 @@ static void amdgpu_mes_queue_init_mqd(struct amdgpu_device *adev, mqd_prop.hqd_queue_priority = p->hqd_queue_priority; mqd_prop.hqd_active = false; +if (p->queue_type ==AMDGPU_RING_TYPE_GFX || + p->queue_type ==AMDGPU_RING_TYPE_COMPUTE ) { +mutex_lock (&adev->srbm_mutex); +amdgpu_gfx_select_me_pipe_q (adev, p->ring->me, p->ring->pipe,0 ,0 ,0 ); + } + mqd_mgr->init_mqd (adev, q->mqd_cpu_ptr, &mqd_prop); +if (p->queue_type ==AMDGPU_RING_TYPE_GFX || + p->queue_type ==AMDGPU_RING_TYPE_COMPUTE ) { +amdgpu_gfx_select_me_pipe_q (adev,0 ,0 ,0 ,0 ,0 ); +mutex_unlock (&adev->srbm_mutex); + } +amdgpu_bo_unreserve (q->mqd_obj); }
@@ -993,9 +1005,13 @@ int amdgpu_mes_add_ring(struct amdgpu_device *adev, int gang_id,switch (queue_type) {case AMDGPU_RING_TYPE_GFX : ring->funcs = adev->gfx.gfx_ring[0 ].funcs; + ring->me = adev->gfx.gfx_ring[0 ].me; + ring->pipe = adev->gfx.gfx_ring[0 ].pipe;break ;case AMDGPU_RING_TYPE_COMPUTE : ring->funcs = adev->gfx.compute_ring[0 ].funcs; + ring->me = adev->gfx.compute_ring[0 ].me; + ring->pipe = adev->gfx.compute_ring[0 ].pipe;break ;case AMDGPU_RING_TYPE_SDMA : ring->funcs = adev->sdma.instance[0 ].ring.funcs;
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +6 -3
@@ -1373,7 +1373,8 @@ static void amdgpu_ras_sysfs_remove_bad_page_node(struct amdgpu_device *adev) {struct amdgpu_ras *con =amdgpu_ras_get_context (adev); -sysfs_remove_file_from_group (&adev->dev->kobj, +if (adev->dev->kobj.sd) +sysfs_remove_file_from_group (&adev->dev->kobj, &con->badpages_attr.attr,RAS_FS_NAME ); }
@@ -1390,7 +1391,8 @@ static int amdgpu_ras_sysfs_remove_feature_node(struct amdgpu_device *adev) .attrs = attrs, }; -sysfs_remove_group (&adev->dev->kobj, &group); +if (adev->dev->kobj.sd) +sysfs_remove_group (&adev->dev->kobj, &group);return 0 ; }
@@ -1437,7 +1439,8 @@ int amdgpu_ras_sysfs_remove(struct amdgpu_device *adev,if (!obj || !obj->attr_inuse)return -EINVAL ; -sysfs_remove_file_from_group (&adev->dev->kobj, +if (adev->dev->kobj.sd) +sysfs_remove_file_from_group (&adev->dev->kobj, &obj->sysfs_attr.attr,RAS_FS_NAME ); obj->attr_inuse =0 ;
drivers/gpu/drm/amd/amdgpu/amdgpu_vcn.c +7 -0
@@ -292,8 +292,15 @@ int amdgpu_vcn_suspend(struct amdgpu_device *adev)void *ptr;int i, idx; +bool in_ras_intr =amdgpu_ras_intr_triggered (); +cancel_delayed_work_sync (&adev->vcn.idle_work); +/* err_event_athub will corrupt VCPU buffer, so we need to +* restore fw data and clear buffer in amdgpu_vcn_resume() */ +if (in_ras_intr) +return 0 ; +for (i =0 ; i < adev->vcn.num_vcn_inst; ++i) {if (adev->vcn.harvest_config & (1 << i))continue ;
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c +2 -0
@@ -239,6 +239,8 @@ static int amdgpu_vkms_conn_get_modes(struct drm_connector *connector)for (i =0 ; i <ARRAY_SIZE (common_modes); i++) { mode =drm_cvt_mode (dev, common_modes[i].w, common_modes[i].h,60 , false, false, false); +if (!mode) +continue ;drm_mode_probed_add (connector, mode); }
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +18 -17
@@ -1095,8 +1095,8 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va, bo =gem_to_amdgpu_bo (gobj); } mem = bo->tbo.resource; -if (mem->mem_type ==TTM_PL_TT || - mem->mem_type ==AMDGPU_PL_PREEMPT ) +if (mem && (mem->mem_type ==TTM_PL_TT || + mem->mem_type ==AMDGPU_PL_PREEMPT )) pages_addr = bo->tbo.ttm->dma_address; }
@@ -2125,7 +2125,8 @@ long amdgpu_vm_wait_idle(struct amdgpu_vm *vm, long timeout)* Returns: * 0 for success, error for failure. */ -int amdgpu_vm_init (struct amdgpu_device *adev,struct amdgpu_vm *vm,int32_t xcp_id) +int amdgpu_vm_init (struct amdgpu_device *adev,struct amdgpu_vm *vm, +int32_t xcp_id) {struct amdgpu_bo *root_bo;struct amdgpu_bo_vm *root;
@@ -2144,6 +2145,7 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcpINIT_LIST_HEAD (&vm->done);INIT_LIST_HEAD (&vm->pt_freed);INIT_WORK (&vm->pt_free_work, amdgpu_vm_pt_free_work); +INIT_KFIFO (vm->faults); r =amdgpu_vm_init_entities (adev, vm);if (r)
@@ -2178,34 +2180,33 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm, int32_t xcp false, &root, xcp_id);if (r) goto error_free_delayed; - root_bo = &root->bo; + + root_bo =amdgpu_bo_ref (&root->bo); r =amdgpu_bo_reserve (root_bo, true); -if (r) - goto error_free_root; +if (r) { +amdgpu_bo_unref (&root->shadow); +amdgpu_bo_unref (&root_bo); + goto error_free_delayed; + } +amdgpu_vm_bo_base_init (&vm->root, vm, root_bo); r =dma_resv_reserve_fences (root_bo->tbo.base.resv,1 );if (r) - goto error_unreserve; - -amdgpu_vm_bo_base_init (&vm->root, vm, root_bo); + goto error_free_root; r =amdgpu_vm_pt_clear (adev, vm, root, false);if (r) - goto error_unreserve; + goto error_free_root;amdgpu_bo_unreserve (vm->root.bo); - -INIT_KFIFO (vm->faults); +amdgpu_bo_unref (&root_bo);return 0 ; -error_unreserve: -amdgpu_bo_unreserve (vm->root.bo); - error_free_root: -amdgpu_bo_unref (&root->shadow); +amdgpu_vm_pt_free_root (adev, vm); +amdgpu_bo_unreserve (vm->root.bo);amdgpu_bo_unref (&root_bo); - vm->root.bo =NULL ; error_free_delayed:dma_fence_put (vm->last_tlb_flush);
drivers/gpu/drm/amd/amdgpu/nbio_v2_3.c +3 -2
@@ -28,6 +28,7 @@#include "nbio/nbio_2_3_offset.h" #include "nbio/nbio_2_3_sh_mask.h" #include <uapi/linux/kfd_ioctl.h> +#include <linux/device.h> #include <linux/pci.h> #define smnPCIE_CONFIG_CNTL 0x11180044
@@ -361,7 +362,7 @@ static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev, data |=NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT <<PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT ; -if (pci_is_thunderbolt_attached (adev->pdev)) +if (dev_is_removable (&adev->pdev->dev)) data |=NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT <<PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT ;else data |=NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT <<PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT ;
@@ -480,7 +481,7 @@ static void nbio_v2_3_program_aspm(struct amdgpu_device *adev) def = data =RREG32_PCIE (smnPCIE_LC_CNTL); data |=NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT <<PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT ; -if (pci_is_thunderbolt_attached (adev->pdev)) +if (dev_is_removable (&adev->pdev->dev)) data |=NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT <<PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT ;else data |=NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT <<PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT ;
drivers/gpu/drm/amd/amdgpu/psp_v13_0.c +4 -1
@@ -59,6 +59,9 @@ MODULE_FIRMWARE("amdgpu/psp_14_0_0_ta.bin");/* Read USB-PD from LFB */ #define GFX_CMD_USB_PD_USE_LFB 0x480 +/* Retry times for vmbx ready wait */ +#define PSP_VMBX_POLLING_LIMIT 20000 +/* VBIOS gfl defines */ #define MBOX_READY_MASK 0x80000000#define MBOX_STATUS_MASK 0x0000FFFF
@@ -138,7 +141,7 @@ static int psp_v13_0_wait_for_vmbx_ready(struct psp_context *psp)struct amdgpu_device *adev = psp->adev;int retry_loop, ret; -for (retry_loop =0 ; retry_loop <70 ; retry_loop++) { +for (retry_loop =0 ; retry_loop <PSP_VMBX_POLLING_LIMIT ; retry_loop++) {/* Wait for bootloader to signify that is ready having bit 31 of C2PMSG_33 set to 1 */ ret = psp_wait_for(
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v10.c +3 -3
@@ -268,7 +268,7 @@ static void event_interrupt_wq_v10(struct kfd_node *dev, SQ_INTERRUPT_WORD_WAVE_CTXID1, ENCODING);switch (encoding) {case SQ_INTERRUPT_WORD_ENCODING_AUTO : - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, se %d, ttrace %d, wlt %d, ttrac_buf0_full %d, ttrac_buf1_full %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_AUTO_CTXID1, SE_ID),
@@ -284,7 +284,7 @@ static void event_interrupt_wq_v10(struct kfd_node *dev, THREAD_TRACE_UTC_ERROR));break ;case SQ_INTERRUPT_WORD_ENCODING_INST : - pr_debug("sq_intr: inst, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", + pr_debug_ratelimited("sq_intr: inst, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_WAVE_CTXID1, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0,
@@ -310,7 +310,7 @@ static void event_interrupt_wq_v10(struct kfd_node *dev,case SQ_INTERRUPT_WORD_ENCODING_ERROR : sq_intr_err_type =REG_GET_FIELD (context_id0,KFD_CTXID0 ,ERR_TYPE ); - pr_warn("sq_intr: error, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d, err_type %d\n", + pr_warn_ratelimited("sq_intr: error, se %d, data 0x%x, sa %d, priv %d, wave_id %d, simd_id %d, wgp_id %d, err_type %d\n", REG_GET_FIELD(context_id1, SQ_INTERRUPT_WORD_WAVE_CTXID1, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0,
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v11.c +3 -3
@@ -150,7 +150,7 @@ enum SQ_INTERRUPT_ERROR_TYPE {static void print_sq_intr_info_auto (uint32_t context_id0,uint32_t context_id1) { - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, ttrace %d, wlt %d, ttrace_buf_full %d, reg_tms %d, cmd_tms %d, host_cmd_ovf %d, host_reg_ovf %d, immed_ovf %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID0, THREAD_TRACE), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID0, WLT),
@@ -165,7 +165,7 @@ static void print_sq_intr_info_auto(uint32_t context_id0, uint32_t context_id1)static void print_sq_intr_info_inst (uint32_t context_id0,uint32_t context_id1) { - pr_debug( + pr_debug_ratelimited( "sq_intr: inst, data 0x%08x, sh %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID0, SH_ID),
@@ -177,7 +177,7 @@ static void print_sq_intr_info_inst(uint32_t context_id0, uint32_t context_id1)static void print_sq_intr_info_error (uint32_t context_id0,uint32_t context_id1) { - pr_warn( + pr_warn_ratelimited( "sq_intr: error, detail 0x%08x, type %d, sh %d, priv %d, wave_id %d, simd_id %d, wgp_id %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_ERROR_CTXID0, DETAIL), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_ERROR_CTXID0, TYPE),
drivers/gpu/drm/amd/amdkfd/kfd_int_process_v9.c +3 -3
@@ -333,7 +333,7 @@ static void event_interrupt_wq_v9(struct kfd_node *dev, encoding =REG_GET_FIELD (context_id0,SQ_INTERRUPT_WORD_WAVE_CTXID ,ENCODING );switch (encoding) {case SQ_INTERRUPT_WORD_ENCODING_AUTO : - pr_debug( + pr_debug_ratelimited( "sq_intr: auto, se %d, ttrace %d, wlt %d, ttrac_buf_full %d, reg_tms %d, cmd_tms %d, host_cmd_ovf %d, host_reg_ovf %d, immed_ovf %d, ttrace_utc_err %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, THREAD_TRACE),
@@ -347,7 +347,7 @@ static void event_interrupt_wq_v9(struct kfd_node *dev, REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_AUTO_CTXID, THREAD_TRACE_UTC_ERROR));break ;case SQ_INTERRUPT_WORD_ENCODING_INST : - pr_debug("sq_intr: inst, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, intr_data 0x%x\n", + pr_debug_ratelimited("sq_intr: inst, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, intr_data 0x%x\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SH_ID),
@@ -366,7 +366,7 @@ static void event_interrupt_wq_v9(struct kfd_node *dev,break ;case SQ_INTERRUPT_WORD_ENCODING_ERROR : sq_intr_err =REG_GET_FIELD (sq_int_data,KFD_SQ_INT_DATA ,ERR_TYPE ); - pr_warn("sq_intr: error, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, err_type %d\n", + pr_warn_ratelimited("sq_intr: error, se %d, data 0x%x, sh %d, priv %d, wave_id %d, simd_id %d, cu_id %d, err_type %d\n", REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SE_ID), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, DATA), REG_GET_FIELD(context_id0, SQ_INTERRUPT_WORD_WAVE_CTXID, SH_ID),
drivers/gpu/drm/amd/amdkfd/kfd_svm.c +10 -3
@@ -628,8 +628,15 @@ svm_range_vram_node_new(struct kfd_node *node, struct svm_range *prange,void svm_range_vram_node_free (struct svm_range *prange) { -svm_range_bo_unref (prange->svm_bo); - prange->ttm_res =NULL ; +/* serialize prange->svm_bo unref */ +mutex_lock (&prange->lock); +/* prange->svm_bo has not been unref */ +if (prange->ttm_res) { + prange->ttm_res =NULL ; +mutex_unlock (&prange->lock); +svm_range_bo_unref (prange->svm_bo); + }else +mutex_unlock (&prange->lock); } struct kfd_node *
@@ -760,7 +767,7 @@ svm_range_apply_attrs(struct kfd_process *p, struct svm_range *prange, prange->flags &= ~attrs[i].value;break ;case KFD_IOCTL_SVM_ATTR_GRANULARITY : - prange->granularity = attrs[i].value; + prange->granularity =min_t (uint32_t, attrs[i].value,0x3F );break ;default :WARN_ONCE (1 ,"svm_range_check_attrs wasn't called?" );
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +14 -10
@@ -2084,7 +2084,7 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev)struct dmub_srv_create_params create_params;struct dmub_srv_region_params region_params;struct dmub_srv_region_info region_info; -struct dmub_srv_fb_params fb_params; +struct dmub_srv_memory_params memory_params;struct dmub_srv_fb_info *fb_info;struct dmub_srv *dmub_srv;const struct dmcub_firmware_header_v1_0 *hdr;
@@ -2184,6 +2184,7 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev) adev->dm.dmub_fw->data +le32_to_cpu (hdr->header.ucode_array_offset_bytes) +PSP_HEADER_BYTES ; + region_params.is_mailbox_in_inbox = false; status =dmub_srv_calc_region_info (dmub_srv, ®ion_params, ®ion_info);
@@ -2207,10 +2208,10 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev)return r;/* Rebase the regions on the framebuffer address. */ -memset (&fb_params,0 ,sizeof (fb_params)); - fb_params.cpu_addr = adev->dm.dmub_bo_cpu_addr; - fb_params.gpu_addr = adev->dm.dmub_bo_gpu_addr; - fb_params.region_info = ®ion_info; +memset (&memory_params,0 ,sizeof (memory_params)); + memory_params.cpu_fb_addr = adev->dm.dmub_bo_cpu_addr; + memory_params.gpu_fb_addr = adev->dm.dmub_bo_gpu_addr; + memory_params.region_info = ®ion_info; adev->dm.dmub_fb_info =kzalloc (sizeof (*adev->dm.dmub_fb_info),GFP_KERNEL );
@@ -2222,7 +2223,7 @@ static int dm_dmub_sw_init(struct amdgpu_device *adev)return -ENOMEM ; } - status =dmub_srv_calc_fb_info (dmub_srv, &fb_params, fb_info); + status =dmub_srv_calc_mem_info (dmub_srv, &memory_params, fb_info);if (status !=DMUB_STATUS_OK ) {DRM_ERROR ("Error calculating DMUB FB info: %d\n" , status);return -EINVAL ;
@@ -7430,6 +7431,9 @@ static int amdgpu_dm_i2c_xfer(struct i2c_adapter *i2c_adap,int i;int result = -EIO ; +if (!ddc_service->ddc_pin || !ddc_service->ddc_pin->hw_info.hw_supported) +return result; + cmd.payloads =kcalloc (num,sizeof (struct i2c_payload ),GFP_KERNEL );if (!cmd.payloads)
@@ -9538,14 +9542,14 @@ static bool should_reset_plane(struct drm_atomic_state *state,struct drm_plane *other;struct drm_plane_state *old_other_state, *new_other_state;struct drm_crtc_state *new_crtc_state; +struct amdgpu_device *adev =drm_to_adev (plane->dev);int i;/* -* TODO: Remove this hack once the checks below are sufficient -* enough to determine when we need to reset all the planes on -* the stream. +* TODO: Remove this hack for all asics once it proves that the +* fast updates works fine on DCN3.2+. */ -if (state->allow_modeset) +if (adev->ip_versions[DCE_HWIP ][0 ] <IP_VERSION (3 ,2 ,0 ) && state->allow_modeset)return true;/* Exit early if we know that we're adding or removing the plane. */
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c +14 -15
@@ -1598,31 +1598,31 @@ enum dc_status dm_dp_mst_is_port_support_mode(unsigned int upper_link_bw_in_kbps =0 , down_link_bw_in_kbps =0 ;unsigned int max_compressed_bw_in_kbps =0 ;struct dc_dsc_bw_range bw_range = {0 }; -struct drm_dp_mst_topology_mgr *mst_mgr; +uint16_t full_pbn = aconnector->mst_output_port->full_pbn;/* -* check if the mode could be supported if DSC pass-through is supported -* AND check if there enough bandwidth available to support the mode -* with DSC enabled. +* Consider the case with the depth of the mst topology tree is equal or less than 2 +* A. When dsc bitstream can be transmitted along the entire path +* 1. dsc is possible between source and branch/leaf device (common dsc params is possible), AND +* 2. dsc passthrough supported at MST branch, or +* 3. dsc decoding supported at leaf MST device +* Use maximum dsc compression as bw constraint +* B. When dsc bitstream cannot be transmitted along the entire path +* Use native bw as bw constraint */ if (is_dsc_common_config_possible (stream, &bw_range) && - aconnector->mst_output_port->passthrough_aux) { - mst_mgr = aconnector->mst_output_port->mgr; -mutex_lock (&mst_mgr->lock); - + (aconnector->mst_output_port->passthrough_aux || + aconnector->dsc_aux == &aconnector->mst_output_port->aux)) { cur_link_settings = stream->link->verified_link_cap; upper_link_bw_in_kbps =dc_link_bandwidth_kbps (aconnector->dc_link, - &cur_link_settings - ); - down_link_bw_in_kbps =kbps_from_pbn (aconnector->mst_output_port->full_pbn); + &cur_link_settings); + down_link_bw_in_kbps =kbps_from_pbn (full_pbn);/* pick the bottleneck */ end_to_end_bw_in_kbps =min (upper_link_bw_in_kbps, down_link_bw_in_kbps); -mutex_unlock (&mst_mgr->lock); -/* * use the maximum dsc compression bandwidth as the required * bandwidth for the mode
@@ -1637,8 +1637,7 @@ enum dc_status dm_dp_mst_is_port_support_mode(/* check if mode could be supported within full_pbn */ bpp =convert_dc_color_depth_into_bpc (stream->timing.display_color_depth) *3 ; pbn =drm_dp_calc_pbn_mode (stream->timing.pix_clk_100hz /10 , bpp, false); - -if (pbn > aconnector->mst_output_port->full_pbn) +if (pbn > full_pbn)return DC_FAIL_BANDWIDTH_VALIDATE ; }
drivers/gpu/drm/amd/display/dc/core/dc.c +24 -54
63 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/core/dc_resource.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dc_types.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +9 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.c +105 -3
108 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_hwseq.h +9 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/dcn32/dcn32_init.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/inc/hw_sequencer.h +8 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dc/link/link_detection.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/dmub_srv.h +14 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/display/dmub/src/dmub_srv.c +39 -11
50 lines not on this page · raw message
drivers/gpu/drm/amd/pm/powerplay/hwmgr/pptable_v1_0.h +8 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu7_hwmgr.c +1 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/inc/amdgpu_smu.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/navi10_ppt.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu11/sienna_cichlid_ppt.c +5 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c +6 -34
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c +5 -4
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/arm/display/komeda/komeda_pipeline_state.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_cdclk.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_dp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_tc.c +8 -3
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/gem/i915_gem_context.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-arm-versatile.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-sitronix-st7703.c +13 -12
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panel/panel-tpo-tpg110.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/radeon/radeon_connectors.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/hid/hid-lenovo.c +79 -39
118 lines not on this page · raw message
drivers/i2c/busses/i2c-designware-master.c +16 -3
Lines of this file are not shown. View the raw message.
drivers/i2c/busses/i2c-pxa.c +68 -8
76 lines not on this page · raw message
drivers/i3c/master/mipi-i3c-hci/dat_v1.c +19 -10
Lines of this file are not shown. View the raw message.
drivers/i3c/master/svc-i3c-master.c +53 -1
54 lines not on this page · raw message
drivers/md/dm-bufio.c +62 -25
87 lines not on this page · raw message
drivers/media/pci/cobalt/cobalt-driver.c +6 -5
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-csid-gen2.c +5 -6
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-csiphy-3ph-1-0.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-vfe-170.c +3 -19
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-vfe-480.c +3 -19
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-vfe.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_msgs.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_parser.c +15 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_venus.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-rds-gen.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/mfd/qcom-spmi-pmic.c +72 -29
101 lines not on this page · raw message
drivers/mtd/nand/raw/intel-nand-controller.c +10 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/adminq.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/core.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/dev.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/pds_core/devlink.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atl1c/atl1c.h +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/atheros/atl1c/atl1c_main.c +16 -51
67 lines not on this page · raw message
drivers/net/ethernet/cortina/gemini.c +29 -16
45 lines not on this page · raw message
drivers/net/ethernet/engleder/tsnep_main.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_rx.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_tx.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_debugfs.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c +25 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c +22 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/ptp.c +16 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_rx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/tc_tun.c +14 -16
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_ethtool.c +9 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_rep.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_tc.c +32 -28
60 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/en_tx.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eq.c +19 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/irq_affinity.c +0 -42
42 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/lib/clock.c +6 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/pci_irq.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c +13 -102
115 lines not on this page · raw message
drivers/net/ethernet/realtek/r8169_main.c +32 -14
46 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/icssg/icssg_prueth.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/net/ipvlan/ipvlan_core.c +25 -16
41 lines not on this page · raw message
drivers/net/wireless/ath/ath10k/debug.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath10k/snoc.c +14 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath11k/dp_rx.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath12k/dp_rx.c +31 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/htc_drv_debug.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/link.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/tx.c +9 -5
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7915/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7921/pci.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt792x_core.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt7996/main.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/microchip/wilc1000/wlan.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/purelifi/plfxlc/mac.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/virtual/mac80211_hwsim.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-exynos.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pci-keystone.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-designware.c +48 -45
93 lines not on this page · raw message
drivers/pci/controller/dwc/pcie-kirin.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-qcom-ep.c +17 -0
Lines of this file are not shown. View the raw message.
drivers/pci/controller/dwc/pcie-tegra194.c +4 -5
Lines of this file are not shown. View the raw message.
drivers/pci/quirks.c +43 -10
53 lines not on this page · raw message
drivers/phy/qualcomm/phy-qcom-eusb2-repeater.c +96 -35
131 lines not on this page · raw message
drivers/platform/chrome/cros_ec_proto_test.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pmdomain/amlogic/meson-ee-pwrc.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/scsi/ibmvscsi/ibmvfc.c +122 -2
124 lines not on this page · raw message
drivers/scsi/megaraid/megaraid_sas_base.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/spi/spi.c +39 -17
56 lines not on this page · raw message
drivers/thermal/intel/intel_powerclamp.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/usb/dwc3/core.c +124 -36
160 lines not on this page · raw message
drivers/usb/typec/ucsi/ucsi_glink.c +53 -1
54 lines not on this page · raw message
fs/btrfs/ctree.c +59 -50
109 lines not on this page · raw message
fs/ext4/extents_status.c +91 -36
127 lines not on this page · raw message
fs/ext4/file.c +74 -95
169 lines not on this page · raw message
fs/f2fs/extent_cache.c +21 -32
53 lines not on this page · raw message
fs/smb/client/cached_dir.c +49 -35
84 lines not on this page · raw message
include/linux/workqueue.h +39 -7
46 lines not on this page · raw message
kernel/bpf/verifier.c +58 -25
83 lines not on this page · raw message
kernel/torture.c +19 -39
58 lines not on this page · raw message
mm/damon/sysfs.c +53 -36
89 lines not on this page · raw message
net/bridge/netfilter/nf_conntrack_bridge.c +1 -1
Lines of this file are not shown. View the raw message.
net/netfilter/nf_tables_api.c +39 -19
58 lines not on this page · raw message
net/sunrpc/xprtrdma/svc_rdma_recvfrom.c +2 -1
Lines of this file are not shown. View the raw message.
samples/bpf/syscall_tp_user.c +31 -14
45 lines not on this page · raw message
scripts/gcc-plugins/randomize_layout_plugin.c +8 -13
Lines of this file are not shown. View the raw message.
security/apparmor/audit.c +36 -35
71 lines not on this page · raw message
security/apparmor/domain.c +64 -33
97 lines not on this page · raw message
security/apparmor/file.c +122 -77
199 lines not on this page · raw message
security/apparmor/ipc.c +28 -21
49 lines not on this page · raw message
security/apparmor/lib.c +25 -25
50 lines not on this page · raw message
security/apparmor/lsm.c +74 -39
113 lines not on this page · raw message
security/apparmor/mount.c +101 -65
166 lines not on this page · raw message
security/apparmor/net.c +33 -28
61 lines not on this page · raw message
security/apparmor/policy.c +42 -31
73 lines not on this page · raw message
security/apparmor/resource.c +31 -23
54 lines not on this page · raw message
security/apparmor/task.c +33 -25
58 lines not on this page · raw message
security/integrity/iint.c +37 -11
48 lines not on this page · raw message
security/keys/trusted-keys/trusted_core.c +10 -10
Lines of this file are not shown. View the raw message.
security/keys/trusted-keys/trusted_tee.c +20 -44
64 lines not on this page · raw message
sound/soc/intel/common/soc-acpi-intel-cht-match.c +43 -0
43 lines not on this page · raw message
sound/soc/mediatek/mt8188/mt8188-mt6359.c +21 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/progs/verifier_loops1.c +6 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/verifier/calls.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/verifier/ld_imm64.c +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/clone3/clone3.c +6 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/efivarfs/create-read.c +2 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/lkdtm/tests.txt +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/Makefile +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cache.c +3 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cat_test.c +7 -14
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/cmt_test.c +25 -12
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/mba_test.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/mbm_test.c +4 -5
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl.h +10 -13
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrl_tests.c +74 -58
132 lines not on this page · raw message
tools/testing/selftests/resctrl/resctrl_val.c +20 -16
Lines of this file are not shown. View the raw message.
tools/testing/selftests/resctrl/resctrlfs.c +27 -42
69 lines not on this page · 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.
Quoted 2 lines · Greg Kroah-Hartman
Mark Brown (1):
regmap: Ensure range selector registers are updated after cache sync
This commit caused a regression, accessing a pcm512x based soundcard now fails with EINVAL and dmesg shows sync cache and pm_runtime_get errors:
# speaker-test -D hw:CARD=PCM5122,DEV=0 -c 2 -t sine speaker-test 1.1.8
Playback device is hw:CARD=PCM5122,DEV=0
Stream parameters are 48000Hz, S16_LE, 2 channels
Sine wave rate is 440.0000Hz
Playback open error: -22,Invalid argument
# dmesg | grep pcm512x [ 228.794676] pcm512x 1-004c: Failed to sync cache: -22 [ 228.794740] pcm512x 1-004c: ASoC: error at snd_soc_pcm_component_pm_runtime_get on pcm512x.1-004c: -22
We initially noticed that on the downstream RPi kernels 6.6.3 and 6.1.64 https://github.com/raspberrypi/linux/issues/5763 and I now reproduced that with vanilla 6.6.3 running on a RPi2 (multi_v7_defconfig plus CONFIG_SND_SOC_PCM512x_I2C and a pcm5122 soundcard with simple-audio-card driver).
Reverting the commit fixes the issue.
I'm not familiar with the regcache code but it looks a bit like the return value from the regcache_read check is leaking out - not assigning the value to ret seems to resolve the issue, too (no idea though if that would be the correct fix):
drivers/base/regmap/regcache.c +1 -2
@@ -410,8 +410,7 @@ int regcache_sync(struct regmap *map) rb_entry(node, struct regmap_range_node, node);/* If there's nothing in the cache there's nothing to sync */ - ret =regcache_read (map, this->selector_reg, &i); -if (ret !=0 ) +if (regcache_read (map, this->selector_reg, &i) !=0 )continue ; ret =_regmap_write (map, this->selector_reg, i);
so long,
Hias
Quoted 4 lines · Matthias Reichl
I'm not familiar with the regcache code but it looks a bit like the return value from the
regcache_readcheck is leaking out - not assigning the value to ret seems to resolve the issue, too (no idea though if that would be the correct fix):
That looks sensible, can you submit as a proper patch please?
Quoted 8 lines · Mark Brown
Quoted 4 lines · Matthias Reichl
I'm not familiar with the regcache code but it looks a bit like the return value from the
regcache_readcheck is leaking out - not assigning the value to ret seems to resolve the issue, too (no idea though if that would be the correct fix):That looks sensible, can you submit as a proper patch please?
Thanks a lot for the feedback, I sent out the patch
https://lore.kernel.org/lkml/[email protected]/T/#u
so long,
Hias