Linux 6.12.44
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.12.44 kernel.
All users of the 6.12 kernel series must upgrade.
The updated 6.12.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.12.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/devicetree/bindings/display/sprd/sprd,sharkl3-dpu.yaml | 2 Documentation/devicetree/bindings/display/sprd/sprd,sharkl3-dsi-host.yaml | 2 Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml | 4 Documentation/networking/mptcp-sysctl.rst | 2 Makefile | 4 arch/arm64/boot/dts/exynos/google/gs101.dtsi | 1 arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts | 36 + arch/arm64/boot/dts/ti/k3-am62-main.dtsi | 1 arch/arm64/boot/dts/ti/k3-am62-phycore-som.dtsi | 1 arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi | 12 arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts | 2 arch/arm64/boot/dts/ti/k3-am625-sk.dts | 24 arch/arm64/boot/dts/ti/k3-am62a-phycore-som.dtsi | 1 arch/arm64/boot/dts/ti/k3-am62a7-sk.dts | 7 arch/arm64/boot/dts/ti/k3-am62p5-sk.dts | 2 arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi | 24 arch/arm64/boot/dts/ti/k3-am642-evm.dts | 1 arch/arm64/boot/dts/ti/k3-am654-base-board.dts | 1 arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi | 1 arch/arm64/boot/dts/ti/k3-am69-sk.dts | 1 arch/arm64/boot/dts/ti/k3-pinctrl.h | 15 arch/loongarch/kernel/module-sections.c | 36 - arch/loongarch/kvm/vcpu.c | 8 arch/m68k/kernel/head.S | 31 arch/mips/crypto/chacha-core.S | 20 arch/parisc/Makefile | 4 arch/parisc/include/asm/pgtable.h | 7 arch/parisc/include/asm/special_insns.h | 28 arch/parisc/include/asm/uaccess.h | 21 arch/parisc/kernel/cache.c | 6 arch/parisc/kernel/entry.S | 17 arch/parisc/kernel/syscall.S | 30 arch/parisc/lib/memcpy.c | 19 arch/parisc/mm/fault.c | 4 arch/powerpc/boot/Makefile | 1 arch/s390/boot/vmem.c | 3 arch/s390/hypfs/hypfs_dbfs.c | 19 arch/x86/coco/sev/shared.c | 3 arch/x86/include/asm/xen/hypercall.h | 5 arch/x86/kernel/cpu/hygon.c | 3 arch/x86/kvm/mmu/mmu.c | 10 drivers/accel/habanalabs/gaudi2/gaudi2.c | 2 drivers/acpi/pfr_update.c | 2 drivers/ata/Kconfig | 36 - drivers/ata/libata-scsi.c | 58 - drivers/base/power/runtime.c | 27 drivers/bluetooth/btmtk.c | 7 drivers/bus/mhi/host/boot.c | 8 drivers/bus/mhi/host/internal.h | 4 drivers/bus/mhi/host/main.c | 12 drivers/cdx/controller/cdx_rpmsg.c | 3 drivers/comedi/comedi_fops.c | 5 drivers/comedi/drivers.c | 23 drivers/comedi/drivers/pcl726.c | 3 drivers/cpufreq/armada-8k-cpufreq.c | 2 drivers/cpuidle/governors/menu.c | 101 -- drivers/crypto/caam/ctrl.c | 5 drivers/crypto/caam/intern.h | 1 drivers/crypto/intel/qat/qat_common/adf_common_drv.h | 1 drivers/crypto/intel/qat/qat_common/adf_init.c | 1 drivers/crypto/intel/qat/qat_common/adf_isr.c | 5 drivers/crypto/intel/qat/qat_common/qat_algs.c | 12 drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h | 125 ++- drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c | 35 drivers/fpga/zynq-fpga.c | 10 drivers/gpu/drm/Kconfig | 5 drivers/gpu/drm/Makefile | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 5 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c | 76 +- drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 drivers/gpu/drm/amd/amdgpu/imu_v12_0.c | 2 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 57 - drivers/gpu/drm/amd/amdgpu/mmhub_v4_1_0.c | 34 drivers/gpu/drm/amd/amdgpu/soc15.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_module.c | 2 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c | 28 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 2 drivers/gpu/drm/amd/display/dc/bios/bios_parser.c | 5 drivers/gpu/drm/amd/display/dc/bios/command_table.c | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c | 1 drivers/gpu/drm/amd/display/dc/clk_mgr/dce100/dce_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c | 40 - drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c | 31 drivers/gpu/drm/amd/display/dc/core/dc.c | 34 drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c | 3 drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 6 drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c | 30 drivers/gpu/drm/display/drm_dp_helper.c | 2 drivers/gpu/drm/drm_draw.c | 155 ++++ drivers/gpu/drm/drm_draw_internal.h | 56 + drivers/gpu/drm/drm_format_helper.c | 234 ++++-- drivers/gpu/drm/drm_format_internal.h | 127 +++ drivers/gpu/drm/drm_panic.c | 269 ------- drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c | 4 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h | 17 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_i2c.c | 46 - drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c | 29 drivers/gpu/drm/i915/display/intel_tc.c | 58 + drivers/gpu/drm/nouveau/nvif/vmm.c | 3 drivers/gpu/drm/tests/drm_format_helper_test.c | 176 ++-- drivers/gpu/drm/xe/Kconfig | 1 drivers/hwmon/gsc-hwmon.c | 4 drivers/iio/adc/ad7173.c | 3 drivers/iio/adc/ad_sigma_delta.c | 4 drivers/iio/imu/bno055/bno055.c | 11 drivers/iio/imu/inv_icm42600/inv_icm42600.h | 8 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 33 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 22 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h | 10 drivers/iio/imu/inv_icm42600/inv_icm42600_core.c | 6 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 43 - drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c | 12 drivers/iio/light/adjd_s311.c | 2 drivers/iio/light/as73211.c | 4 drivers/iio/light/bh1745.c | 2 drivers/iio/light/isl29125.c | 2 drivers/iio/light/ltr501.c | 2 drivers/iio/light/max44000.c | 2 drivers/iio/light/rohm-bu27034.c | 2 drivers/iio/light/rpr0521.c | 2 drivers/iio/light/st_uvis25.h | 2 drivers/iio/light/tcs3414.c | 2 drivers/iio/light/tcs3472.c | 2 drivers/iio/pressure/bmp280-core.c | 9 drivers/iio/proximity/isl29501.c | 16 drivers/iio/temperature/maxim_thermocouple.c | 26 drivers/infiniband/hw/bnxt_re/ib_verbs.c | 8 drivers/infiniband/hw/bnxt_re/main.c | 23 drivers/infiniband/hw/bnxt_re/qplib_fp.c | 30 drivers/infiniband/hw/bnxt_re/qplib_fp.h | 2 drivers/infiniband/hw/bnxt_re/qplib_res.c | 2 drivers/infiniband/hw/erdma/erdma_verbs.c | 4 drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 6 drivers/infiniband/hw/hns/hns_roce_restrack.c | 9 drivers/infiniband/sw/rxe/rxe_net.c | 29 drivers/infiniband/sw/rxe/rxe_qp.c | 2 drivers/iommu/amd/init.c | 4 drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c | 2 drivers/md/dm-crypt.c | 49 + drivers/md/dm.c | 17 drivers/media/cec/usb/rainshadow/rainshadow-cec.c | 3 drivers/media/i2c/hi556.c | 26 drivers/media/i2c/mt9m114.c | 8 drivers/media/i2c/ov2659.c | 3 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c | 12 drivers/media/pci/intel/ivsc/mei_ace.c | 2 drivers/media/pci/intel/ivsc/mei_csi.c | 2 drivers/media/platform/qcom/camss/camss.c | 4 drivers/media/platform/qcom/venus/core.c | 18 drivers/media/platform/qcom/venus/core.h | 2 drivers/media/platform/qcom/venus/hfi_venus.c | 5 drivers/media/platform/qcom/venus/vdec.c | 5 drivers/media/platform/qcom/venus/venc.c | 5 drivers/media/platform/raspberrypi/pisp_be/Kconfig | 1 drivers/media/platform/raspberrypi/pisp_be/pisp_be.c | 5 drivers/media/platform/verisilicon/rockchip_vpu_hw.c | 9 drivers/media/test-drivers/vivid/vivid-ctrls.c | 3 drivers/media/test-drivers/vivid/vivid-vid-cap.c | 4 drivers/media/usb/gspca/vicam.c | 10 drivers/media/usb/usbtv/usbtv-video.c | 4 drivers/media/v4l2-core/v4l2-ctrls-core.c | 1 drivers/memstick/core/memstick.c | 1 drivers/memstick/host/rtsx_usb_ms.c | 1 drivers/mmc/host/sdhci-pci-gli.c | 37 - drivers/mmc/host/sdhci_am654.c | 18 drivers/most/core.c | 2 drivers/mtd/nand/raw/fsmc_nand.c | 2 drivers/mtd/nand/raw/renesas-nand-controller.c | 6 drivers/mtd/nand/spi/core.c | 5 drivers/mtd/spi-nor/swp.c | 19 drivers/net/bonding/bond_3ad.c | 67 + drivers/net/bonding/bond_options.c | 1 drivers/net/can/ti_hecc.c | 2 drivers/net/dsa/microchip/ksz_common.c | 6 drivers/net/ethernet/google/gve/gve_main.c | 2 drivers/net/ethernet/intel/igc/igc_main.c | 14 drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c | 4 drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c | 4 drivers/net/ethernet/mediatek/mtk_ppe_offload.c | 2 drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h | 1 drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c | 18 drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c | 12 drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c | 4 drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h | 87 ++ drivers/net/ethernet/mellanox/mlx5/core/port.c | 40 - drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 2 drivers/net/ethernet/mellanox/mlxsw/trap.h | 1 drivers/net/ethernet/microchip/lan865x/lan865x.c | 21 drivers/net/ethernet/realtek/rtase/rtase.h | 2 drivers/net/ethernet/ti/icssg/icssg_prueth.c | 72 +- drivers/net/ethernet/xilinx/xilinx_axienet_main.c | 8 drivers/net/phy/mscc/mscc.h | 12 drivers/net/phy/mscc/mscc_main.c | 12 drivers/net/phy/mscc/mscc_ptp.c | 49 + drivers/net/ppp/ppp_generic.c | 17 drivers/net/usb/asix_devices.c | 2 drivers/net/wireless/ath/ath11k/ce.c | 3 drivers/net/wireless/ath/ath11k/dp_rx.c | 3 drivers/net/wireless/ath/ath11k/hal.c | 33 drivers/net/wireless/ath/ath12k/ce.c | 3 drivers/net/wireless/ath/ath12k/hal.c | 38 - drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c | 2 drivers/pci/controller/dwc/pci-imx6.c | 32 drivers/pci/controller/pcie-rockchip-host.c | 49 - drivers/pci/controller/pcie-rockchip.h | 11 drivers/pci/endpoint/pci-ep-cfs.c | 1 drivers/pci/endpoint/pci-epf-core.c | 2 drivers/pci/pcie/portdrv.c | 2 drivers/phy/qualcomm/phy-qcom-m31.c | 14 drivers/platform/chrome/cros_ec.c | 3 drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c | 5 drivers/pwm/pwm-imx-tpm.c | 9 drivers/pwm/pwm-mediatek.c | 71 + drivers/s390/char/sclp.c | 11 drivers/scsi/mpi3mr/mpi3mr.h | 6 drivers/scsi/mpi3mr/mpi3mr_fw.c | 17 drivers/scsi/mpi3mr/mpi3mr_os.c | 2 drivers/scsi/qla4xxx/ql4_os.c | 2 drivers/scsi/scsi_lib.c | 3 drivers/soc/qcom/mdt_loader.c | 43 + drivers/soc/tegra/pmc.c | 51 - drivers/spi/spi-fsl-lpspi.c | 8 drivers/staging/media/imx/imx-media-csc-scaler.c | 2 drivers/tty/serial/8250/8250_port.c | 3 drivers/tty/vt/defkeymap.c_shipped | 112 +++ drivers/tty/vt/keyboard.c | 2 drivers/ufs/host/ufs-exynos.c | 4 drivers/ufs/host/ufshcd-pci.c | 42 + drivers/usb/atm/cxacru.c | 106 +- drivers/usb/core/hcd.c | 20 drivers/usb/core/quirks.c | 1 drivers/usb/dwc3/dwc3-imx8mp.c | 7 drivers/usb/dwc3/dwc3-meson-g12a.c | 3 drivers/usb/dwc3/dwc3-pci.c | 2 drivers/usb/dwc3/ep0.c | 20 drivers/usb/dwc3/gadget.c | 19 drivers/usb/gadget/udc/renesas_usb3.c | 1 drivers/usb/host/xhci-hub.c | 3 drivers/usb/host/xhci-mem.c | 22 drivers/usb/host/xhci-pci-renesas.c | 7 drivers/usb/host/xhci-ring.c | 9 drivers/usb/host/xhci.c | 21 drivers/usb/host/xhci.h | 3 drivers/usb/musb/omap2430.c | 14 drivers/usb/storage/realtek_cr.c | 2 drivers/usb/storage/unusual_devs.h | 29 drivers/usb/typec/class.c | 7 drivers/usb/typec/tcpm/fusb302.c | 32 drivers/usb/typec/tcpm/maxim_contaminant.c | 58 + drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c | 3 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy_stub.c | 3 drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c | 4 drivers/usb/typec/tcpm/tcpci_maxim.h | 1 drivers/usb/typec/tcpm/tcpm.c | 7 drivers/vhost/vsock.c | 6 drivers/video/console/vgacon.c | 2 fs/btrfs/block-group.c | 59 - fs/btrfs/ctree.c | 9 fs/btrfs/free-space-tree.c | 17 fs/btrfs/qgroup.c | 38 - fs/btrfs/send.c | 359 +++++----- fs/btrfs/subpage.c | 19 fs/btrfs/super.c | 13 fs/btrfs/transaction.c | 1 fs/btrfs/zoned.c | 13 fs/buffer.c | 2 fs/debugfs/inode.c | 11 fs/ext4/fsmap.c | 23 fs/ext4/indirect.c | 4 fs/ext4/inode.c | 2 fs/ext4/orphan.c | 5 fs/ext4/super.c | 8 fs/f2fs/node.c | 10 fs/file.c | 75 -- fs/jbd2/checkpoint.c | 1 fs/namespace.c | 34 fs/netfs/write_collect.c | 10 fs/netfs/write_issue.c | 4 fs/nfs/pagelist.c | 9 fs/nfs/write.c | 29 fs/overlayfs/copy_up.c | 2 fs/smb/client/smb2ops.c | 2 fs/smb/server/connection.c | 3 fs/smb/server/connection.h | 7 fs/smb/server/oplock.c | 13 fs/smb/server/transport_rdma.c | 5 fs/smb/server/transport_rdma.h | 4 fs/smb/server/transport_tcp.c | 26 fs/splice.c | 3 fs/squashfs/super.c | 14 fs/xfs/xfs_itable.c | 6 include/drm/drm_format_helper.h | 12 include/linux/call_once.h | 47 - include/linux/compiler.h | 8 include/linux/iosys-map.h | 7 include/linux/iov_iter.h | 20 include/linux/kcov.h | 47 - include/linux/mlx5/mlx5_ifc.h | 14 include/linux/mlx5/port.h | 85 -- include/linux/netfs.h | 1 include/linux/nfs_page.h | 1 include/net/bond_3ad.h | 1 include/uapi/linux/pfrut.h | 1 io_uring/futex.c | 3 io_uring/net.c | 27 kernel/cgroup/cpuset.c | 9 kernel/sched/ext.c | 18 kernel/trace/ftrace.c | 19 kernel/trace/trace.c | 34 kernel/trace/trace.h | 10 mm/damon/paddr.c | 4 mm/debug_vm_pgtable.c | 9 mm/filemap.c | 3 mm/memory-failure.c | 8 net/bluetooth/hci_conn.c | 3 net/bluetooth/hci_event.c | 8 net/bluetooth/hci_sync.c | 19 net/bridge/br_multicast.c | 16 net/bridge/br_private.h | 2 net/core/dev.c | 12 net/hsr/hsr_slave.c | 8 net/ipv4/netfilter/nf_reject_ipv4.c | 6 net/ipv6/netfilter/nf_reject_ipv6.c | 5 net/ipv6/seg6_hmac.c | 6 net/mptcp/options.c | 6 net/mptcp/pm_netlink.c | 19 net/sched/sch_cake.c | 14 net/sched/sch_htb.c | 2 net/smc/af_smc.c | 3 net/tls/tls_sw.c | 7 net/vmw_vsock/virtio_transport.c | 12 rust/kernel/alloc/allocator.rs | 30 rust/kernel/alloc/allocator_test.rs | 11 security/apparmor/lsm.c | 4 sound/core/timer.c | 4 sound/pci/hda/patch_realtek.c | 2 sound/soc/sof/amd/acp-loader.c | 6 sound/usb/stream.c | 2 sound/usb/validate.c | 2 tools/testing/selftests/net/mptcp/pm_netlink.sh | 1 341 files changed, 3787 insertions(+), 2216 deletions(-)
Adrian Hunter (1):
scsi: ufs: ufs-pci: Fix default runtime and system PM levels
Al Viro (2):
use uniform permission checks for all mount propagation changes alloc_fdtable(): change calling conventions.
Alex Deucher (4):
drm/amdgpu/discovery: fix fw based ip discovery drm/amdgpu: update mmhub 3.0.1 client id mappings drm/amdgpu: update mmhub 4.1.0 client id mappings drm/amdgpu/swm14: Update power limit logic
Alexander Sverdlin (1):
arm64: dts: ti: k3-pinctrl: Enable Schmitt Trigger by default
Alexander Wilhelm (1):
bus: mhi: host: Fix endianness of BHI vector table
Alexei Lazar (1):
net/mlx5e: Query FW for buffer ownership
Amber Lin (1):
drm/amdkfd: Destroy KFD debugfs after destroy KFD wq
Amit Sunil Dhamne (2):
usb: typec: maxim_contaminant: disable low power mode when reading comparator values
usb: typec: maxim_contaminant: re-enable cc toggle if cc is open and port is clean
Anantha Prabhu (1):
RDMA/bnxt_re: Fix to initialize the PBL array
Andrea Righi (2):
sched/ext: Fix invalid task state transitions on class switch
sched_ext: initialize built-in idle state before ops.init()
Andreas Dilger (1):
ext4: check fast symlink for ea_inode correctly
André Draszik (1):
scsi: ufs: exynos: Fix programming of HCI_UTRL_NEXUS_TYPE
Andy Shevchenko (1):
iio: imu: inv_icm42600: Convert to uXX and sXX integer types
Archana Patni (1):
scsi: ufs: ufs-pci: Fix hibernate state transition for Intel MTL-like host controllers
Armen Ratner (1):
net/mlx5e: Preserve shared buffer capacity during headroom updates
Baihan Li (3):
drm/hisilicon/hibmc: refactored struct hibmc_drm_private drm/hisilicon/hibmc: fix the i2c device resource leak when vdac init failed drm/hisilicon/hibmc: fix the hibmc loaded failed bug
Baokun Li (2):
jbd2: prevent softlockup in jbd2_log_do_checkpoint()
ext4: preserve SB_I_VERSION on remount
Bharat Bhushan (3):
crypto: octeontx2 - Fix address alignment issue on ucode loading
crypto: octeontx2 - Fix address alignment on CN10K A0/A1 and OcteonTX2
crypto: octeontx2 - Fix address alignment on CN10KB and CN10KA-B0
Bibo Mao (1):
LoongArch: KVM: Make function kvm_own_lbt() robust
Bingbu Cao (1):
media: hi556: correct the test pattern configuration
Bjorn Andersson (1):
soc: qcom: mdt_loader: Ensure we don't read past the ELF header
Boris Burkov (2):
btrfs: explicitly ref count block_group on new_bgs list
btrfs: codify pattern for adding block_group to bg_list
Boshi Yu (1):
RDMA/erdma: Fix ignored return value of init_kernel_qp
Chao Yu (1):
f2fs: fix to avoid out-of-boundary access in dnode page
Charalampos Mitrodimas (1):
debugfs: fix mount options not being applied
Chen Yu (1):
ACPI: pfr_update: Fix the driver update version check
Chenyuan Yang (1):
drm/amd/display: Add null pointer check in mod_hdcp_hdcp1_create_session()
Chi Zhiling (1):
readahead: fix return value of page_cache_next_miss() when no hole is found
Christian Loehle (1):
cpuidle: menu: Remove iowait influence
Christoph Hellwig (1):
xfs: fully decouple XFS_IBULK* flags from XFS_IWALK* flags
Christoph Paasch (1):
mptcp: drop skb if MPTCP skb extension allocation fails
D. Wythe (1):
net/smc: fix UAF on smcsk after smc_listen_out()
Damien Le Moal (7):
ata: Fix SATA_MOBILE_LPM_POLICY description in Kconfig
dm: dm-crypt: Do not partially accept write BIOs with zoned targets
dm: Check for forbidden splitting of zone write operations
ata: libata-scsi: Fix ata_to_sense_error() status handling
PCI: endpoint: Fix configfs group list head handling
PCI: endpoint: Fix configfs group removal on driver teardown
ata: libata-scsi: Return aborted command when missing sense and result TF
Dan Carpenter (5):
cpufreq: armada-8k: Fix off by one in armada_8k_cpufreq_free_table()
media: gspca: Add bounds checking to firmware parser
soc: qcom: mdt_loader: Fix error return values in mdt_header_valid()
scsi: qla4xxx: Prevent a potential error pointer dereference
ALSA: usb-audio: Fix size validation in convert_chmap_v3()
Daniel Jurgens (1):
net/mlx5: Base ECVF devlink port attrs from 0
Danilo Krummrich (1):
rust: alloc: replace aligned_size() with Kmalloc::aligned_layout()
David Howells (2):
netfs: Fix unbuffered write error handling
cifs: Fix oops due to uninitialised variable
David Lechner (6):
iio: imu: bno055: fix OOB access of hw_xlate array
iio: adc: ad_sigma_delta: change to buffer predisable
iio: adc: ad7173: fix setting ODR in probe
iio: proximity: isl29501: fix buffered read on big-endian systems
iio: temperature: maxim_thermocouple: use DMA-safe buffer for spi_read()
iio: imu: inv_icm42600: use = { } instead of memset()
David Sterba (2):
btrfs: qgroup: drop unused parameter fs_info from __del_qgroup_rb()
btrfs: move transaction aborts to the error site in add_block_group_free_space()
Dewei Meng (1):
ALSA: timer: fix ida_free call while not allocated
Dominique Martinet (1):
iov_iter: iterate_folioq: fix handling of offset >= folio size
Edward Adam Davis (1):
comedi: pcl726: Prevent invalid irq number
Emanuele Ghidoli (1):
arm64: dts: ti: k3-am62-verdin: Enable pull-ups on I2C buses
Eric Biggers (2):
lib/crypto: mips/chacha: Fix clang build and remove unneeded byteswap
ipv6: sr: Fix MAC comparison to be constant-time
Evgeniy Harchenko (1):
ALSA: hda/realtek: Add support for HP EliteBook x360 830 G6 and EliteBook 830 G6
Fanhua Li (1):
drm/nouveau/nvif: Fix potential memory leak in nvif_vmm_ctor().
Filipe Manana (10):
btrfs: qgroup: fix race between quota disable and quota rescan ioctl
btrfs: always abort transaction on failure to add block group to free space tree
btrfs: abort transaction on unexpected eb generation at btrfs_copy_root()
btrfs: send: factor out common logic when sending xattrs
btrfs: send: only use boolean variables at process_recorded_refs()
btrfs: send: add and use helper to rename current inode when processing refs
btrfs: send: keep the current inode's path cached
btrfs: send: avoid path allocation for the current inode when issuing commands
btrfs: send: use fallocate for hole punching with send stream v2
btrfs: send: make fs_path_len() inline and constify its argument
Finn Thain (1):
m68k: Fix lost column on framebuffer debug console
Florian Westphal (1):
netfilter: nf_reject: don't leak dst refcount for loopback packets
Frank Li (1):
PCI: imx6: Add i.MX8Q PCIe Endpoint (EP) support
Gabor Juhos (1):
mtd: spinand: propagate spinand_wait() errors from spinand_write_page()
Gang Ba (1):
drm/amdgpu: Avoid extra evict-restore process.
Geliang Tang (2):
mptcp: remove duplicate sk_reset_timer call
mptcp: disable add_addr retransmission when timeout is 0
Geraldo Nascimento (2):
PCI: rockchip: Use standard PCIe definitions
PCI: rockchip: Set Target Link Speed to 5.0 GT/s before retraining
Giovanni Cabiddu (2):
crypto: qat - lower priority for skcipher and aead algorithms
crypto: qat - flush misc workqueue during device shutdown
Greg Kroah-Hartman (2):
Revert "can: ti_hecc: fix -Woverflow compiler warning" Linux 6.12.44
Gui-Dong Han (1):
media: rainshadow-cec: fix TOCTOU race condition in rain_interrupt()
Hangbin Liu (2):
bonding: update LACP activity flag after setting lacp_active
bonding: send LACPDUs periodically in passive mode after receiving partner's LACPDU
Hans Verkuil (1):
media: vivid: fix wrong pixel_array control size
Hans de Goede (1):
media: ivsc: Fix crash at shutdown due to missing mei_cldev_disable() calls
Haoxiang Li (1):
media: imx: fix a potential memory leak in imx_media_csc_scaler_device_init()
Hariprasad Kelam (1):
Octeontx2-af: Skip overlap check for SPI field
Heikki Krogerus (1):
usb: dwc3: pci: add support for the Intel Wildcat Lake
Heiko Carstens (1):
s390/mm: Do not map lowcore with identity mapping
Helge Deller (2):
Revert "vgacon: Add check for vc_origin address range in vgacon_scroll()"
apparmor: Fix 8-byte alignment for initial dfa blob streams
Herton R. Krzesinski (1):
mm/debug_vm_pgtable: clear page table entries at destroy_args()
Hong Guan (1):
arm64: dts: ti: k3-am62a7-sk: fix pinmux for main_uart1
Horatiu Vultur (1):
phy: mscc: Fix timestamping for vsc8584
Ian Abbott (2):
comedi: Make insn_rw_emulate_bits() do insn->n samples
comedi: Fix use of uninitialized memory in do_insn_ioctl() and do_insnlist_ioctl()
Ido Schimmel (1):
mlxsw: spectrum: Forward packets with an IPv4 link-local source IP
Igor Pylypiv (1):
ata: libata-scsi: Fix CDL control
Imre Deak (3):
drm/dp: Change AUX DPCD probe address from DPCD_REV to LANE0_1_STATUS drm/i915/icl+/tc: Convert AUX powered WARN to a debug message drm/i915/icl+/tc: Cache the max lane count value
Jacopo Mondi (1):
media: pisp_be: Fix pm_runtime underrun in probe
Jakub Acs (1):
net, hsr: reject HSR frame if skb can't hold tag
Jakub Kicinski (1):
tls: fix handling of zero-length records on the rx_list
Jakub Ramaseuski (1):
net: gso: Forbid IPv6 TSO with extensions on devices with only IPV6_CSUM
Jan Beulich (1):
compiler: remove __ADDRESSABLE_ASM{_STR,}() again
Jason Xing (1):
ixgbe: xsk: resolve the negative overflow of budget in ixgbe_xmit_zc
Jean-Baptiste Maneyrol (1):
iio: imu: inv_icm42600: change invalid data error to -EBUSY
Jens Axboe (2):
io_uring/net: commit partial buffers on retry io_uring/futex: ensure io_futex_wait() cleans up properly on failure
Jiande Lu (1):
Bluetooth: btmtk: Fix wait_on_bit_timeout interruption during shutdown
Jiayi Li (1):
memstick: Fix deadlock by moving removing flag earlier
Jinjiang Tu (1):
mm/memory-failure: fix infinite UCE for VM_PFNMAP pfn
Jocelyn Falempe (1):
drm/panic: Move drawing functions to drm_draw
Johan Hovold (10):
usb: gadget: udc: renesas_usb3: fix device leak at unbind
usb: musb: omap2430: fix device leak at unbind
usb: dwc3: meson-g12a: fix device leaks at unbind
usb: dwc3: imx8mp: fix device leak at unbind
wifi: ath12k: fix dest ring-buffer corruption
wifi: ath12k: fix source ring-buffer corruption
wifi: ath12k: fix dest ring-buffer corruption when ring is full
wifi: ath11k: fix dest ring-buffer corruption
wifi: ath11k: fix source ring-buffer corruption
wifi: ath11k: fix dest ring-buffer corruption when ring is full
John David Anglin (8):
parisc: Check region is readable by user in raw_copy_from_user()
parisc: Define and use set_pte_at()
parisc: Drop WARN_ON_ONCE() from flush_cache_vmap
parisc: Rename pte_needs_flush() to pte_needs_cache_flush() in cache.c
parisc: Revise __get_user() to probe user read access
parisc: Revise gateway LWS calls to probe user read access
parisc: Try to fixup kernel exception in bad_area_nosemaphore path of do_page_fault()
parisc: Update comments in make_insert_tlb
John Ernberg (1):
crypto: caam - Prevent crash on suspend with iMX8QM / iMX8ULP
Jon Hunter (1):
soc/tegra: pmc: Ensure power-domains are in a known state
Jonathan Cameron (3):
iio: light: Use aligned_s64 instead of open coding alignment.
iio: light: as73211: Ensure buffer holes are zeroed
iio: imu: inv_icm42600: switch timestamp type from int64_t __aligned(8) to aligned_s64
Jordan Rhee (1):
gve: prevent ethtool ops after shutdown
Jorge Ramirez-Ortiz (2):
media: venus: hfi: explicitly release IRQ during teardown
media: venus: protect against spurious interrupts during probe
José Expósito (2):
drm/tests: Fix endian warning
drm/tests: Fix drm_test_fb_xrgb8888_to_xrgb2101010() on big-endian
Judith Mendez (6):
arm64: dts: ti: k3-am62-main: Remove eMMC High Speed DDR support
arm64: dts: ti: k3-am6*: Add boot phase flag to support MMC boot
arm64: dts: ti: k3-am62*: Add non-removable flag for eMMC
arm64: dts: ti: k3-am6*: Remove disable-wp for eMMC
arm64: dts: ti: k3-am62*: Move eMMC pinmux to top level board file
mmc: sdhci_am654: Disable HS400 for AM62P SR1.0 and SR1.1
Junxian Huang (1):
RDMA/hns: Fix dip entries leak on devices newer than hip09
Justin Lai (1):
rtase: Fix Rx descriptor CRC error bit definition
Kalesh AP (1):
RDMA/bnxt_re: Fix a possible memory leak in the driver
Kanglong Wang (1):
LoongArch: Optimize module load time by optimizing PLT/GOT counting
Kashyap Desai (2):
RDMA/bnxt_re: Fix to do SRQ armena by default RDMA/bnxt_re: Fix to remove workload check in SRQ limit path
Kathiravan Thirumoorthy (1):
phy: qcom: phy-qcom-m31: Update IPQ5332 M31 USB phy initialization sequence
Kees Cook (1):
iommu/amd: Avoid stack buffer overflow from kernel cmdline
Keith Busch (1):
kvm: retry nx_huge_page_recovery_thread creation
Kerem Karabay (1):
drm/format-helper: Add conversion from XRGB8888 to BGR888
Konrad Dybcio (1):
media: venus: Fix MSM8998 frequency table
Krzysztof Kozlowski (3):
dt-bindings: display: sprd,sharkl3-dpu: Fix missing clocks constraints
dt-bindings: display: sprd,sharkl3-dsi-host: Fix missing clocks constraints
USB: typec: Use str_enable_disable-like helpers
Kuen-Han Tsai (1):
usb: dwc3: Ignore late xferNotReady event to prevent halt timeout
Kyoji Ogasawara (3):
btrfs: fix incorrect log message for nobarrier mount option
btrfs: restore mount option info messages during mount
btrfs: fix printing of mount info messages for NODATACOW/NODATASUM
Laurentiu Mihalcea (1):
pwm: imx-tpm: Reset counter if CMOD is 0
Liao Yuanhong (1):
ext4: use kmalloc_array() for array space allocation
Lijo Lazar (1):
drm/amdgpu: Update external revid for GC v9.5.0
Ludwig Disterhof (1):
media: usbtv: Lock resolution while streaming
Luiz Augusto von Dentz (1):
Bluetooth: hci_sync: Fix scan state after PA Sync has been established
Lukas Wunner (1):
PCI/portdrv: Use is_pciehp instead of is_hotplug_bridge
MD Danish Anwar (1):
net: ti: icssg-prueth: Fix HSR and switch offload Enablement during firwmare reload.
Macpaul Lin (1):
scsi: dt-bindings: mediatek,ufs: Add ufs-disable-mcq flag for UFS host
Mael GUERIN (1):
USB: storage: Add unusual-devs entry for Novatek NTK96550-based camera
Marek Szyprowski (1):
zynq_fpga: use sgtable-based scatterlist wrappers
Marek Vasut (1):
usb: renesas-xhci: Fix External ROM access timeouts
Mario Limonciello (2):
drm/amd: Restore cached power limit during resume drm/amd/display: Avoid a NULL pointer dereference
Masami Hiramatsu (Google) (1):
tracing: fprobe-event: Sanitize wildcard for fprobe event name
Mathis Foerst (1):
media: mt9m114: Fix deadlock in get_frame_interval/set_frame_interval
Matthieu Baerts (NGI0) (2):
mptcp: pm: kernel: flush: do not reset ADD_ADDR limit
selftests: mptcp: pm: check flush doesn't reset limits
Miao Li (1):
usb: quirks: Add DELAY_INIT quick for another SanDisk 3.2Gen1 Flash Drive
Miaoqian Lin (1):
most: core: Drop device reference after usage in get_channel()
Michael Walle (1):
mtd: spi-nor: Fix spi_nor_try_unlock_all()
Michal Suchanek (1):
powerpc/boot: Fix build with gcc 15
Michel Dänzer (1):
drm/amd/display: Add primary plane to commits for correct VRR handling
Miguel Ojeda (1):
rust: alloc: fix rusttest by providing Cmalloc::aligned_layout too
Mike Christie (1):
scsi: core: Fix command pass through retry regression
Minhong He (1):
ipv6: sr: validate HMAC algorithm ID in seg6_hmac_info_add
Muhammad Usama Anjum (1):
ASoC: SOF: amd: acp-loader: Use GFP_KERNEL for DMA allocations in resume context
Myrrh Periwinkle (2):
vt: keyboard: Don't process Unicode characters in K_OFF mode
vt: defkeymap: Map keycodes above 127 to K_HOLE
Namjae Jeon (1):
ksmbd: extend the connection limiting mechanism to support IPv6
Naohiro Aota (3):
btrfs: zoned: fix write time activation failure for metadata block group
btrfs: zoned: requeue to unused block group list if zone finish failed
btrfs: subpage: keep TOWRITE tag until folio is cleaned
Nathan Chancellor (3):
usb: atm: cxacru: Merge cxacru_upload_firmware() into cxacru_heavy_init()
wifi: brcmsmac: Remove const from tbl_ptr parameter in wlc_lcnphy_common_read_table() drm/amdgpu: Initialize data to NULL in imu_v12_0_program_rlc_ram()
NeilBrown (1):
ovl: use I_MUTEX_PARENT when locking parent in ovl_create_temp()
Nicolas Dufresne (1):
media: verisilicon: Fix AV1 decoder clock frequency
Nicolin Chen (1):
iommu/arm-smmu-v3: Fix smmu_domain->nr_ats_masters decrement
Nitin Gote (1):
iosys-map: Fix undefined behavior in iosys_map_clear()
Ojaswin Mujoo (2):
ext4: fix fsmap end of range reporting with bigalloc
ext4: fix reserved gdt blocks handling in fsmap
Oren Sidi (1):
net/mlx5: Add IFC bits and enums for buf_ownership
Parthiban Veerasooran (2):
microchip: lan865x: fix missing netif_start_queue() call on device open
microchip: lan865x: fix missing Timer Increment config for Rev.B0/B1
Pauli Virtanen (1):
Bluetooth: hci_event: fix MTU for BN == 0 in CIS Established
Peter Griffin (1):
arm64: dts: exynos: gs101: ufs: add dma-coherent property
Peter Oberparleiter (3):
s390/sclp: Fix SCCB present check
s390/hypfs: Avoid unnecessary ioctl registration in debugfs s390/hypfs: Enable limited access during lockdown
Peter Shkenev (1):
drm/amdgpu: check if hubbub is NULL in debugfs/amdgpu_dm_capabilities
Phillip Lougher (1):
squashfs: fix memory leak in squashfs_fill_super
Pu Lehui (1):
tracing: Limit access to parser->buffer when trace_get_user failed
Qingfang Deng (2):
net: ethernet: mtk_ppe: add RCU lock around dev_fill_forward_path
ppp: fix race conditions in ppp_fill_forward_path
Rafael J. Wysocki (2):
PM: runtime: Take active children into account in pm_runtime_get_if_in_use()
cpuidle: governors: menu: Avoid selecting states with too much latency
Randy Dunlap (1):
parisc: Makefile: explain that 64BIT requires both 32-bit and 64-bit compilers
Ranjan Kumar (3):
scsi: mpi3mr: Fix race between config read submit and interrupt completion
scsi: mpi3mr: Drop unnecessary volatile from __iomem pointers
scsi: mpi3mr: Serialize admin queue BAR writes on 32-bit systems
Ricardo Ribalda (2):
media: venus: vdec: Clamp param smaller than 1fps and bigger than 240.
media: venus: venc: Clamp param smaller than 1fps and bigger than 240
Richard Zhu (4):
PCI: imx6: Add IMX8MM_EP and IMX8MP_EP fixed 256-byte BAR 4 in epc_features
PCI: imx6: Remove apps_reset toggling from imx_pcie_{assert/deassert}_core_reset
PCI: imx6: Delay link start until configfs 'start' written
PCI: imx6: Add IMX8MQ_EP third 64-bit BAR in epc_features
Sakari Ailus (2):
media: ipu6: isys: Use correct pads for xlate_streams()
media: v4l2-ctrls: Don't reset handler's error in v4l2_ctrl_handler_free()
Salah Triki (1):
iio: pressure: bmp280: Use IS_ERR() in bmp280_common_probe()
Sebastian Andrzej Siewior (1):
kcov, usb: Don't disable interrupts in kcov_remote_start_usb_softirq()
Sebastian Reichel (1):
usb: typec: fusb302: cache PD RX state
Selvarasu Ganesan (1):
usb: dwc3: Remove WARN_ON for device endpoint command timeouts
SeongJae Park (1):
mm/damon/ops-common: ignore migration request to invalid nodes
Sergey Shtylyov (1):
Bluetooth: hci_conn: do return error from hci_enhanced_setup_sync()
Shahar Shitrit (1):
net/mlx5: Relocate function declarations from port.h to mlx5_core.h
Simon Richter (1):
Mark xe driver as BROKEN if kernel page size is not 4kB
Siyang Liu (1):
drm/amd/display: fix a Null pointer dereference vulnerability
Srinivas Pandruvada (1):
platform/x86/intel-uncore-freq: Check write blocked for ELC
Stefan Metzmacher (1):
smb: server: split ksmbd_rdma_stop_listening() out of ksmbd_rdma_destroy()
Stefan Wahren (1):
spi: spi-fsl-lpspi: Clamp too high speed_hz
Steven Rostedt (2):
ftrace: Also allocate and copy hash for reading of filter files
tracing: Remove unneeded goto out logic
Suraj Gupta (1):
net: xilinx: axienet: Fix RX skb ring management in DMAengine mode
Takashi Iwai (1):
ALSA: usb-audio: Use correct sub-type for UAC3 feature unit validation
Theodore Ts'o (1):
ext4: don't try to clear the orphan_present feature block device is r/o
Thomas Fourier (2):
mtd: rawnand: fsmc: Add missing check after DMA map
mtd: rawnand: renesas: Add missing check after DMA map
Thomas Weißschuh (1):
kbuild: userprogs: use correct linker when mixing clang and GNU ld
Thomas Zimmermann (3):
drm/format-helper: Move helpers for pixel conversion to header file drm/format-helper: Add generic conversion to 32-bit formats drm/tests: Do not use drm_fb_blit() in format-helper tests
Thorsten Blum (3):
accel/habanalabs/gaudi2: Use kvfree() for memory allocated with kvcalloc()
cdx: Fix off-by-one error in cdx_rpmsg_probe()
usb: storage: realtek_cr: Use correct byte order for bcs->Residue
Tianxiang Peng (1):
x86/cpu/hygon: Add missing resctrl_cpu_detect() in bsp_init helper
Tim Harvey (1):
hwmon: (gsc-hwmon) fix fan pwm setpoint show functions
Timur Kristóf (7):
drm/amd/display: Don't overwrite dce60_clk_mgr
drm/amd/display: Don't overclock DCE 6 by 15%
drm/amd/display: Fix fractional fb divider in set_pixel_clock_v3 drm/amd/display: Fix DP audio DTO1 clock source on DCE 6. drm/amd/display: Find first CRTC and its line time in dce110_fill_display_configs drm/amd/display: Fill display clock and vblank time in dce110_fill_display_configs drm/amd/display: Don't print errors for nonexistent connectors
Tom Chung (1):
drm/amd/display: Fix Xorg desktop unresponsive on Replay panel
Tom Lendacky (1):
x86/sev: Ensure SVSM reserved fields in a page validation entry are initialized to zero
Tristram Ha (1):
net: dsa: microchip: Fix KSZ9477 HSR port setup issue
Trond Myklebust (1):
NFS: Fix a race when updating an existing write
Tzung-Bi Shih (1):
platform/chrome: cros_ec: Unregister notifier in cros_ec_unregister()
Uwe Kleine-König (2):
pwm: mediatek: Handle hardware enable and clock enable separately
pwm: mediatek: Fix duty and period setting
ValdikSS (1):
igc: fix disabling L1.2 PCI-E link substate on I226 on init
Vedang Nagar (1):
media: venus: Add a check for packet size after reading from shared memory
Victor Shih (3):
mmc: sdhci-pci-gli: Add a new function to simplify the code
mmc: sdhci-pci-gli: GL9763e: Mask the replay timer timeout of AER
mmc: sdhci-pci-gli: GL9763e: Rename the gli_set_gl9763e() for consistency
Vladimir Zapolskiy (1):
media: qcom: camss: cleanup media device allocated resource on error path
Waiman Long (2):
cgroup/cpuset: Use static_branch_enable_cpuslocked() on cpusets_insane_config_key cgroup/cpuset: Fix a partition error with CPU hotplug
Wang Liang (1):
net: bridge: fix soft lockup in br_multicast_query_expired()
Weitao Wang (1):
usb: xhci: Fix slot_id resource race conflict
Will Deacon (2):
vsock/virtio: Validate length in packet header before skb_put() vhost/vsock: Avoid allocating arbitrarily-sized SKBs
William Liu (2):
net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit net/sched: Remove unnecessary WARNING condition for empty child qdisc in htb_activate
Xaver Hugl (1):
amdgpu/amdgpu_discovery: increase timeout limit for IFWI init
Xu Yang (1):
usb: core: hcd: fix accessing unmapped memory in SINGLE_STEP_SET_FEATURE test
Xu Yilun (1):
fpga: zynq_fpga: Fix the wrong usage of dma_map_sgtable()
Yang Li (1):
Bluetooth: hci_sync: Prevent unintended PA sync when SID is 0xFF
Ye Bin (1):
fs/buffer: fix use-after-free when call bh_read() helper
Youssef Samir (1):
bus: mhi: host: Detect events pointing to unexpected TREs
Yuichiro Tsuji (1):
net: usb: asix_devices: Fix PHY address mask in MDIO bus initialization
Yunhui Cui (1):
serial: 8250: fix panic due to PSLVERR
Zenm Chen (1):
USB: storage: Ignore driver CD mode for Realtek multi-mode Wi-Fi dongles
Zhang Shurong (1):
media: ov2659: Fix memory leaks in ov2659_probe()
Zhang Yi (1):
ext4: fix hole length calculation overflow in non-extent inodes
Zhu Yanjun (1):
RDMA/rxe: Flush delayed SKBs while releasing RXE resources
Ziyan Xu (1):
ksmbd: fix refcount leak causing resource not released
wenglianfa (1):
RDMA/hns: Fix querying wrong SCC context for DIP algorithm
Greg Kroah-Hartman
maintainerDocumentation/devicetree/bindings/display/sprd/sprd,sharkl3-dpu.yaml +1 -1
@@ -25,7 +25,7 @@ properties: maxItems: 1 clocks: - minItems: 2 + maxItems: 2 clock-names: items:
Documentation/devicetree/bindings/display/sprd/sprd,sharkl3-dsi-host.yaml +1 -1
@@ -20,7 +20,7 @@ properties: maxItems: 2 clocks: - minItems: 1 + maxItems: 1 clock-names: items:
Documentation/devicetree/bindings/ufs/mediatek,ufs.yaml +4 -0
@@ -33,6 +33,10 @@ properties: vcc-supply: true + mediatek,ufs-disable-mcq: + $ref: /schemas/types.yaml#/definitions/flag + description: The mask to disable MCQ (Multi-Circular Queue) for UFS host. + required: - compatible - clocks
Documentation/networking/mptcp-sysctl.rst +2 -0
@@ -12,6 +12,8 @@ add_addr_timeout - INTEGER (seconds) resent to an MPTCP peer that has not acknowledged a previous ADD_ADDR message. + Do not retransmit if set to 0. + The default value matches TCP_RTO_MAX. This is a per-namespace sysctl.
Makefile +2 -2
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 12 -SUBLEVEL = 43 +SUBLEVEL = 44 EXTRAVERSION = NAME = Baby Opossum Posse
@@ -1069,7 +1069,7 @@ KBUILD_USERCFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CPPFLAGS) $(KBUILD KBUILD_USERLDFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CPPFLAGS) $(KBUILD_CFLAGS)) # userspace programs are linked via the compiler, use the correct linker -ifeq ($(CONFIG_CC_IS_CLANG)$(CONFIG_LD_IS_LLD),yy) +ifdef CONFIG_CC_IS_CLANG KBUILD_USERLDFLAGS += --ld-path=$(LD) endif
arch/arm64/boot/dts/exynos/google/gs101.dtsi +1 -0
@@ -1360,6 +1360,7 @@ ufs_0: ufs@14700000 { <&cmu_hsi2 CLK_GOUT_HSI2_SYSREG_HSI2_PCLK>; clock-names = "core_clk", "sclk_unipro_main", "fmp", "aclk", "pclk", "sysreg"; + dma-coherent; freq-table-hz = <0 0>, <0 0>, <0 0>, <0 0>, <0 0>, <0 0>; pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>; pinctrl-names = "default";
arch/arm64/boot/dts/ti/k3-am62-lp-sk.dts +36 -0
@@ -69,20 +69,39 @@ vddshv_sdio: regulator-4 { gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>; states = <1800000 0x0>, <3300000 0x1>; + bootph-all; }; }; &main_pmx0 { + main_mmc0_pins_default: main-mmc0-default-pins { + bootph-all; + pinctrl-single,pins = < + AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (V3) MMC0_CMD */ + AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (Y1) MMC0_CLK */ + AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (V2) MMC0_DAT0 */ + AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (V1) MMC0_DAT1 */ + AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (W2) MMC0_DAT2 */ + AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (W1) MMC0_DAT3 */ + AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (Y2) MMC0_DAT4 */ + AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (W3) MMC0_DAT5 */ + AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (W4) MMC0_DAT6 */ + AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (V4) MMC0_DAT7 */ + >; + }; + vddshv_sdio_pins_default: vddshv-sdio-default-pins { pinctrl-single,pins = < AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */ >; + bootph-all; }; main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins { pinctrl-single,pins = < AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (C13) UART0_RTSn.GPIO1_23 */ >; + bootph-all; }; pmic_irq_pins_default: pmic-irq-default-pins {
@@ -118,6 +137,7 @@ exp1: gpio@22 { pinctrl-names = "default"; pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>; + bootph-all; }; exp2: gpio@23 {
@@ -140,6 +160,14 @@ exp2: gpio@23 { }; }; +&sdhci0 { + bootph-all; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&main_mmc0_pins_default>; + status = "okay"; +}; + &sdhci1 { vmmc-supply = <&vdd_mmc1>; vqmmc-supply = <&vddshv_sdio>;
@@ -229,6 +257,14 @@ &tlv320aic3106 { DVDD-supply = <&buck2_reg>; }; +&main_gpio0 { + bootph-all; +}; + +&main_gpio1 { + bootph-all; +}; + &gpmc0 { ranges = <0 0 0x00 0x51000000 0x01000000>; /* CS0 space. Min partition = 16MB */ };
arch/arm64/boot/dts/ti/k3-am62-main.dtsi +0 -1
@@ -553,7 +553,6 @@ sdhci0: mmc@fa10000 { clocks = <&k3_clks 57 5>, <&k3_clks 57 6>; clock-names = "clk_ahb", "clk_xin"; bus-width = <8>; - mmc-ddr-1_8v; mmc-hs200-1_8v; ti,clkbuf-sel = <0x7>; ti,otap-del-sel-legacy = <0x0>;
arch/arm64/boot/dts/ti/k3-am62-phycore-som.dtsi +0 -1
@@ -317,7 +317,6 @@ serial_flash: flash@0 { &sdhci0 { pinctrl-names = "default"; pinctrl-0 = <&main_mmc0_pins_default>; - disable-wp; non-removable; status = "okay"; };
arch/arm64/boot/dts/ti/k3-am62-verdin.dtsi +6 -6
@@ -507,16 +507,16 @@ AM62X_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ /* SODIMM 12 */ /* Verdin I2C_2_DSI */ pinctrl_i2c2: main-i2c2-default-pins { pinctrl-single,pins = < - AM62X_IOPAD(0x00b0, PIN_INPUT, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ /* SODIMM 55 */ - AM62X_IOPAD(0x00b4, PIN_INPUT, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ /* SODIMM 53 */ + AM62X_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ /* SODIMM 55 */ + AM62X_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ /* SODIMM 53 */ >; }; /* Verdin I2C_4_CSI */ pinctrl_i2c3: main-i2c3-default-pins { pinctrl-single,pins = < - AM62X_IOPAD(0x01d0, PIN_INPUT, 2) /* (A15) UART0_CTSn.I2C3_SCL */ /* SODIMM 95 */ - AM62X_IOPAD(0x01d4, PIN_INPUT, 2) /* (B15) UART0_RTSn.I2C3_SDA */ /* SODIMM 93 */ + AM62X_IOPAD(0x01d0, PIN_INPUT_PULLUP, 2) /* (A15) UART0_CTSn.I2C3_SCL */ /* SODIMM 95 */ + AM62X_IOPAD(0x01d4, PIN_INPUT_PULLUP, 2) /* (B15) UART0_RTSn.I2C3_SDA */ /* SODIMM 93 */ >; };
@@ -786,8 +786,8 @@ AM62X_MCU_IOPAD(0x0010, PIN_INPUT, 7) /* (C9) MCU_SPI0_D1.MCU_GPIO0_4 */ /* SODI /* Verdin I2C_3_HDMI */ pinctrl_mcu_i2c0: mcu-i2c0-default-pins { pinctrl-single,pins = < - AM62X_MCU_IOPAD(0x0044, PIN_INPUT, 0) /* (A8) MCU_I2C0_SCL */ /* SODIMM 59 */ - AM62X_MCU_IOPAD(0x0048, PIN_INPUT, 0) /* (D10) MCU_I2C0_SDA */ /* SODIMM 57 */ + AM62X_MCU_IOPAD(0x0044, PIN_INPUT_PULLUP, 0) /* (A8) MCU_I2C0_SCL */ /* SODIMM 59 */ + AM62X_MCU_IOPAD(0x0048, PIN_INPUT_PULLUP, 0) /* (D10) MCU_I2C0_SDA */ /* SODIMM 57 */ >; };
arch/arm64/boot/dts/ti/k3-am625-beagleplay.dts +1 -1
@@ -818,9 +818,9 @@ &main_spi2 { &sdhci0 { bootph-all; + non-removable; pinctrl-names = "default"; pinctrl-0 = <&emmc_pins_default>; - disable-wp; status = "okay"; };
arch/arm64/boot/dts/ti/k3-am625-sk.dts +24 -0
@@ -106,6 +106,22 @@ vcc_1v8: regulator-5 { }; &main_pmx0 { + main_mmc0_pins_default: main-mmc0-default-pins { + bootph-all; + pinctrl-single,pins = < + AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ + AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ + AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ + AM62X_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */ + AM62X_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */ + AM62X_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */ + AM62X_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */ + AM62X_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */ + AM62X_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */ + AM62X_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */ + >; + }; + main_rgmii2_pins_default: main-rgmii2-default-pins { bootph-all; pinctrl-single,pins = <
@@ -195,6 +211,14 @@ exp1: gpio@22 { }; }; +&sdhci0 { + bootph-all; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&main_mmc0_pins_default>; + status = "okay"; +}; + &sdhci1 { vmmc-supply = <&vdd_mmc1>; vqmmc-supply = <&vdd_sd_dv>;
arch/arm64/boot/dts/ti/k3-am62a-phycore-som.dtsi +0 -1
@@ -324,7 +324,6 @@ serial_flash: flash@0 { &sdhci0 { pinctrl-names = "default"; pinctrl-0 = <&main_mmc0_pins_default>; - disable-wp; non-removable; status = "okay"; };
arch/arm64/boot/dts/ti/k3-am62a7-sk.dts +4 -3
@@ -259,8 +259,8 @@ AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */ main_uart1_pins_default: main-uart1-default-pins { pinctrl-single,pins = < - AM62AX_IOPAD(0x01e8, PIN_INPUT, 1) /* (C17) I2C1_SCL.UART1_RXD */ - AM62AX_IOPAD(0x01ec, PIN_OUTPUT, 1) /* (E17) I2C1_SDA.UART1_TXD */ + AM62AX_IOPAD(0x01ac, PIN_INPUT, 2) /* (B21) MCASP0_AFSR.UART1_RXD */ + AM62AX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (A21) MCASP0_ACLKR.UART1_TXD */ AM62AX_IOPAD(0x0194, PIN_INPUT, 2) /* (C19) MCASP0_AXR3.UART1_CTSn */ AM62AX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (B19) MCASP0_AXR2.UART1_RTSn */ >;
@@ -301,6 +301,7 @@ AM62AX_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */ AM62AX_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */ AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */ >; + bootph-all; }; main_mmc1_pins_default: main-mmc1-default-pins {
@@ -602,7 +603,7 @@ &sdhci0 { non-removable; pinctrl-names = "default"; pinctrl-0 = <&main_mmc0_pins_default>; - disable-wp; + bootph-all; }; &sdhci1 {
arch/arm64/boot/dts/ti/k3-am62p5-sk.dts +1 -1
@@ -444,8 +444,8 @@ &main_i2c2 { &sdhci0 { status = "okay"; + non-removable; ti,driver-strength-ohm = <50>; - disable-wp; bootph-all; };
arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi +0 -24
@@ -182,22 +182,6 @@ AM62X_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24/H19) GPMC0_CSn3.I2C2_SDA */ >; }; - main_mmc0_pins_default: main-mmc0-default-pins { - bootph-all; - pinctrl-single,pins = < - AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3/V3) MMC0_CMD */ - AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1/Y1) MMC0_CLK */ - AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2/V2) MMC0_DAT0 */ - AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1/V1) MMC0_DAT1 */ - AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3/W2) MMC0_DAT2 */ - AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4/W1) MMC0_DAT3 */ - AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2/Y2) MMC0_DAT4 */ - AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1/W3) MMC0_DAT5 */ - AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2/W4) MMC0_DAT6 */ - AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2/V4) MMC0_DAT7 */ - >; - }; - main_mmc1_pins_default: main-mmc1-default-pins { bootph-all; pinctrl-single,pins = <
@@ -413,14 +397,6 @@ &main_i2c2 { clock-frequency = <400000>; }; -&sdhci0 { - bootph-all; - status = "okay"; - pinctrl-names = "default"; - pinctrl-0 = <&main_mmc0_pins_default>; - disable-wp; -}; - &sdhci1 { /* SD/MMC */ bootph-all;
arch/arm64/boot/dts/ti/k3-am642-evm.dts +0 -1
@@ -584,7 +584,6 @@ &sdhci0 { status = "okay"; non-removable; ti,driver-strength-ohm = <50>; - disable-wp; bootph-all; };
arch/arm64/boot/dts/ti/k3-am654-base-board.dts +0 -1
@@ -456,7 +456,6 @@ &sdhci0 { bus-width = <8>; non-removable; ti,driver-strength-ohm = <50>; - disable-wp; }; /*
arch/arm64/boot/dts/ti/k3-am6548-iot2050-advanced-common.dtsi +0 -1
@@ -50,5 +50,4 @@ &sdhci0 { bus-width = <8>; non-removable; ti,driver-strength-ohm = <50>; - disable-wp; };
arch/arm64/boot/dts/ti/k3-am69-sk.dts +0 -1
@@ -926,7 +926,6 @@ &main_sdhci0 { status = "okay"; non-removable; ti,driver-strength-ohm = <50>; - disable-wp; }; &main_sdhci1 {
arch/arm64/boot/dts/ti/k3-pinctrl.h +12 -3
@@ -8,11 +8,16 @@#ifndef DTS_ARM64_TI_K3_PINCTRL_H #define DTS_ARM64_TI_K3_PINCTRL_H +#define ST_EN_SHIFT (14)#define PULLUDEN_SHIFT (16)#define PULLTYPESEL_SHIFT (17)#define RXACTIVE_SHIFT (18)#define DEBOUNCE_SHIFT (11) +/* Schmitt trigger configuration */ +#define ST_DISABLE (0 << ST_EN_SHIFT) +#define ST_ENABLE (1 << ST_EN_SHIFT) +#define PULL_DISABLE (1 << PULLUDEN_SHIFT)#define PULL_ENABLE (0 << PULLUDEN_SHIFT)
@@ -26,9 +31,13 @@#define PIN_OUTPUT (INPUT_DISABLE | PULL_DISABLE)#define PIN_OUTPUT_PULLUP (INPUT_DISABLE | PULL_UP)#define PIN_OUTPUT_PULLDOWN (INPUT_DISABLE | PULL_DOWN) -#define PIN_INPUT (INPUT_EN | PULL_DISABLE) -#define PIN_INPUT_PULLUP (INPUT_EN | PULL_UP) -#define PIN_INPUT_PULLDOWN (INPUT_EN | PULL_DOWN) +#define PIN_INPUT (INPUT_EN | ST_ENABLE | PULL_DISABLE) +#define PIN_INPUT_PULLUP (INPUT_EN | ST_ENABLE | PULL_UP) +#define PIN_INPUT_PULLDOWN (INPUT_EN | ST_ENABLE | PULL_DOWN) +/* Input configurations with Schmitt Trigger disabled */ +#define PIN_INPUT_NOST (INPUT_EN | PULL_DISABLE) +#define PIN_INPUT_PULLUP_NOST (INPUT_EN | PULL_UP) +#define PIN_INPUT_PULLDOWN_NOST (INPUT_EN | PULL_DOWN)#define PIN_DEBOUNCE_DISABLE (0 << DEBOUNCE_SHIFT)#define PIN_DEBOUNCE_CONF1 (1 << DEBOUNCE_SHIFT)
arch/loongarch/kernel/module-sections.c +18 -18
@@ -8,6 +8,7 @@#include <linux/module.h> #include <linux/moduleloader.h> #include <linux/ftrace.h> +#include <linux/sort.h> Elf_Addr module_emit_got_entry (struct module *mod,Elf_Shdr *sechdrs,Elf_Addr val) {
@@ -61,39 +62,38 @@ Elf_Addr module_emit_plt_entry(struct module *mod, Elf_Shdr *sechdrs, Elf_Addr vreturn (Elf_Addr)&plt[nr]; } -static int is_rela_equal (const Elf_Rela *x,const Elf_Rela *y) -{ -return x->r_info == y->r_info && x->r_addend == y->r_addend; -} +#define cmp_3way (a, b) ((a) < (b) ? -1 : (a) > (b)) -static bool duplicate_rela (const Elf_Rela *rela,int idx) +static int compare_rela (const void *x,const void *y) { -int i; +int ret; +const Elf_Rela *rela_x = x, *rela_y = y; -for (i =0 ; i < idx; i++) { -if (is_rela_equal (&rela[i], &rela[idx])) -return true; - } + ret =cmp_3way (rela_x->r_info, rela_y->r_info); +if (ret ==0 ) + ret =cmp_3way (rela_x->r_addend, rela_y->r_addend); -return false; +return ret; }static void count_max_entries (Elf_Rela *relas,int num,unsigned int *plts,unsigned int *gots) { -unsigned int i, type; +unsigned int i; + +sort (relas, num,sizeof (Elf_Rela), compare_rela,NULL );for (i =0 ; i < num; i++) { - type =ELF_R_TYPE (relas[i].r_info); -switch (type) { +if (i && !compare_rela (&relas[i-1 ], &relas[i])) +continue ; + +switch (ELF_R_TYPE (relas[i].r_info)) {case R_LARCH_SOP_PUSH_PLT_PCREL :case R_LARCH_B26 : -if (!duplicate_rela (relas, i)) - (*plts)++; + (*plts)++;break ;case R_LARCH_GOT_PC_HI20 : -if (!duplicate_rela (relas, i)) - (*gots)++; + (*gots)++;break ;default :break ;/* Do nothing. */
arch/loongarch/kvm/vcpu.c +5 -3
@@ -1249,9 +1249,11 @@ int kvm_own_lbt(struct kvm_vcpu *vcpu)return -EINVAL ;preempt_disable (); -set_csr_euen (CSR_EUEN_LBTEN ); -_restore_lbt (&vcpu->arch.lbt); - vcpu->arch.aux_inuse |=KVM_LARCH_LBT ; +if (!(vcpu->arch.aux_inuse &KVM_LARCH_LBT )) { +set_csr_euen (CSR_EUEN_LBTEN ); +_restore_lbt (&vcpu->arch.lbt); + vcpu->arch.aux_inuse |=KVM_LARCH_LBT ; + }preempt_enable ();return 0 ;
arch/m68k/kernel/head.S +21 -10
@@ -3400,6 +3400,7 @@ L(console_clear_loop): movel %d4,%d1 /* screen height in pixels */ divul %a0@(FONT_DESC_HEIGHT),%d1 /* d1 = max num rows */ + subql #1,%d1 /* row range is 0 to num - 1 */ movel %d0,%a2@(Lconsole_struct_num_columns) movel %d1,%a2@(Lconsole_struct_num_rows)
@@ -3546,15 +3547,14 @@ func_start console_putc,%a0/%a1/%d0-%d7 cmpib #10,%d7 jne L(console_not_lf) movel %a0@(Lconsole_struct_cur_row),%d0 - addil #1,%d0 - movel %d0,%a0@(Lconsole_struct_cur_row) movel %a0@(Lconsole_struct_num_rows),%d1 cmpl %d1,%d0 jcs 1f - subil #1,%d0 - movel %d0,%a0@(Lconsole_struct_cur_row) console_scroll + jra L(console_exit) 1: + addql #1,%d0 + movel %d0,%a0@(Lconsole_struct_cur_row) jra L(console_exit) L(console_not_lf):
@@ -3581,12 +3581,6 @@ L(console_not_cr): */ L(console_not_home): movel %a0@(Lconsole_struct_cur_column),%d0 - addql #1,%a0@(Lconsole_struct_cur_column) - movel %a0@(Lconsole_struct_num_columns),%d1 - cmpl %d1,%d0 - jcs 1f - console_putc #'\n' /* recursion is OK! */ -1: movel %a0@(Lconsole_struct_cur_row),%d1 /*
@@ -3633,6 +3627,23 @@ L(console_do_font_scanline): addq #1,%d1 dbra %d7,L(console_read_char_scanline) + /* + * Register usage in the code below: + * a0 = pointer to console globals + * d0 = cursor column + * d1 = cursor column limit + */ + + lea %pc@(L(console_globals)),%a0 + + movel %a0@(Lconsole_struct_cur_column),%d0 + addql #1,%d0 + movel %d0,%a0@(Lconsole_struct_cur_column) /* Update cursor pos */ + movel %a0@(Lconsole_struct_num_columns),%d1 + cmpl %d1,%d0 + jcs L(console_exit) + console_putc #'\n' /* Line wrap using tail recursion */ + L(console_exit): func_return console_putc
arch/mips/crypto/chacha-core.S +7 -13
@@ -55,17 +55,13 @@ #if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ #define MSB 0 #define LSB 3 -#define ROTx rotl -#define ROTR(n) rotr n, 24 #define CPU_TO_LE32(n) \ - wsbh n; \ + wsbh n, n; \ rotr n, 16; #else #define MSB 3 #define LSB 0 -#define ROTx rotr #define CPU_TO_LE32(n) -#define ROTR(n) #endif #define FOR_EACH_WORD(x) \
@@ -192,10 +188,10 @@ CONCAT3(.Lchacha_mips_xor_aligned_, PLUS_ONE(x), _b: ;) \ xor X(W), X(B); \ xor X(Y), X(C); \ xor X(Z), X(D); \ - rotl X(V), S; \ - rotl X(W), S; \ - rotl X(Y), S; \ - rotl X(Z), S; + rotr X(V), 32 - S; \ + rotr X(W), 32 - S; \ + rotr X(Y), 32 - S; \ + rotr X(Z), 32 - S; .text .set reorder
@@ -372,21 +368,19 @@ chacha_crypt_arch: /* First byte */ lbu T1, 0(IN) addiu $at, BYTES, 1 - CPU_TO_LE32(SAVED_X) - ROTR(SAVED_X) xor T1, SAVED_X sb T1, 0(OUT) beqz $at, .Lchacha_mips_xor_done /* Second byte */ lbu T1, 1(IN) addiu $at, BYTES, 2 - ROTx SAVED_X, 8 + rotr SAVED_X, 8 xor T1, SAVED_X sb T1, 1(OUT) beqz $at, .Lchacha_mips_xor_done /* Third byte */ lbu T1, 2(IN) - ROTx SAVED_X, 8 + rotr SAVED_X, 8 xor T1, SAVED_X sb T1, 2(OUT) b .Lchacha_mips_xor_done
arch/parisc/Makefile +3 -1
@@ -39,7 +39,9 @@ endif export LD_BFD -# Set default 32 bits cross compilers for vdso +# Set default 32 bits cross compilers for vdso. +# This means that for 64BIT, both the 64-bit tools and the 32-bit tools +# need to be in the path. CC_ARCHES_32 = hppa hppa2.0 hppa1.1 CC_SUFFIXES = linux linux-gnu unknown-linux-gnu suse-linux CROSS32_COMPILE := $(call cc-cross-prefix, \
arch/parisc/include/asm/pgtable.h +4 -3
@@ -276,7 +276,7 @@ extern unsigned long *empty_zero_page;#define pte_none (x) (pte_val(x) == 0)#define pte_present (x) (pte_val(x) & _PAGE_PRESENT)#define pte_user (x) (pte_val(x) & _PAGE_USER) -#define pte_clear (mm, addr, xp) set_pte(xp, __pte(0)) +#define pte_clear (mm, addr, xp) set_pte_at((mm), (addr), (xp), __pte(0))#define pmd_flag (x) (pmd_val(x) & PxD_FLAG_MASK)#define pmd_address (x) ((unsigned long)(pmd_val(x) &~ PxD_FLAG_MASK) << PxD_VALUE_SHIFT)
@@ -398,6 +398,7 @@ static inline void set_ptes(struct mm_struct *mm, unsigned long addr, } }#define set_ptes set_ptes +#define set_pte_at (mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1)/* Used for deferring calls to flush_dcache_page() */
@@ -462,7 +463,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsignedif (!pte_young (pte)) {return 0 ; } -set_pte (ptep,pte_mkold (pte)); +set_pte_at (vma->vm_mm, addr, ptep,pte_mkold (pte));return 1 ; }
@@ -472,7 +473,7 @@ pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptstruct mm_struct ;static inline void ptep_set_wrprotect (struct mm_struct *mm,unsigned long addr,pte_t *ptep) { -set_pte (ptep,pte_wrprotect (*ptep)); +set_pte_at (mm, addr, ptep,pte_wrprotect (*ptep)); }#define pte_same (A ,B ) (pte_val(A) == pte_val(B))
arch/parisc/include/asm/special_insns.h +28 -0
@@ -32,6 +32,34 @@ pa; \ }) +/** +* prober_user() - Probe user read access +* @sr: Space regster. +* @va: Virtual address. +* +* Return: Non-zero if address is accessible. +* +* Due to the way _PAGE_READ is handled in TLB entries, we need +* a special check to determine whether a user address is accessible. +* The ldb instruction does the initial access check. If it is +* successful, the probe instruction checks user access rights. +*/ +#define prober_user (sr, va) ({ \ + unsigned long read_allowed; \ + __asm__ __volatile__( \ + "copy %%r0,%0\n" \ + "8:\tldb 0(%%sr%1,%2),%%r0\n" \ + "\tproberi (%%sr%1,%2),%3,%0\n" \ + "9:\n" \ + ASM_EXCEPTIONTABLE_ENTRY(8b, 9b, \ + "or %%r0,%%r0,%%r0") \ + : "=&r" (read_allowed) \ + : "i" (sr), "r" (va), "i" (PRIV_USER) \ + : "memory" \ + ); \ + read_allowed; \ +}) +#define CR_EIEM 15/* External Interrupt Enable Mask */ #define CR_CR16 16/* CR16 Interval Timer */ #define CR_EIRR 23/* External Interrupt Request Register */
arch/parisc/include/asm/uaccess.h +18 -3
@@ -42,9 +42,24 @@ __gu_err; \ }) -#define __get_user (val, ptr) \ -({ \ - __get_user_internal(SR_USER, val, ptr); \ +#define __probe_user_internal (sr, error, ptr) \ +({ \ + __asm__("\tproberi (%%sr%1,%2),%3,%0\n" \ + "\tcmpiclr,= 1,%0,%0\n" \ + "\tldi %4,%0\n" \ + : "=r"(error) \ + : "i"(sr), "r"(ptr), "i"(PRIV_USER), \ + "i"(-EFAULT)); \ +}) + +#define __get_user (val, ptr) \ +({ \ + register long __gu_err; \ + \ + __gu_err = __get_user_internal(SR_USER, val, ptr); \ + if (likely(!__gu_err)) \ + __probe_user_internal(SR_USER, __gu_err, ptr); \ + __gu_err; \ })#define __get_user_asm (sr, val, ldx, ptr) \
arch/parisc/kernel/cache.c +3 -3
@@ -429,7 +429,7 @@ static inline pte_t *get_ptep(struct mm_struct *mm, unsigned long addr)return ptep; } -static inline bool pte_needs_flush (pte_t pte) +static inline bool pte_needs_cache_flush (pte_t pte) {return (pte_val (pte) & (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_NO_CACHE)) == (_PAGE_PRESENT | _PAGE_ACCESSED);
@@ -630,7 +630,7 @@ static void flush_cache_page_if_present(struct vm_area_struct *vma, ptep =get_ptep (vma->vm_mm, vmaddr);if (ptep) { pte =ptep_get (ptep); - needs_flush =pte_needs_flush (pte); + needs_flush =pte_needs_cache_flush (pte);pte_unmap (ptep); }if (needs_flush)
@@ -841,7 +841,7 @@ void flush_cache_vmap(unsigned long start, unsigned long end) } vm =find_vm_area ((void *)start); -if (WARN_ON_ONCE (!vm)) { +if (!vm) {flush_cache_all ();return ; }
arch/parisc/kernel/entry.S +12 -5
@@ -499,6 +499,12 @@ * this happens is quite subtle, read below */ .macro make_insert_tlb spc,pte,prot,tmp space_to_prot \spc \prot /* create prot id from space */ + +#if _PAGE_SPECIAL_BIT == _PAGE_DMB_BIT + /* need to drop DMB bit, as it's used as SPECIAL flag */ + depi 0,_PAGE_SPECIAL_BIT,1,\pte +#endif + /* The following is the real subtlety. This is depositing * T <-> _PAGE_REFTRAP * D <-> _PAGE_DIRTY
@@ -511,17 +517,18 @@ * Finally, _PAGE_READ goes in the top bit of PL1 (so we * trigger an access rights trap in user space if the user * tries to read an unreadable page */ -#if _PAGE_SPECIAL_BIT == _PAGE_DMB_BIT - /* need to drop DMB bit, as it's used as SPECIAL flag */ - depi 0,_PAGE_SPECIAL_BIT,1,\pte -#endif depd \pte,8,7,\prot /* PAGE_USER indicates the page can be read with user privileges, * so deposit X1|11 to PL1|PL2 (remember the upper bit of PL1 - * contains _PAGE_READ) */ + * contains _PAGE_READ). While the kernel can't directly write + * user pages which have _PAGE_WRITE zero, it can read pages + * which have _PAGE_READ zero (PL <= PL1). Thus, the kernel + * exception fault handler doesn't trigger when reading pages + * that aren't user read accessible */ extrd,u,*= \pte,_PAGE_USER_BIT+32,1,%r0 depdi 7,11,3,\prot + /* If we're a gateway page, drop PL2 back to zero for promotion * to kernel privilege (so we can execute the page as kernel). * Any privilege promotion page always denys read and write */
arch/parisc/kernel/syscall.S +21 -9
@@ -613,6 +613,9 @@ lws_compare_and_swap32: lws_compare_and_swap: /* Trigger memory reference interruptions without writing to memory */ 1: ldw 0(%r26), %r28 + proberi (%r26), PRIV_USER, %r28 + comb,=,n %r28, %r0, lws_fault /* backwards, likely not taken */ + nop 2: stbys,e %r0, 0(%r26) /* Calculate 8-bit hash index from virtual address */
@@ -767,6 +770,9 @@ cas2_lock_start: copy %r26, %r28 depi_safe 0, 31, 2, %r28 10: ldw 0(%r28), %r1 + proberi (%r28), PRIV_USER, %r1 + comb,=,n %r1, %r0, lws_fault /* backwards, likely not taken */ + nop 11: stbys,e %r0, 0(%r28) /* Calculate 8-bit hash index from virtual address */
@@ -951,41 +957,47 @@ atomic_xchg_begin: /* 8-bit exchange */ 1: ldb 0(%r24), %r20 + proberi (%r24), PRIV_USER, %r20 + comb,=,n %r20, %r0, lws_fault /* backwards, likely not taken */ + nop copy %r23, %r20 depi_safe 0, 31, 2, %r20 b atomic_xchg_start 2: stbys,e %r0, 0(%r20) - nop - nop - nop /* 16-bit exchange */ 3: ldh 0(%r24), %r20 + proberi (%r24), PRIV_USER, %r20 + comb,=,n %r20, %r0, lws_fault /* backwards, likely not taken */ + nop copy %r23, %r20 depi_safe 0, 31, 2, %r20 b atomic_xchg_start 4: stbys,e %r0, 0(%r20) - nop - nop - nop /* 32-bit exchange */ 5: ldw 0(%r24), %r20 + proberi (%r24), PRIV_USER, %r20 + comb,=,n %r20, %r0, lws_fault /* backwards, likely not taken */ + nop b atomic_xchg_start 6: stbys,e %r0, 0(%r23) nop nop - nop - nop - nop /* 64-bit exchange */ #ifdef CONFIG_64BIT 7: ldd 0(%r24), %r20 + proberi (%r24), PRIV_USER, %r20 + comb,=,n %r20, %r0, lws_fault /* backwards, likely not taken */ + nop 8: stdby,e %r0, 0(%r23) #else 7: ldw 0(%r24), %r20 8: ldw 4(%r24), %r20 + proberi (%r24), PRIV_USER, %r20 + comb,=,n %r20, %r0, lws_fault /* backwards, likely not taken */ + nop copy %r23, %r20 depi_safe 0, 31, 2, %r20 9: stbys,e %r0, 0(%r20)
arch/parisc/lib/memcpy.c +18 -1
@@ -12,6 +12,7 @@#include <linux/module.h> #include <linux/compiler.h> #include <linux/uaccess.h> +#include <linux/mm.h> #define get_user_space () mfsp(SR_USER)#define get_kernel_space () SR_KERNEL
@@ -32,9 +33,25 @@ EXPORT_SYMBOL(raw_copy_to_user);unsigned long raw_copy_from_user (void *dst,const void __user *src,unsigned long len) { +unsigned long start = (unsigned long ) src; +unsigned long end = start + len; +unsigned long newlen = len; +mtsp (get_user_space (),SR_TEMP1 );mtsp (get_kernel_space (),SR_TEMP2 ); -return pa_memcpy (dst, (void __force *)src, len); + +/* Check region is user accessible */ +if (start) +while (start < end) { +if (!prober_user (SR_TEMP1 , start)) { + newlen = (start - (unsigned long ) src); +break ; + } + start +=PAGE_SIZE ; +/* align to page boundry which may have different permission */ + start =PAGE_ALIGN_DOWN (start); + } +return len - newlen +pa_memcpy (dst, (void __force *)src, newlen); }EXPORT_SYMBOL (raw_copy_from_user);
arch/parisc/mm/fault.c +4 -0
@@ -363,6 +363,10 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,mmap_read_unlock (mm); bad_area_nosemaphore: +if (!user_mode (regs) &&fixup_exception (regs)) { +return ; + } +if (user_mode (regs)) {int signo, si_code;
arch/powerpc/boot/Makefile +1 -0
@@ -70,6 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE) BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include) BOOTCFLAGS := $(BOOTTARGETFLAGS) \ + -std=gnu11 \ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ -fno-strict-aliasing -O2 \ -msoft-float -mno-altivec -mno-vsx \
arch/s390/boot/vmem.c +3 -0
@@ -471,6 +471,9 @@ void setup_vmem(unsigned long kernel_start, unsigned long kernel_end, unsigned l lowcore_address +sizeof (struct lowcore ), POPULATE_LOWCORE);for_each_physmem_usable_range (i, &start, &end) { +/* Do not map lowcore with identity mapping */ +if (!start) + start =sizeof (struct lowcore );pgtable_populate ((unsigned long )__identity_va (start), (unsigned long )__identity_va (end),POPULATE_IDENTITY );
arch/s390/hypfs/hypfs_dbfs.c +12 -7
@@ -6,6 +6,7 @@* Author(s): Michael Holzheu <[email protected]> */ +#include <linux/security.h> #include <linux/slab.h> #include "hypfs.h"
@@ -66,23 +67,27 @@ static long dbfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)long rc;mutex_lock (&df->lock); -if (df->unlocked_ioctl) - rc = df->unlocked_ioctl (file, cmd, arg); -else - rc = -ENOTTY ; + rc = df->unlocked_ioctl (file, cmd, arg);mutex_unlock (&df->lock);return rc; } -static const struct file_operations dbfs_ops = { +static const struct file_operations dbfs_ops_ioctl = { .read = dbfs_read, .unlocked_ioctl = dbfs_ioctl, }; +static const struct file_operations dbfs_ops = { + .read = dbfs_read, +}; +void hypfs_dbfs_create_file (struct hypfs_dbfs_file *df) { - df->dentry =debugfs_create_file (df->name,0400 , dbfs_dir, df, - &dbfs_ops); +const struct file_operations *fops = &dbfs_ops; + +if (df->unlocked_ioctl && !security_locked_down (LOCKDOWN_DEBUGFS )) + fops = &dbfs_ops_ioctl; + df->dentry =debugfs_create_file (df->name,0400 , dbfs_dir, df, fops);mutex_init (&df->lock); }
arch/x86/coco/sev/shared.c +3 -0
@@ -1285,6 +1285,7 @@ static void svsm_pval_4k_page(unsigned long paddr, bool validate) pc->entry[0 ].page_size =RMP_PG_SIZE_4K ; pc->entry[0 ].action = validate; pc->entry[0 ].ignore_cf =0 ; + pc->entry[0 ].rsvd =0 ; pc->entry[0 ].pfn = paddr >>PAGE_SHIFT ;/* Protocol 0, Call ID 1 */
@@ -1373,6 +1374,7 @@ static u64 svsm_build_ca_from_pfn_range(u64 pfn, u64 pfn_end, bool action, pe->page_size =RMP_PG_SIZE_4K ; pe->action = action; pe->ignore_cf =0 ; + pe->rsvd =0 ; pe->pfn = pfn; pe++;
@@ -1403,6 +1405,7 @@ static int svsm_build_ca_from_psc_desc(struct snp_psc_desc *desc, unsigned int d pe->page_size = e->pagesize ?RMP_PG_SIZE_2M :RMP_PG_SIZE_4K ; pe->action = e->operation ==SNP_PAGE_STATE_PRIVATE ; pe->ignore_cf =0 ; + pe->rsvd =0 ; pe->pfn = e->gfn; pe++;
arch/x86/include/asm/xen/hypercall.h +3 -2
@@ -94,12 +94,13 @@ DECLARE_STATIC_CALL(xen_hypercall, xen_hypercall_func);#ifdef MODULE #define __ADDRESSABLE_xen_hypercall#else -#define __ADDRESSABLE_xen_hypercall __ADDRESSABLE_ASM_STR(__SCK__xen_hypercall) +#define __ADDRESSABLE_xen_hypercall \ + __stringify(.global STATIC_CALL_KEY(xen_hypercall);)#endif #define __HYPERCALL \ __ADDRESSABLE_xen_hypercall \ - "call __SCT__xen_hypercall" + __stringify(call STATIC_CALL_TRAMP(xen_hypercall))#define __HYPERCALL_ENTRY (x) "a" (x)
arch/x86/kernel/cpu/hygon.c +3 -0
@@ -15,6 +15,7 @@#include <asm/cacheinfo.h> #include <asm/spec-ctrl.h> #include <asm/delay.h> +#include <asm/resctrl.h> #include "cpu.h"
@@ -116,6 +117,8 @@ static void bsp_init_hygon(struct cpuinfo_x86 *c) x86_amd_ls_cfg_ssbd_mask =1ULL <<10 ; } } + +resctrl_cpu_detect (c); }static void early_init_hygon (struct cpuinfo_x86 *c)
arch/x86/kvm/mmu/mmu.c +4 -6
@@ -7578,7 +7578,7 @@ static bool kvm_nx_huge_page_recovery_worker(void *data)return true; } -static void kvm_mmu_start_lpage_recovery (struct once *once) +static int kvm_mmu_start_lpage_recovery (struct once *once) { struct kvm_arch *ka = container_of(once, struct kvm_arch, nx_once); struct kvm *kvm = container_of(ka, struct kvm, arch);
@@ -7590,12 +7590,13 @@ static void kvm_mmu_start_lpage_recovery(struct once *once) kvm, "kvm-nx-lpage-recovery");if (IS_ERR (nx_thread)) -return ; +return PTR_ERR (nx_thread);vhost_task_start (nx_thread);/* Make the task visible only once it is fully started. */ WRITE_ONCE (kvm->arch.nx_huge_page_recovery_thread, nx_thread); +return 0 ; }int kvm_mmu_post_init_vm (struct kvm *kvm)
@@ -7603,10 +7604,7 @@ int kvm_mmu_post_init_vm(struct kvm *kvm)if (nx_hugepage_mitigation_hard_disabled)return 0 ; -call_once (&kvm->arch.nx_once, kvm_mmu_start_lpage_recovery); -if (!kvm->arch.nx_huge_page_recovery_thread) -return -ENOMEM ; -return 0 ; +return call_once (&kvm->arch.nx_once, kvm_mmu_start_lpage_recovery); }void kvm_mmu_pre_destroy_vm (struct kvm *kvm)
drivers/accel/habanalabs/gaudi2/gaudi2.c +1 -1
@@ -10437,7 +10437,7 @@ static int gaudi2_memset_device_memory(struct hl_device *hdev, u64 addr, u64 siz (u64 *)(lin_dma_pkts_arr), DEBUGFS_WRITE64);WREG32 (sob_addr,0 ); -kfree (lin_dma_pkts_arr); +kvfree (lin_dma_pkts_arr);return rc; }
drivers/acpi/pfr_update.c +1 -1
@@ -310,7 +310,7 @@ static bool applicable_image(const void *data, struct pfru_update_cap_info *cap,if (type ==PFRU_CODE_INJECT_TYPE )return payload_hdr->rt_ver >= cap->code_rt_version; -return payload_hdr->rt_ver >= cap->drv_rt_version; +return payload_hdr->svn_ver >= cap->drv_svn; } static void print_update_debug_info(struct pfru_updated_result *result,
drivers/ata/Kconfig +26 -10
@@ -117,23 +117,39 @@ config SATA_AHCI config SATA_MOBILE_LPM_POLICY int "Default SATA Link Power Management policy" - range 0 4 + range 0 5 default 3 depends on SATA_AHCI help Select the Default SATA Link Power Management (LPM) policy to use for chipsets / "South Bridges" supporting low-power modes. Such chipsets are ubiquitous across laptops, desktops and servers. - - The value set has the following meanings: + Each policy combines power saving states and features: + - Partial: The Phy logic is powered but is in a reduced power + state. The exit latency from this state is no longer than + 10us). + - Slumber: The Phy logic is powered but is in an even lower power + state. The exit latency from this state is potentially + longer, but no longer than 10ms. + - DevSleep: The Phy logic may be powered down. The exit latency from + this state is no longer than 20 ms, unless otherwise + specified by DETO in the device Identify Device Data log. + - HIPM: Host Initiated Power Management (host automatically + transitions to partial and slumber). + - DIPM: Device Initiated Power Management (device automatically + transitions to partial and slumber). + + The possible values for the default SATA link power management + policies are: 0 => Keep firmware settings - 1 => Maximum performance - 2 => Medium power - 3 => Medium power with Device Initiated PM enabled - 4 => Minimum power - - Note "Minimum power" is known to cause issues, including disk - corruption, with some disks and should not be used. + 1 => No power savings (maximum performance) + 2 => HIPM (Partial) + 3 => HIPM (Partial) and DIPM (Partial and Slumber) + 4 => HIPM (Partial and DevSleep) and DIPM (Partial and Slumber) + 5 => HIPM (Slumber and DevSleep) and DIPM (Partial and Slumber) + + Excluding the value 0, higher values represent policies with higher + power savings. config SATA_AHCI_PLATFORM tristate "Platform AHCI SATA support"
drivers/ata/libata-scsi.c +26 -32
98 lines not on this page · raw message
drivers/base/power/runtime.c +18 -9
@@ -1183,10 +1183,12 @@ EXPORT_SYMBOL_GPL(__pm_runtime_resume);* * Return -EINVAL if runtime PM is disabled for @dev. * -* Otherwise, if the runtime PM status of @dev is %RPM_ACTIVE and either -* @ign_usage_count is %true or the runtime PM usage counter of @dev is not -* zero, increment the usage counter of @dev and return 1. Otherwise, return 0 -* without changing the usage counter. +* Otherwise, if its runtime PM status is %RPM_ACTIVE and (1) @ign_usage_count +* is set, or (2) @dev is not ignoring children and its active child count is +* nonero, or (3) the runtime PM usage counter of @dev is not zero, increment +* the usage counter of @dev and return 1. +* +* Otherwise, return 0 without changing the usage counter. * * If @ign_usage_count is %true, this function can be used to prevent suspending * the device when its runtime PM status is %RPM_ACTIVE.
@@ -1208,7 +1210,8 @@ static int pm_runtime_get_conditional(struct device *dev, bool ign_usage_count) retval = -EINVAL ; }else if (dev->power.runtime_status !=RPM_ACTIVE ) { retval =0 ; - }else if (ign_usage_count) { + }else if (ign_usage_count || (!dev->power.ignore_children && +atomic_read (&dev->power.child_count) >0 )) { retval =1 ;atomic_inc (&dev->power.usage_count); }else {
@@ -1241,10 +1244,16 @@ EXPORT_SYMBOL_GPL(pm_runtime_get_if_active);* @dev: Target device. * * Increment the runtime PM usage counter of @dev if its runtime PM status is -* %RPM_ACTIVE and its runtime PM usage counter is greater than 0, in which case -* it returns 1. If the device is in a different state or its usage_count is 0, -* 0 is returned. -EINVAL is returned if runtime PM is disabled for the device, -* in which case also the usage_count will remain unmodified. +* %RPM_ACTIVE and its runtime PM usage counter is greater than 0 or it is not +* ignoring children and its active child count is nonzero. 1 is returned in +* this case. +* +* If @dev is in a different state or it is not in use (that is, its usage +* counter is 0, or it is ignoring children, or its active child count is 0), +* 0 is returned. +* +* -EINVAL is returned if runtime PM is disabled for the device, in which case +* also the usage counter of @dev is not updated. */ int pm_runtime_get_if_in_use (struct device *dev) {
drivers/bluetooth/btmtk.c +1 -6
@@ -642,12 +642,7 @@ static int btmtk_usb_hci_wmt_sync(struct hci_dev *hdev,* WMT command. */ err =wait_on_bit_timeout (&data->flags,BTMTK_TX_WAIT_VND_EVT , -TASK_INTERRUPTIBLE ,HCI_INIT_TIMEOUT ); -if (err == -EINTR ) { -bt_dev_err (hdev,"Execution of wmt command interrupted" ); -clear_bit (BTMTK_TX_WAIT_VND_EVT , &data->flags); - goto err_free_wc; - } +TASK_UNINTERRUPTIBLE ,HCI_INIT_TIMEOUT );if (err) {bt_dev_err (hdev,"Execution of wmt command timed out" );
drivers/bus/mhi/host/boot.c +4 -4
@@ -31,8 +31,8 @@ int mhi_rddm_prepare(struct mhi_controller *mhi_cntrl,int ret;for (i =0 ; i < img_info->entries -1 ; i++, mhi_buf++, bhi_vec++) { - bhi_vec->dma_addr = mhi_buf->dma_addr; - bhi_vec->size = mhi_buf->len; + bhi_vec->dma_addr =cpu_to_le64 (mhi_buf->dma_addr); + bhi_vec->size =cpu_to_le64 (mhi_buf->len); }dev_dbg (dev,"BHIe programming for RDDM\n" );
@@ -375,8 +375,8 @@ static void mhi_firmware_copy(struct mhi_controller *mhi_cntrl,while (remainder) { to_cpy =min (remainder, mhi_buf->len);memcpy (mhi_buf->buf, buf, to_cpy); - bhi_vec->dma_addr = mhi_buf->dma_addr; - bhi_vec->size = to_cpy; + bhi_vec->dma_addr =cpu_to_le64 (mhi_buf->dma_addr); + bhi_vec->size =cpu_to_le64 (to_cpy); buf += to_cpy; remainder -= to_cpy;
drivers/bus/mhi/host/internal.h +2 -2
@@ -25,8 +25,8 @@ struct mhi_ctxt { };struct bhi_vec_entry { -u64 dma_addr; -u64 size; +__le64 dma_addr; +__le64 size; };enum mhi_ch_state_type {
drivers/bus/mhi/host/main.c +11 -1
@@ -602,7 +602,7 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl, {dma_addr_t ptr =MHI_TRE_GET_EV_PTR (event);struct mhi_ring_element *local_rp, *ev_tre; -void *dev_rp; +void *dev_rp, *next_rp;struct mhi_buf_info *buf_info;u16 xfer_len;
@@ -621,6 +621,16 @@ static int parse_xfer_event(struct mhi_controller *mhi_cntrl, result.dir = mhi_chan->dir; local_rp = tre_ring->rp; + + next_rp = local_rp +1 ; +if (next_rp >= tre_ring->base + tre_ring->len) + next_rp = tre_ring->base; +if (dev_rp != next_rp && !MHI_TRE_DATA_GET_CHAIN (local_rp)) { +dev_err (&mhi_cntrl->mhi_dev->dev, +"Event element points to an unexpected TRE\n" ); +break ; + } +while (local_rp != dev_rp) { buf_info = buf_ring->rp;/* If it's the last TRE, get length from the event */
drivers/cdx/controller/cdx_rpmsg.c +1 -2
@@ -129,8 +129,7 @@ static int cdx_rpmsg_probe(struct rpmsg_device *rpdev) chinfo.src =RPMSG_ADDR_ANY ; chinfo.dst = rpdev->dst; -strscpy (chinfo.name, cdx_rpmsg_id_table[0 ].name, -strlen (cdx_rpmsg_id_table[0 ].name)); +strscpy (chinfo.name, cdx_rpmsg_id_table[0 ].name,sizeof (chinfo.name)); cdx_mcdi->ept =rpmsg_create_ept (rpdev, cdx_rpmsg_cb,NULL , chinfo);if (!cdx_mcdi->ept) {
drivers/comedi/comedi_fops.c +5 -0
@@ -1587,6 +1587,9 @@ static int do_insnlist_ioctl(struct comedi_device *dev,memset (&data[n],0 , (MIN_SAMPLES - n) *sizeof (unsigned int )); } + }else { + memset(data, 0, max_t(unsigned int, n, MIN_SAMPLES) * +sizeof (unsigned int )); } ret =parse_insn (dev, insns + i, data, file);if (ret <0 )
@@ -1670,6 +1673,8 @@ static int do_insn_ioctl(struct comedi_device *dev,memset (&data[insn->n],0 , (MIN_SAMPLES - insn->n) *sizeof (unsigned int )); } + }else { +memset (data,0 , n_data *sizeof (unsigned int )); } ret =parse_insn (dev, insn, data, file);if (ret <0 )
drivers/comedi/drivers.c +12 -11
@@ -620,11 +620,9 @@ static int insn_rw_emulate_bits(struct comedi_device *dev,unsigned int chan =CR_CHAN (insn->chanspec);unsigned int base_chan = (chan <32 ) ?0 : chan;unsigned int _data[2 ]; +unsigned int i;int ret; -if (insn->n ==0 ) -return 0 ; -memset (_data,0 ,sizeof (_data));memset (&_insn,0 ,sizeof (_insn)); _insn.insn =INSN_BITS ;
@@ -635,18 +633,21 @@ static int insn_rw_emulate_bits(struct comedi_device *dev,if (insn->insn ==INSN_WRITE ) {if (!(s->subdev_flags &SDF_WRITABLE ))return -EINVAL ; - _data[0 ] =1U << (chan - base_chan);/* mask */ - _data[1 ] = data[0 ] ? (1U << (chan - base_chan)) :0 ;/* bits */ + _data[0 ] =1U << (chan - base_chan);/* mask */ } +for (i =0 ; i < insn->n; i++) { +if (insn->insn ==INSN_WRITE ) + _data[1 ] = data[i] ? _data[0 ] :0 ;/* bits */ - ret = s->insn_bits (dev, s, &_insn, _data); -if (ret <0 ) -return ret; + ret = s->insn_bits (dev, s, &_insn, _data); +if (ret <0 ) +return ret; -if (insn->insn ==INSN_READ ) - data[0 ] = (_data[1 ] >> (chan - base_chan)) &1 ; +if (insn->insn ==INSN_READ ) + data[i] = (_data[1 ] >> (chan - base_chan)) &1 ; + } -return 1 ; +return insn->n; } static int __comedi_device_postconfig_async(struct comedi_device *dev,
drivers/comedi/drivers/pcl726.c +2 -1
@@ -328,7 +328,8 @@ static int pcl726_attach(struct comedi_device *dev,* Hook up the external trigger source interrupt only if the * user config option is valid and the board supports interrupts. */ -if (it->options[1 ] && (board->irq_mask & (1 << it->options[1 ]))) { +if (it->options[1 ] >0 && it->options[1 ] <16 && + (board->irq_mask & (1U << it->options[1 ]))) { ret =request_irq (it->options[1 ], pcl726_interrupt,0 , dev->board_name, dev);if (ret ==0 ) {
drivers/cpufreq/armada-8k-cpufreq.c +1 -1
@@ -103,7 +103,7 @@ static void armada_8k_cpufreq_free_table(struct freq_table *freq_tables) {int opps_index, nb_cpus =num_possible_cpus (); -for (opps_index =0 ; opps_index <= nb_cpus; opps_index++) { +for (opps_index =0 ; opps_index < nb_cpus; opps_index++) {int i;/* If cpu_dev is NULL then we reached the end of the array */
drivers/cpuidle/governors/menu.c +19 -82
184 lines not on this page · raw message
drivers/crypto/caam/ctrl.c +3 -2
@@ -830,7 +830,7 @@ static int caam_ctrl_suspend(struct device *dev) {const struct caam_drv_private *ctrlpriv =dev_get_drvdata (dev); -if (ctrlpriv->caam_off_during_pm && !ctrlpriv->optee_en) +if (ctrlpriv->caam_off_during_pm && !ctrlpriv->no_page0)caam_state_save (dev);return 0 ;
@@ -841,7 +841,7 @@ static int caam_ctrl_resume(struct device *dev)struct caam_drv_private *ctrlpriv =dev_get_drvdata (dev);int ret =0 ; -if (ctrlpriv->caam_off_during_pm && !ctrlpriv->optee_en) { +if (ctrlpriv->caam_off_during_pm && !ctrlpriv->no_page0) {caam_state_restore (dev);/* HW and rng will be reset so deinstantiation can be removed */
@@ -907,6 +907,7 @@ static int caam_probe(struct platform_device *pdev) imx_soc_data = imx_soc_match->data; reg_access = reg_access && imx_soc_data->page0_access; + ctrlpriv->no_page0 = !reg_access;/* * CAAM clocks cannot be controlled from kernel. */
drivers/crypto/caam/intern.h +1 -0
@@ -115,6 +115,7 @@ struct caam_drv_private {u8 blob_present;/* Nonzero if BLOB support present in device */ u8 mc_en;/* Nonzero if MC f/w is active */ u8 optee_en;/* Nonzero if OP-TEE f/w is active */ +u8 no_page0;/* Nonzero if register page 0 is not controlled by Linux */ bool pr_support;/* RNG prediction resistance available */ int secvio_irq;/* Security violation interrupt number */ int virt_en;/* Virtualization enabled in CAAM */
drivers/crypto/intel/qat/qat_common/adf_common_drv.h +1 -0
@@ -190,6 +190,7 @@ void adf_exit_misc_wq(void);bool adf_misc_wq_queue_work (struct work_struct *work);bool adf_misc_wq_queue_delayed_work (struct delayed_work *work,unsigned long delay); +void adf_misc_wq_flush (void );#if defined(CONFIG_PCI_IOV )int adf_sriov_configure (struct pci_dev *pdev,int numvfs);void adf_disable_sriov (struct adf_accel_dev *accel_dev);
drivers/crypto/intel/qat/qat_common/adf_init.c +1 -0
@@ -404,6 +404,7 @@ static void adf_dev_shutdown(struct adf_accel_dev *accel_dev) hw_data->exit_admin_comms (accel_dev);adf_cleanup_etr_data (accel_dev); +adf_misc_wq_flush ();adf_dev_restore (accel_dev); }
drivers/crypto/intel/qat/qat_common/adf_isr.c +5 -0
@@ -407,3 +407,8 @@ bool adf_misc_wq_queue_delayed_work(struct delayed_work *work, {return queue_delayed_work (adf_misc_wq, work, delay); } + +void adf_misc_wq_flush (void ) +{ +flush_workqueue (adf_misc_wq); +}
drivers/crypto/intel/qat/qat_common/qat_algs.c +6 -6
@@ -1277,7 +1277,7 @@ static struct aead_alg qat_aeads[] = { { .base = { .cra_name = "authenc(hmac(sha1),cbc(aes))", .cra_driver_name = "qat_aes_cbc_hmac_sha1", - .cra_priority = 4001, + .cra_priority = 100, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
@@ -1294,7 +1294,7 @@ static struct aead_alg qat_aeads[] = { { .base = { .cra_name = "authenc(hmac(sha256),cbc(aes))", .cra_driver_name = "qat_aes_cbc_hmac_sha256", - .cra_priority = 4001, + .cra_priority = 100, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
@@ -1311,7 +1311,7 @@ static struct aead_alg qat_aeads[] = { { .base = { .cra_name = "authenc(hmac(sha512),cbc(aes))", .cra_driver_name = "qat_aes_cbc_hmac_sha512", - .cra_priority = 4001, + .cra_priority = 100, .cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY, .cra_blocksize = AES_BLOCK_SIZE, .cra_ctxsize = sizeof(struct qat_alg_aead_ctx),
@@ -1329,7 +1329,7 @@ static struct aead_alg qat_aeads[] = { {static struct skcipher_alg qat_skciphers[] = { { .base.cra_name ="cbc(aes)" , .base.cra_driver_name ="qat_aes_cbc" , - .base.cra_priority =4001 , + .base.cra_priority =100 , .base.cra_flags =CRYPTO_ALG_ASYNC |CRYPTO_ALG_ALLOCATES_MEMORY , .base.cra_blocksize =AES_BLOCK_SIZE , .base.cra_ctxsize =sizeof (struct qat_alg_skcipher_ctx ),
@@ -1347,7 +1347,7 @@ static struct skcipher_alg qat_skciphers[] = { { }, { .base.cra_name = "ctr(aes)", .base.cra_driver_name = "qat_aes_ctr", - .base.cra_priority = 4001, + .base.cra_priority = 100, .base.cra_flags = CRYPTO_ALG_ASYNC | CRYPTO_ALG_ALLOCATES_MEMORY, .base.cra_blocksize = 1, .base.cra_ctxsize = sizeof(struct qat_alg_skcipher_ctx),
@@ -1365,7 +1365,7 @@ static struct skcipher_alg qat_skciphers[] = { { }, { .base.cra_name = "xts(aes)", .base.cra_driver_name = "qat_aes_xts", - .base.cra_priority = 4001, + .base.cra_priority = 100, .base.cra_flags =CRYPTO_ALG_ASYNC |CRYPTO_ALG_NEED_FALLBACK | CRYPTO_ALG_ALLOCATES_MEMORY, .base.cra_blocksize = AES_BLOCK_SIZE,
drivers/crypto/marvell/octeontx2/otx2_cpt_reqmgr.h +95 -30
192 lines not on this page · raw message
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c +21 -14
@@ -1490,12 +1490,13 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf)union otx2_cpt_opcode opcode;union otx2_cpt_res_s *result;union otx2_cpt_inst_s inst; +dma_addr_t result_baddr;dma_addr_t rptr_baddr;struct pci_dev *pdev; -u32 len, compl_rlen;int timeout =10000 ; +void *base, *rptr;int ret, etype; -void *rptr; +u32 len;/* * We don't get capabilities if it was already done
@@ -1520,22 +1521,28 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf)if (ret) goto delete_grps; - compl_rlen =ALIGN (sizeof (union otx2_cpt_res_s ),OTX2_CPT_DMA_MINALIGN ); - len = compl_rlen +LOADFVC_RLEN ; +/* Allocate extra memory for "rptr" and "result" pointer alignment */ + len =LOADFVC_RLEN +ARCH_DMA_MINALIGN + +sizeof (union otx2_cpt_res_s ) +OTX2_CPT_RES_ADDR_ALIGN ; - result =kzalloc (len,GFP_KERNEL ); -if (!result) { + base =kzalloc (len,GFP_KERNEL ); +if (!base) { ret = -ENOMEM ; goto lf_cleanup; } - rptr_baddr =dma_map_single (&pdev->dev, (void *)result, len, -DMA_BIDIRECTIONAL ); + + rptr =PTR_ALIGN (base,ARCH_DMA_MINALIGN ); + rptr_baddr =dma_map_single (&pdev->dev, rptr, len,DMA_BIDIRECTIONAL );if (dma_mapping_error (&pdev->dev, rptr_baddr)) {dev_err (&pdev->dev,"DMA mapping failed\n" ); ret = -EFAULT ; - goto free_result; + goto free_rptr; } - rptr = (u8 *)result + compl_rlen; + + result = (union otx2_cpt_res_s *)PTR_ALIGN (rptr +LOADFVC_RLEN , +OTX2_CPT_RES_ADDR_ALIGN ); + result_baddr =ALIGN (rptr_baddr +LOADFVC_RLEN , +OTX2_CPT_RES_ADDR_ALIGN );/* Fill in the command */ opcode.s.major =LOADFVC_MAJOR_OP ;
@@ -1547,14 +1554,14 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf)/* 64-bit swap for microcode data reads, not needed for addresses */ cpu_to_be64s (&iq_cmd.cmd.u); iq_cmd.dptr =0 ; - iq_cmd.rptr = rptr_baddr + compl_rlen; + iq_cmd.rptr = rptr_baddr; iq_cmd.cptr.u =0 ;for (etype =1 ; etype <OTX2_CPT_MAX_ENG_TYPES ; etype++) { result->s.compcode =OTX2_CPT_COMPLETION_CODE_INIT ; iq_cmd.cptr.s.grp =otx2_cpt_get_eng_grp (&cptpf->eng_grps, etype); -otx2_cpt_fill_inst (&inst, &iq_cmd, rptr_baddr); +otx2_cpt_fill_inst (&inst, &iq_cmd, result_baddr); lfs->ops->send_cmd (&inst,1 , &cptpf->lfs.lf[0 ]); timeout =10000 ;
@@ -1577,8 +1584,8 @@ int otx2_cpt_discover_eng_capabilities(struct otx2_cptpf_dev *cptpf) error_no_response:dma_unmap_single (&pdev->dev, rptr_baddr, len,DMA_BIDIRECTIONAL ); -free_result: -kfree (result); +free_rptr: +kfree (base); lf_cleanup:otx2_cptlf_shutdown (lfs); delete_grps:
drivers/fpga/zynq-fpga.c +5 -5
@@ -405,12 +405,12 @@ static int zynq_fpga_ops_write(struct fpga_manager *mgr, struct sg_table *sgt) } } - priv->dma_nelms = -dma_map_sg (mgr->dev.parent, sgt->sgl, sgt->nents,DMA_TO_DEVICE ); -if (priv->dma_nelms ==0 ) { + err =dma_map_sgtable (mgr->dev.parent, sgt,DMA_TO_DEVICE ,0 ); +if (err) {dev_err (&mgr->dev,"Unable to DMA map (TO_DEVICE)\n" ); -return -ENOMEM ; +return err; } + priv->dma_nelms = sgt->nents;/* enable clock */ err =clk_enable (priv->clk);
@@ -478,7 +478,7 @@ static int zynq_fpga_ops_write(struct fpga_manager *mgr, struct sg_table *sgt)clk_disable (priv->clk); out_free: -dma_unmap_sg (mgr->dev.parent, sgt->sgl, sgt->nents,DMA_TO_DEVICE ); +dma_unmap_sgtable (mgr->dev.parent, sgt,DMA_TO_DEVICE ,0 );return err; }
drivers/gpu/drm/Kconfig +5 -0
@@ -105,10 +105,15 @@ config DRM_KMS_HELPER help CRTC helpers for KMS drivers. +config DRM_DRAW + bool + depends on DRM + config DRM_PANIC bool "Display a user-friendly message when a kernel panic occurs" depends on DRM select FONT_SUPPORT + select DRM_DRAW help Enable a drm panic handler, which will display a user-friendly message when a kernel panic occurs. It's useful when using a user-space
drivers/gpu/drm/Makefile +1 -0
@@ -89,6 +89,7 @@ drm-$(CONFIG_DRM_PRIVACY_SCREEN) += \ drm_privacy_screen_x86.o drm-$(CONFIG_DRM_ACCEL) += ../../accel/drm_accel.o drm-$(CONFIG_DRM_PANIC) += drm_panic.o +drm-$(CONFIG_DRM_DRAW) += drm_draw.o drm-$(CONFIG_DRM_PANIC_SCREEN_QR_CODE) += drm_panic_qr.o obj-$(CONFIG_DRM) += drm.o
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +2 -3
@@ -2387,9 +2387,6 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev) adev->firmware.gpu_info_fw =NULL ; -if (adev->mman.discovery_bin) -return 0 ; -switch (adev->asic_type) {default :return 0 ;
@@ -2411,6 +2408,8 @@ static int amdgpu_device_parse_gpu_info_fw(struct amdgpu_device *adev) chip_name ="arcturus" ;break ;case CHIP_NAVI12 : +if (adev->mman.discovery_bin) +return 0 ; chip_name ="navi12" ;break ; }
drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c +41 -35
131 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c +2 -4
@@ -2292,13 +2292,11 @@ void amdgpu_vm_adjust_size(struct amdgpu_device *adev, uint32_t min_vm_size,*/ long amdgpu_vm_wait_idle (struct amdgpu_vm *vm,long timeout) { - timeout =dma_resv_wait_timeout (vm->root.bo->tbo.base.resv, -DMA_RESV_USAGE_BOOKKEEP , - true, timeout); + timeout =drm_sched_entity_flush (&vm->immediate, timeout);if (timeout <=0 )return timeout; -return dma_fence_wait_timeout (vm->last_unlocked, true, timeout); +return drm_sched_entity_flush (&vm->delayed, timeout); }static void amdgpu_vm_destroy_task_info (struct kref *kref)
drivers/gpu/drm/amd/amdgpu/imu_v12_0.c +1 -1
@@ -361,7 +361,7 @@ static void program_imu_rlc_ram(struct amdgpu_device *adev,static void imu_v12_0_program_rlc_ram (struct amdgpu_device *adev) {u32 reg_data, size =0 ; -const u32 *data; +const u32 *data =NULL ;int r = -EINVAL ;WREG32_SOC15 (GC ,0 , regGFX_IMU_RLC_RAM_INDEX,0x2 );
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c +32 -25
72 lines not on this page · raw message
drivers/gpu/drm/amd/amdgpu/mmhub_v4_1_0.c +13 -21
@@ -37,39 +37,31 @@static const char *mmhub_client_ids_v4_1_0[][2 ] = { [0 ][0 ] ="VMC" , [4 ][0 ] ="DCEDMC" , - [5 ][0 ] ="DCEVGA" , [6 ][0 ] ="MP0" , [7 ][0 ] ="MP1" , [8 ][0 ] ="MPIO" , - [16 ][0 ] ="HDP" , - [17 ][0 ] ="LSDMA" , - [18 ][0 ] ="JPEG" , - [19 ][0 ] ="VCNU0" , - [21 ][0 ] ="VSCH" , - [22 ][0 ] ="VCNU1" , - [23 ][0 ] ="VCN1" , - [32 +20 ][0 ] ="VCN0" , - [2 ][1 ] ="DBGUNBIO" , + [16 ][0 ] ="LSDMA" , + [17 ][0 ] ="JPEG" , + [19 ][0 ] ="VCNU" , + [22 ][0 ] ="VSCH" , + [23 ][0 ] ="HDP" , + [32 +23 ][0 ] ="VCNRD" , [3 ][1 ] ="DCEDWB" , [4 ][1 ] ="DCEDMC" , - [5 ][1 ] ="DCEVGA" , [6 ][1 ] ="MP0" , [7 ][1 ] ="MP1" , [8 ][1 ] ="MPIO" , [10 ][1 ] ="DBGU0" , [11 ][1 ] ="DBGU1" , - [12 ][1 ] ="DBGU2" , - [13 ][1 ] ="DBGU3" , + [12 ][1 ] ="DBGUNBIO" , [14 ][1 ] ="XDP" , [15 ][1 ] ="OSSSYS" , - [16 ][1 ] ="HDP" , - [17 ][1 ] ="LSDMA" , - [18 ][1 ] ="JPEG" , - [19 ][1 ] ="VCNU0" , - [20 ][1 ] ="VCN0" , - [21 ][1 ] ="VSCH" , - [22 ][1 ] ="VCNU1" , - [23 ][1 ] ="VCN1" , + [16 ][1 ] ="LSDMA" , + [17 ][1 ] ="JPEG" , + [18 ][1 ] ="VCNWR" , + [19 ][1 ] ="VCNU" , + [22 ][1 ] ="VSCH" , + [23 ][1 ] ="HDP" , }; static uint32_t mmhub_v4_1_0_get_invalidate_req(unsigned int vmid,
drivers/gpu/drm/amd/amdgpu/soc15.c +2 -0
@@ -1183,6 +1183,8 @@ static int soc15_common_early_init(void *handle)AMD_PG_SUPPORT_JPEG ;/*TODO: need a new external_rev_id for GC 9.4.4? */ adev->external_rev_id = adev->rev_id +0x46 ; +if (amdgpu_ip_version (adev,GC_HWIP ,0 ) ==IP_VERSION (9 ,5 ,0 )) + adev->external_rev_id = adev->rev_id +0x50 ;break ;default :/* FIXME: not supported yet */
drivers/gpu/drm/amd/amdkfd/kfd_module.c +1 -1
@@ -78,8 +78,8 @@ static int kfd_init(void)static void kfd_exit (void ) {kfd_cleanup_processes (); -kfd_debugfs_fini ();kfd_process_destroy_wq (); +kfd_debugfs_fini ();kfd_procfs_shutdown ();kfd_topology_shutdown ();kfd_chardev_exit ();
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +3 -0
@@ -7583,6 +7583,9 @@ amdgpu_dm_connector_atomic_check(struct drm_connector *conn,struct amdgpu_dm_connector *aconn =to_amdgpu_dm_connector (conn);int ret; +if (WARN_ON (unlikely (!old_con_state || !new_con_state))) +return -EINVAL ; +trace_amdgpu_dm_connector_atomic_check (new_con_state);if (conn->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crtc.c +28 -0
@@ -302,6 +302,25 @@ static inline int amdgpu_dm_crtc_set_vblank(struct drm_crtc *crtc, bool enable) irq_type =amdgpu_display_crtc_idx_to_irq_type (adev, acrtc->crtc_id);if (enable) { +struct dc *dc = adev->dm.dc; +struct drm_vblank_crtc *vblank =drm_crtc_vblank_crtc (crtc); +struct psr_settings *psr = &acrtc_state->stream->link->psr_settings; +struct replay_settings *pr = &acrtc_state->stream->link->replay_settings; +bool sr_supported = (psr->psr_version !=DC_PSR_VERSION_UNSUPPORTED ) || + pr->config.replay_supported; + +/* +* IPS & self-refresh feature can cause vblank counter resets between +* vblank disable and enable. +* It may cause system stuck due to waiting for the vblank counter. +* Call this function to estimate missed vblanks by using timestamps and +* update the vblank counter in DRM. +*/ +if (dc->caps.ips_support && + dc->config.disable_ips !=DMUB_IPS_DISABLE_ALL && + sr_supported && vblank->config.disable_immediate) +drm_crtc_vblank_restore (crtc); +/* vblank irq on -> Only need vupdate irq in vrr mode */ if (amdgpu_dm_crtc_vrr_active (acrtc_state)) rc =amdgpu_dm_crtc_set_vupdate_irq (crtc, true);
@@ -664,6 +683,15 @@ static int amdgpu_dm_crtc_helper_atomic_check(struct drm_crtc *crtc,return -EINVAL ; } +if (!state->legacy_cursor_update &&amdgpu_dm_crtc_vrr_active (dm_crtc_state)) { +struct drm_plane_state *primary_state; + +/* Pull in primary plane for correct VRR handling */ + primary_state =drm_atomic_get_plane_state (state, crtc->primary); +if (IS_ERR (primary_state)) +return PTR_ERR (primary_state); + } +/* In some use cases, like reset, no stream is attached */ if (!dm_crtc_state->stream)return 0 ;
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +1 -1
@@ -3932,7 +3932,7 @@ static int capabilities_show(struct seq_file *m, void *unused)struct hubbub *hubbub = dc->res_pool->hubbub; -if (hubbub->funcs->get_mall_en) +if (hubbub && hubbub->funcs->get_mall_en) hubbub->funcs->get_mall_en (hubbub, &mall_in_use);if (dc->cap_funcs.get_subvp_en)
drivers/gpu/drm/amd/display/dc/bios/bios_parser.c +1 -4
@@ -174,11 +174,8 @@ static struct graphics_object_id bios_parser_get_connector_id(return object_id; } -if (tbl->ucNumberOfObjects <= i) { -dm_error ("Can't find connector id %d in connector table of size %d.\n" , - i, tbl->ucNumberOfObjects); +if (tbl->ucNumberOfObjects <= i)return object_id; - } id =le16_to_cpu (tbl->asObjects[i].usObjectID); object_id =object_id_from_bios_object_id (id);
drivers/gpu/drm/amd/display/dc/bios/command_table.c +1 -1
@@ -993,7 +993,7 @@ static enum bp_result set_pixel_clock_v3( allocation.sPCLKInput.usFbDiv =cpu_to_le16 ((uint16_t )bp_params->feedback_divider); allocation.sPCLKInput.ucFracFbDiv = - (uint8_t )bp_params->fractional_feedback_divider; + (uint8_t )(bp_params->fractional_feedback_divider /100000 ); allocation.sPCLKInput.ucPostDiv = (uint8_t )bp_params->pixel_clock_post_divider;
drivers/gpu/drm/amd/display/dc/clk_mgr/clk_mgr.c +0 -1
@@ -158,7 +158,6 @@ struct clk_mgr *dc_clk_mgr_create(struct dc_context *ctx, struct pp_smu_funcs *p return NULL; }dce60_clk_mgr_construct (ctx, clk_mgr); -dce_clk_mgr_construct (ctx, clk_mgr);return &clk_mgr->base; }#endif
drivers/gpu/drm/amd/display/dc/clk_mgr/dce100/dce_clk_mgr.c +0 -2
@@ -386,8 +386,6 @@ static void dce_pplib_apply_display_requirements( {struct dm_pp_display_configuration *pp_display_cfg = &context->pp_display_cfg; - pp_display_cfg->avail_mclk_switch_time_us =dce110_get_min_vblank_time_us (context); -dce110_fill_display_configs (context, pp_display_cfg);if (memcmp (&dc->current_state->pp_display_cfg, pp_display_cfg,sizeof (*pp_display_cfg)) !=0 )
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c +23 -17
@@ -120,9 +120,15 @@ void dce110_fill_display_configs(const struct dc_state *context, struct dm_pp_display_configuration *pp_display_cfg) { + struct dc *dc = context->clk_mgr->ctx->dc;int j;int num_cfgs =0 ; + pp_display_cfg->avail_mclk_switch_time_us =dce110_get_min_vblank_time_us (context); + pp_display_cfg->disp_clk_khz = dc->clk_mgr->clks.dispclk_khz; + pp_display_cfg->avail_mclk_switch_time_in_disp_active_us =0 ; + pp_display_cfg->crtc_index = dc->res_pool->res_cap->num_timing_generator; +for (j =0 ; j < context->stream_count; j++) {int k;
@@ -164,6 +170,23 @@ void dce110_fill_display_configs( cfg->v_refresh /= stream->timing.h_total; cfg->v_refresh = (cfg->v_refresh + stream->timing.v_total /2 ) / stream->timing.v_total; + +/* Find first CRTC index and calculate its line time. +* This is necessary for DPM on SI GPUs. +*/ +if (cfg->pipe_idx < pp_display_cfg->crtc_index) { +const struct dc_crtc_timing *timing = + &context->streams[0 ]->timing; + + pp_display_cfg->crtc_index = cfg->pipe_idx; + pp_display_cfg->line_time_in_us = + timing->h_total *10000 / timing->pix_clk_100hz; + } + } + +if (!num_cfgs) { + pp_display_cfg->crtc_index =0 ; + pp_display_cfg->line_time_in_us =0 ; } pp_display_cfg->display_count = num_cfgs;
@@ -223,25 +246,8 @@ void dce11_pplib_apply_display_requirements( pp_display_cfg->min_engine_clock_deep_sleep_khz = context->bw_ctx.bw.dce.sclk_deep_sleep_khz; - pp_display_cfg->avail_mclk_switch_time_us = -dce110_get_min_vblank_time_us (context); -/* TODO: dce11.2*/ - pp_display_cfg->avail_mclk_switch_time_in_disp_active_us =0 ; - - pp_display_cfg->disp_clk_khz = dc->clk_mgr->clks.dispclk_khz; -dce110_fill_display_configs (context, pp_display_cfg); -/* TODO: is this still applicable?*/ -if (pp_display_cfg->display_count ==1 ) { -const struct dc_crtc_timing *timing = - &context->streams[0 ]->timing; - - pp_display_cfg->crtc_index = - pp_display_cfg->disp_configs[0 ].pipe_idx; - pp_display_cfg->line_time_in_us = timing->h_total *10000 / timing->pix_clk_100hz; - } -if (memcmp (&dc->current_state->pp_display_cfg, pp_display_cfg,sizeof (*pp_display_cfg)) !=0 )dm_pp_apply_display_requirements (dc->ctx, pp_display_cfg); }
drivers/gpu/drm/amd/display/dc/clk_mgr/dce60/dce60_clk_mgr.c +9 -22
@@ -83,22 +83,13 @@ static const struct state_dependent_clocks dce60_max_clks_by_state[] = {static int dce60_get_dp_ref_freq_khz (struct clk_mgr *clk_mgr_base) {struct clk_mgr_internal *clk_mgr =TO_CLK_MGR_INTERNAL (clk_mgr_base); -int dprefclk_wdivider; -int dp_ref_clk_khz; -int target_div; +struct dc_context *ctx = clk_mgr_base->ctx; +int dp_ref_clk_khz =0 ; -/* DCE6 has no DPREFCLK_CNTL to read DP Reference Clock source */ - -/* Read the mmDENTIST_DISPCLK_CNTL to get the currently -* programmed DID DENTIST_DPREFCLK_WDIVIDER*/ -REG_GET (DENTIST_DISPCLK_CNTL ,DENTIST_DPREFCLK_WDIVIDER , &dprefclk_wdivider); - -/* Convert DENTIST_DPREFCLK_WDIVIDERto actual divider*/ - target_div =dentist_get_divider_from_did (dprefclk_wdivider); - -/* Calculate the current DFS clock, in kHz.*/ - dp_ref_clk_khz = (DENTIST_DIVIDER_RANGE_SCALE_FACTOR - * clk_mgr->base.dentist_vco_freq_khz) / target_div; +if (ASIC_REV_IS_TAHITI_P (ctx->asic_id.hw_internal_rev)) + dp_ref_clk_khz = ctx->dc_bios->fw_info.default_display_engine_pll_frequency; +else + dp_ref_clk_khz = clk_mgr_base->clks.dispclk_khz;return dce_adjust_dp_ref_freq_for_ss (clk_mgr, dp_ref_clk_khz); }
@@ -109,8 +100,6 @@ static void dce60_pplib_apply_display_requirements( {struct dm_pp_display_configuration *pp_display_cfg = &context->pp_display_cfg; - pp_display_cfg->avail_mclk_switch_time_us =dce110_get_min_vblank_time_us (context); -dce110_fill_display_configs (context, pp_display_cfg);if (memcmp (&dc->current_state->pp_display_cfg, pp_display_cfg,sizeof (*pp_display_cfg)) !=0 )
@@ -123,11 +112,9 @@ static void dce60_update_clocks(struct clk_mgr *clk_mgr_base, {struct clk_mgr_internal *clk_mgr_dce =TO_CLK_MGR_INTERNAL (clk_mgr_base);struct dm_pp_power_level_change_request level_change_req; -int patched_disp_clk = context->bw_ctx.bw.dce.dispclk_khz; - -/*TODO: W/A for dal3 linux, investigate why this works */ -if (!clk_mgr_dce->dfs_bypass_active) - patched_disp_clk = patched_disp_clk *115 /100 ; +const int max_disp_clk = + clk_mgr_dce->max_clks_by_state[DM_PP_CLOCKS_STATE_PERFORMANCE ].display_clk_khz; +int patched_disp_clk =MIN (max_disp_clk, context->bw_ctx.bw.dce.dispclk_khz); level_change_req.power_level =dce_get_required_clocks_state (clk_mgr_base, context);/* get max clock state from PPLIB */
drivers/gpu/drm/amd/display/dc/core/dc.c +24 -10
@@ -215,11 +215,24 @@ static bool create_links( connectors_num, num_virtual_links); -// condition loop on link_count to allow skipping invalid indices +/* When getting the number of connectors, the VBIOS reports the number of valid indices, +* but it doesn't say which indices are valid, and not every index has an actual connector. +* So, if we don't find a connector on an index, that is not an error. +* +* - There is no guarantee that the first N indices will be valid +* - VBIOS may report a higher amount of valid indices than there are actual connectors +* - Some VBIOS have valid configurations for more connectors than there actually are +* on the card. This may be because the manufacturer used the same VBIOS for different +* variants of the same card. +*/ for (i =0 ; dc->link_count < connectors_num && i <MAX_LINKS ; i++) { +struct graphics_object_id connector_id = bios->funcs->get_connector_id (bios, i);struct link_init_data link_init_params = {0 };struct dc_link *link; +if (connector_id.id ==CONNECTOR_ID_UNKNOWN ) +continue ; +DC_LOG_DC ("BIOS object table - printing link object info for connector number: %d, link_index: %d" , i, dc->link_count); link_init_params.ctx = dc->ctx;
@@ -890,17 +903,18 @@ static void dc_destruct(struct dc *dc)if (dc->link_srv)link_destroy_link_service (&dc->link_srv); -if (dc->ctx->gpio_service) -dal_gpio_service_destroy (&dc->ctx->gpio_service); - -if (dc->ctx->created_bios) -dal_bios_parser_destroy (&dc->ctx->dc_bios); +if (dc->ctx) { +if (dc->ctx->gpio_service) +dal_gpio_service_destroy (&dc->ctx->gpio_service); -kfree (dc->ctx->logger); -dc_perf_trace_destroy (&dc->ctx->perf_trace); +if (dc->ctx->created_bios) +dal_bios_parser_destroy (&dc->ctx->dc_bios); +kfree (dc->ctx->logger); +dc_perf_trace_destroy (&dc->ctx->perf_trace); -kfree (dc->ctx); - dc->ctx =NULL ; +kfree (dc->ctx); + dc->ctx =NULL ; + }kfree (dc->bw_vbios); dc->bw_vbios =NULL ;
drivers/gpu/drm/amd/display/modules/hdcp/hdcp_psp.c +3 -0
@@ -260,6 +260,9 @@ enum mod_hdcp_status mod_hdcp_hdcp1_create_session(struct mod_hdcp *hdcp)return MOD_HDCP_STATUS_FAILURE ; } +if (!display) +return MOD_HDCP_STATUS_DISPLAY_NOT_FOUND ; + hdcp_cmd = (struct ta_hdcp_shared_memory *)psp->hdcp_context.context.mem_context.shared_buf;mutex_lock (&psp->hdcp_context.mutex);
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c +6 -0
@@ -2153,6 +2153,12 @@ static int smu_resume(void *handle) adev->pm.dpm_enabled = true; +if (smu->current_power_limit) { + ret =smu_set_power_limit (smu, smu->current_power_limit); +if (ret && ret != -EOPNOTSUPP ) +return ret; + } +dev_info (adev->dev,"SMU is resumed successfully!\n" );return 0 ;
drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c +25 -5
@@ -1668,9 +1668,11 @@ static int smu_v14_0_2_get_power_limit(struct smu_context *smu, uint32_t *min_power_limit) {struct smu_table_context *table_context = &smu->smu_table; +struct smu_14_0_2_powerplay_table *powerplay_table = + table_context->power_play_table;PPTable_t *pptable = table_context->driver_pptable;CustomSkuTable_t *skutable = &pptable->CustomSkuTable; -uint32_t power_limit; +uint32_t power_limit, od_percent_upper =0 , od_percent_lower =0 ;uint32_t msg_limit = pptable->SkuTable.MsgLimits.Power[PPT_THROTTLER_PPT0 ][POWER_SOURCE_AC ];if (smu_v14_0_get_current_power_limit (smu, &power_limit))
@@ -1683,11 +1685,29 @@ static int smu_v14_0_2_get_power_limit(struct smu_context *smu,if (default_power_limit) *default_power_limit = power_limit; -if (max_power_limit) - *max_power_limit = msg_limit; +if (powerplay_table) { +if (smu->od_enabled && +smu_v14_0_2_is_od_feature_supported (smu,PP_OD_FEATURE_PPT_BIT )) { + od_percent_upper = pptable->SkuTable.OverDriveLimitsBasicMax.Ppt; + od_percent_lower = pptable->SkuTable.OverDriveLimitsBasicMin.Ppt; + }else if (smu_v14_0_2_is_od_feature_supported (smu,PP_OD_FEATURE_PPT_BIT )) { + od_percent_upper =0 ; + od_percent_lower = pptable->SkuTable.OverDriveLimitsBasicMin.Ppt; + } + } + +dev_dbg (smu->adev->dev,"od percent upper:%d, od percent lower:%d (default power: %d)\n" , + od_percent_upper, od_percent_lower, power_limit); + +if (max_power_limit) { + *max_power_limit = msg_limit * (100 + od_percent_upper); + *max_power_limit /=100 ; + } -if (min_power_limit) - *min_power_limit =0 ; +if (min_power_limit) { + *min_power_limit = power_limit * (100 + od_percent_lower); + *min_power_limit /=100 ; + }return 0 ; }
drivers/gpu/drm/display/drm_dp_helper.c +1 -1
@@ -664,7 +664,7 @@ ssize_t drm_dp_dpcd_read(struct drm_dp_aux *aux, unsigned int offset,* monitor doesn't power down exactly after the throw away read. */ if (!aux->is_remote) { - ret =drm_dp_dpcd_probe (aux,DP_DPCD_REV ); + ret =drm_dp_dpcd_probe (aux,DP_LANE0_1_STATUS );if (ret <0 )return ret; }
drivers/gpu/drm/drm_draw.c new file +155 -0
155 lines not on this page · raw message
drivers/gpu/drm/drm_draw_internal.h new file +56 -0
56 lines not on this page · raw message
drivers/gpu/drm/drm_format_helper.c +165 -69
221 lines not on this page · raw message
drivers/gpu/drm/drm_format_internal.h new file +127 -0
127 lines not on this page · raw message
drivers/gpu/drm/drm_panic.c +29 -240
269 lines not on this page · raw message
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_drv.h +9 -8
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_i2c.c +25 -21
46 lines not on this page · raw message
drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_vdac.c +17 -12
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/i915/display/intel_tc.c +49 -9
58 lines not on this page · raw message
drivers/gpu/drm/tests/drm_format_helper_test.c +91 -85
176 lines not on this page · raw message
drivers/iio/imu/inv_icm42600/inv_icm42600.h +4 -4
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +16 -17
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c +11 -11
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.h +5 -5
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_core.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +21 -22
43 lines not on this page · raw message
drivers/iio/imu/inv_icm42600/inv_icm42600_temp.c +8 -4
Lines of this file are not shown. View the raw message.
drivers/iio/temperature/maxim_thermocouple.c +16 -10
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/ib_verbs.c +2 -6
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.c +1 -29
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_fp.h +0 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/bnxt_re/qplib_res.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/erdma/erdma_verbs.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_hw_v2.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_restrack.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/md/dm-crypt.c +39 -10
49 lines not on this page · raw message
drivers/media/cec/usb/rainshadow/rainshadow-cec.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c +6 -6
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/core.c +9 -9
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/core.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/hfi_venus.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/vdec.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/venus/venc.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/raspberrypi/pisp_be/Kconfig +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/raspberrypi/pisp_be/pisp_be.c +2 -3
Lines of this file are not shown. View the raw message.
drivers/media/platform/verisilicon/rockchip_vpu_hw.c +0 -9
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-ctrls.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/media/test-drivers/vivid/vivid-vid-cap.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/media/v4l2-core/v4l2-ctrls-core.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/renesas-nand-controller.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/net/bonding/bond_3ad.c +49 -18
67 lines not on this page · raw message
drivers/net/ethernet/google/gve/gve_main.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_npc_fs.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mediatek/mtk_ppe_offload.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/dcbnl.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/port_buffer.c +8 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en_dcbnl.c +9 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/esw/devlink_port.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h +87 -0
87 lines not on this page · raw message
drivers/net/ethernet/mellanox/mlx5/core/port.c +20 -20
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/spectrum.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlxsw/trap.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microchip/lan865x/lan865x.c +21 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/realtek/rtase/rtase.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/icssg/icssg_prueth.c +41 -31
72 lines not on this page · raw message
drivers/net/ethernet/xilinx/xilinx_axienet_main.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/phy/mscc/mscc_ptp.c +37 -12
49 lines not on this page · raw message
drivers/net/wireless/ath/ath11k/dp_rx.c +0 -3
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_lcn.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/pci/controller/pcie-rockchip-host.c +27 -22
49 lines not on this page · raw message
drivers/pci/controller/pcie-rockchip.h +1 -10
Lines of this file are not shown. View the raw message.
drivers/platform/x86/intel/uncore-frequency/uncore-frequency-tpmi.c +5 -0
Lines of this file are not shown. View the raw message.
drivers/pwm/pwm-mediatek.c +37 -34
71 lines not on this page · raw message
drivers/soc/qcom/mdt_loader.c +43 -0
43 lines not on this page · raw message
drivers/soc/tegra/pmc.c +29 -22
51 lines not on this page · raw message
drivers/staging/media/imx/imx-media-csc-scaler.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/tty/vt/defkeymap.c_shipped +112 -0
112 lines not on this page · raw message
drivers/ufs/host/ufshcd-pci.c +41 -1
42 lines not on this page · raw message
drivers/usb/atm/cxacru.c +49 -57
106 lines not on this page · raw message
drivers/usb/typec/tcpm/maxim_contaminant.c +58 -0
58 lines not on this page · raw message
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_pdphy_stub.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c +3 -1
Lines of this file are not shown. View the raw message.
fs/btrfs/block-group.c +35 -24
59 lines not on this page · raw message
fs/btrfs/send.c +205 -154
359 lines not on this page · raw message
fs/file.c +29 -46
75 lines not on this page · raw message
include/linux/call_once.h +34 -13
47 lines not on this page · raw message
include/linux/kcov.h +9 -38
47 lines not on this page · raw message
include/linux/mlx5/port.h +1 -84
85 lines not on this page · raw message
tools/testing/selftests/net/mptcp/pm_netlink.sh +1 -0
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.