Linux 6.1.167
Greg Kroah-Hartman
maintainerI'm announcing the release of the 6.1.167 kernel.
All users of the 6.1 kernel series must upgrade.
The updated 6.1.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-6.1.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
------------
.clang-format | 1 Documentation/networking/device_drivers/ethernet/freescale/dpaa2/mac-phy-support.rst | 9 Makefile | 2 arch/alpha/kernel/pci.c | 5 arch/arm/include/asm/string.h | 14 arch/arm/kernel/bios32.c | 16 arch/arm/mach-dove/pcie.c | 10 arch/arm/mach-mv78xx0/pcie.c | 10 arch/arm/mach-orion5x/pci.c | 10 arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi | 1 arch/arm64/boot/dts/rockchip/rk3568.dtsi | 4 arch/arm64/boot/dts/rockchip/rk356x.dtsi | 2 arch/arm64/include/asm/pgtable-prot.h | 72 - arch/loongarch/include/asm/uaccess.h | 14 arch/mips/pci/ops-bcm63xx.c | 8 arch/mips/pci/pci-legacy.c | 3 arch/parisc/include/asm/pgtable.h | 2 arch/parisc/kernel/head.S | 7 arch/parisc/kernel/setup.c | 20 arch/powerpc/include/asm/uaccess.h | 2 arch/powerpc/kernel/pci-common.c | 21 arch/powerpc/platforms/4xx/pci.c | 8 arch/powerpc/platforms/52xx/mpc52xx_pci.c | 5 arch/powerpc/platforms/83xx/km83xx.c | 4 arch/powerpc/platforms/pseries/pci.c | 16 arch/riscv/kernel/stacktrace.c | 21 arch/s390/lib/xor.c | 4 arch/sh/drivers/pci/pcie-sh7786.c | 10 arch/sparc/kernel/leon_pci.c | 5 arch/sparc/kernel/pci.c | 10 arch/sparc/kernel/pcic.c | 5 arch/x86/boot/compressed/sev.c | 1 arch/x86/include/asm/efi.h | 2 arch/x86/include/asm/msr-index.h | 5 arch/x86/kernel/apic/apic.c | 6 arch/x86/kernel/uprobes.c | 24 arch/x86/kvm/svm/avic.c | 8 arch/x86/kvm/svm/svm.c | 11 arch/x86/kvm/vmx/vmx.c | 2 arch/x86/kvm/x86.c | 120 +- arch/x86/kvm/x86.h | 15 arch/x86/platform/efi/efi.c | 2 arch/x86/platform/efi/quirks.c | 55 + drivers/acpi/acpi_processor.c | 15 drivers/acpi/osi.c | 13 drivers/acpi/osl.c | 2 drivers/acpi/sleep.c | 8 drivers/base/power/runtime.c | 1 drivers/base/property.c | 27 drivers/block/drbd/drbd_actlog.c | 53 - drivers/block/drbd/drbd_interval.h | 5 drivers/bluetooth/btqca.c | 2 drivers/bus/omap-ocp2scp.c | 19 drivers/clk/tegra/clk-tegra124-emc.c | 2 drivers/cpuidle/cpuidle.c | 10 drivers/crypto/atmel-sha204a.c | 5 drivers/dma/mmp_pdma.c | 6 drivers/firmware/arm_scpi.c | 5 drivers/firmware/efi/mokvar-table.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 1 drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c | 6 drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c | 38 drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h | 3 drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 36 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c | 4 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 14 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 12 drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c | 9 drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c | 3 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c | 3 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c | 3 drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c | 3 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c | 1 drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c | 2 drivers/gpu/drm/amd/display/dc/core/dc_stream.c | 2 drivers/gpu/drm/amd/display/dc/dm_services_types.h | 2 drivers/gpu/drm/amd/include/dm_pp_interface.h | 1 drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c | 67 + drivers/gpu/drm/amd/pm/inc/amdgpu_dpm_internal.h | 2 drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c | 4 drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c | 6 drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c | 69 - drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c | 13 drivers/gpu/drm/bridge/ti-sn65dsi83.c | 13 drivers/gpu/drm/bridge/ti-sn65dsi86.c | 118 ++ drivers/gpu/drm/drm_file.c | 5 drivers/gpu/drm/drm_mode_config.c | 9 drivers/gpu/drm/exynos/exynos_drm_drv.h | 1 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 72 + drivers/gpu/drm/i915/gt/intel_engine_cs.c | 3 drivers/gpu/drm/logicvc/logicvc_drm.c | 4 drivers/gpu/drm/msm/msm_gpummu.c | 2 drivers/gpu/drm/nouveau/nouveau_connector.c | 3 drivers/gpu/drm/radeon/si_dpm.c | 4 drivers/gpu/drm/tegra/dsi.c | 6 drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c | 9 drivers/hid/hid-cmedia.c | 2 drivers/hid/hid-creative-sb0540.c | 2 drivers/hid/hid-zydacron.c | 2 drivers/hwmon/max16065.c | 26 drivers/hwmon/pmbus/isl68137.c | 7 drivers/hwmon/pmbus/q54sj108a2.c | 19 drivers/i2c/busses/i2c-cp2615.c | 5 drivers/i2c/busses/i2c-fsi.c | 1 drivers/i3c/master/mipi-i3c-hci/cmd.h | 1 drivers/i3c/master/mipi-i3c-hci/cmd_v1.c | 2 drivers/i3c/master/mipi-i3c-hci/cmd_v2.c | 2 drivers/i3c/master/mipi-i3c-hci/core.c | 6 drivers/i3c/master/mipi-i3c-hci/dma.c | 4 drivers/iio/chemical/bme680_core.c | 2 drivers/iio/chemical/sps30_i2c.c | 2 drivers/iio/chemical/sps30_serial.c | 2 drivers/iio/dac/ds4424.c | 2 drivers/iio/gyro/mpu3050-core.c | 18 drivers/iio/gyro/mpu3050-i2c.c | 3 drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c | 2 drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c | 3 drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c | 2 drivers/iio/industrialio-buffer.c | 102 +- drivers/iio/light/bh1780.c | 4 drivers/iio/potentiometer/mcp4131.c | 2 drivers/infiniband/hw/irdma/verbs.c | 2 drivers/infiniband/hw/mthca/mthca_provider.c | 5 drivers/iommu/intel/dmar.c | 3 drivers/irqchip/irq-gic-v3-its.c | 4 drivers/irqchip/irq-sifive-plic.c | 7 drivers/mailbox/mailbox.c | 6 drivers/md/dm-verity-fec.c | 4 drivers/md/dm-verity-fec.h | 3 drivers/media/dvb-core/dmxdev.c | 4 drivers/media/dvb-core/dvb_net.c | 3 drivers/media/platform/qcom/camss/camss-vfe-480.c | 59 - drivers/memory/mtk-smi.c | 13 drivers/mfd/omap-usb-host.c | 11 drivers/mfd/qcom-pm8xxx.c | 14 drivers/mmc/host/mmci_qcom_dml.c | 1 drivers/mmc/host/sdhci-pci-gli.c | 9 drivers/mmc/host/sdhci.c | 9 drivers/mtd/nand/raw/brcmnand/brcmnand.c | 6 drivers/mtd/nand/raw/cadence-nand-controller.c | 2 drivers/mtd/nand/raw/nand_base.c | 14 drivers/mtd/nand/raw/pl35x-nand-controller.c | 3 drivers/mtd/nand/spi/macronix.c | 3 drivers/mtd/parsers/redboot.c | 6 drivers/net/arcnet/com20020-pci.c | 16 drivers/net/bonding/bond_debugfs.c | 16 drivers/net/bonding/bond_main.c | 10 drivers/net/caif/caif_serial.c | 3 drivers/net/can/spi/hi311x.c | 5 drivers/net/can/spi/mcp251x.c | 15 drivers/net/can/usb/ems_usb.c | 7 drivers/net/can/usb/etas_es58x/es58x_core.c | 8 drivers/net/can/usb/gs_usb.c | 22 drivers/net/can/usb/ucan.c | 2 drivers/net/dsa/bcm_sf2.c | 8 drivers/net/dsa/realtek/rtl8365mb.c | 5 drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 10 drivers/net/ethernet/amd/xgbe/xgbe-main.c | 1 drivers/net/ethernet/amd/xgbe/xgbe.h | 3 drivers/net/ethernet/arc/emac_main.c | 11 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 25 drivers/net/ethernet/broadcom/bnxt/bnxt.h | 2 drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c | 7 drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c | 2 drivers/net/ethernet/cadence/macb.h | 7 drivers/net/ethernet/cadence/macb_main.c | 184 +++ drivers/net/ethernet/cadence/macb_ptp.c | 4 drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h | 7 drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h | 10 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-ethtool.c | 34 drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c | 57 - drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.h | 9 drivers/net/ethernet/freescale/enetc/enetc_pf.c | 121 +- drivers/net/ethernet/freescale/fec_main.c | 19 drivers/net/ethernet/google/gve/gve.h | 1 drivers/net/ethernet/google/gve/gve_main.c | 5 drivers/net/ethernet/intel/e1000/e1000_main.c | 2 drivers/net/ethernet/intel/e1000e/netdev.c | 2 drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 14 drivers/net/ethernet/intel/iavf/iavf_main.c | 9 drivers/net/ethernet/intel/ice/ice_common.c | 8 drivers/net/ethernet/intel/ice/ice_ethtool.c | 35 drivers/net/ethernet/intel/igc/igc_main.c | 7 drivers/net/ethernet/intel/ixgbevf/vf.c | 3 drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 4 drivers/net/ethernet/marvell/octeon_ep/octep_main.c | 40 drivers/net/ethernet/marvell/octeon_ep/octep_rx.c | 27 drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c | 468 ++-------- drivers/net/ethernet/mediatek/mtk_eth_soc.c | 15 drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c | 1 drivers/net/ethernet/mellanox/mlx5/core/eswitch.c | 30 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h | 3 drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c | 18 drivers/net/ethernet/microsoft/mana/hw_channel.c | 6 drivers/net/ethernet/microsoft/mana/mana_en.c | 23 drivers/net/ethernet/stmicro/stmmac/common.h | 1 drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 4 drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c | 9 drivers/net/ethernet/stmicro/stmmac/stmmac.h | 2 drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 61 - drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 8 drivers/net/ethernet/ti/am65-cpsw-nuss.c | 2 drivers/net/ethernet/ti/cpsw_ale.c | 9 drivers/net/mctp/mctp-i2c.c | 1 drivers/net/phy/phy_device.c | 13 drivers/net/usb/aqc111.c | 12 drivers/net/usb/kalmia.c | 7 drivers/net/usb/kaweth.c | 13 drivers/net/usb/lan78xx.c | 10 drivers/net/usb/lan78xx.h | 3 drivers/net/usb/pegasus.c | 13 drivers/net/vxlan/vxlan_core.c | 5 drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c | 6 drivers/net/wireless/marvell/libertas/main.c | 4 drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c | 1 drivers/net/wireless/st/cw1200/pm.c | 2 drivers/net/wireless/ti/wlcore/main.c | 4 drivers/net/wireless/ti/wlcore/tx.c | 2 drivers/nfc/nxp-nci/i2c.c | 4 drivers/nfc/pn533/usb.c | 1 drivers/nvdimm/bus.c | 5 drivers/nvme/host/core.c | 2 drivers/nvme/host/fc.c | 2 drivers/nvme/host/pci.c | 8 drivers/pci/iov.c | 7 drivers/pci/pci-acpi.c | 59 - drivers/pci/pci.c | 85 + drivers/pci/pci.h | 5 drivers/pci/pcie/aer.c | 3 drivers/pci/probe.c | 32 drivers/pci/quirks.c | 15 drivers/pci/remove.c | 5 drivers/pci/setup-bus.c | 57 - drivers/pci/setup-res.c | 74 - drivers/pci/vgaarb.c | 17 drivers/pci/xen-pcifront.c | 4 drivers/platform/x86/dell/dell-wmi-base.c | 6 drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c | 1 drivers/platform/x86/thinkpad_acpi.c | 6 drivers/pnp/quirks.c | 29 drivers/regulator/pca9450-regulator.c | 41 drivers/remoteproc/mtk_scp.c | 39 drivers/remoteproc/qcom_sysmon.c | 2 drivers/s390/block/dasd_eckd.c | 16 drivers/s390/crypto/zcrypt_ccamisc.c | 12 drivers/s390/crypto/zcrypt_cex4.c | 3 drivers/scsi/lpfc/lpfc_init.c | 2 drivers/scsi/lpfc/lpfc_sli.c | 36 drivers/scsi/lpfc/lpfc_sli4.h | 3 drivers/scsi/mpi3mr/mpi3mr_fw.c | 34 drivers/scsi/pm8001/pm8001_sas.c | 5 drivers/scsi/scsi_scan.c | 7 drivers/scsi/ses.c | 5 drivers/scsi/storvsc_drv.c | 5 drivers/soc/bcm/bcm2835-power.c | 18 drivers/soc/fsl/qbman/qman.c | 24 drivers/spi/spi-cadence-quadspi.c | 34 drivers/spi/spi.c | 25 drivers/staging/media/tegra-video/vi.c | 27 drivers/staging/rtl8723bs/core/rtw_ieee80211.c | 15 drivers/staging/rtl8723bs/core/rtw_mlme.c | 5 drivers/target/target_core_configfs.c | 15 drivers/tty/serial/8250/8250_dma.c | 15 drivers/tty/serial/8250/8250_pci.c | 17 drivers/tty/serial/8250/8250_port.c | 6 drivers/tty/serial/uartlite.c | 1 drivers/ufs/core/ufshcd.c | 35 drivers/usb/cdns3/core.c | 11 drivers/usb/class/cdc-acm.c | 5 drivers/usb/class/cdc-acm.h | 1 drivers/usb/class/cdc-wdm.c | 4 drivers/usb/class/usbtmc.c | 6 drivers/usb/core/message.c | 100 +- drivers/usb/core/phy.c | 8 drivers/usb/core/quirks.c | 16 drivers/usb/gadget/function/f_mass_storage.c | 12 drivers/usb/gadget/function/f_tcm.c | 14 drivers/usb/host/xhci.c | 4 drivers/usb/image/mdc800.c | 6 drivers/usb/misc/uss720.c | 2 drivers/usb/misc/yurex.c | 2 drivers/usb/renesas_usbhs/common.c | 9 drivers/usb/roles/class.c | 7 drivers/usb/serial/f81232.c | 77 + drivers/xen/privcmd.c | 73 + drivers/xen/xen-acpi-processor.c | 7 fs/binfmt_misc.c | 4 fs/btrfs/ctree.h | 7 fs/btrfs/disk-io.c | 28 fs/btrfs/extent_io.c | 3 fs/btrfs/extent_io.h | 3 fs/btrfs/free-space-cache.c | 5 fs/btrfs/inode.c | 19 fs/btrfs/ioctl.c | 24 fs/btrfs/send.c | 4 fs/btrfs/transaction.c | 16 fs/btrfs/tree-checker.c | 4 fs/btrfs/uuid-tree.c | 46 fs/ceph/dir.c | 15 fs/dlm/lock.c | 10 fs/eventpoll.c | 5 fs/ext4/ext4.h | 9 fs/ext4/extents.c | 312 +++--- fs/ext4/extents_status.c | 12 fs/ext4/extents_status.h | 4 fs/ext4/fast_commit.c | 8 fs/ext4/inline.c | 12 fs/ext4/inode.c | 8 fs/ext4/mballoc.c | 41 fs/ext4/migrate.c | 5 fs/ext4/move_extent.c | 7 fs/f2fs/data.c | 5 fs/gfs2/util.c | 31 fs/iomap/buffered-io.c | 7 fs/nfsd/nfs4xdr.c | 9 fs/nfsd/nfsctl.c | 31 fs/nfsd/state.h | 17 fs/ntfs3/super.c | 5 fs/smb/client/cifsencrypt.c | 3 fs/smb/client/cifsfs.c | 9 fs/smb/client/cifsglob.h | 11 fs/smb/client/cifsproto.h | 1 fs/smb/client/connect.c | 5 fs/smb/client/dir.c | 1 fs/smb/client/file.c | 29 fs/smb/client/misc.c | 41 fs/smb/client/smb2ops.c | 14 fs/smb/client/smb2pdu.c | 22 fs/smb/client/smb2transport.c | 4 fs/smb/server/auth.c | 26 fs/smb/server/smb2pdu.c | 17 fs/squashfs/cache.c | 3 fs/xfs/xfs_bmap_item.c | 3 fs/xfs/xfs_dquot.c | 8 fs/xfs/xfs_log.c | 2 include/asm-generic/tlb.h | 77 + include/linux/bpf.h | 6 include/linux/hugetlb.h | 17 include/linux/indirect_call_wrapper.h | 18 include/linux/ioport.h | 32 include/linux/irqchip/arm-gic-v3.h | 1 include/linux/mlx5/mlx5_ifc.h | 4 include/linux/mm_types.h | 1 include/linux/mmc/host.h | 9 include/linux/pci.h | 14 include/linux/security.h | 1 include/linux/skbuff.h | 12 include/linux/stmmac.h | 1 include/linux/uprobes.h | 1 include/linux/usb.h | 8 include/net/act_api.h | 1 include/net/bluetooth/hci_core.h | 3 include/net/netfilter/nf_tables.h | 7 include/net/sch_generic.h | 38 include/net/tc_act/tc_gate.h | 33 include/net/tc_act/tc_ife.h | 4 include/net/udp_tunnel.h | 2 include/sound/soc.h | 2 include/trace/events/kmem.h | 8 io_uring/io-wq.c | 2 io_uring/kbuf.c | 8 kernel/bpf/devmap.c | 22 kernel/bpf/syscall.c | 3 kernel/bpf/trampoline.c | 4 kernel/bpf/verifier.c | 4 kernel/cgroup/cgroup.c | 1 kernel/events/core.c | 42 kernel/events/uprobes.c | 10 kernel/fork.c | 2 kernel/kprobes.c | 47 - kernel/rcu/tree_nocb.h | 5 kernel/sched/fair.c | 6 kernel/sched/idle.c | 45 kernel/time/time.c | 171 +++ kernel/trace/trace.c | 6 kernel/trace/trace_events.c | 51 - kernel/trace/trace_events_trigger.c | 3 lib/bootconfig.c | 9 mm/hugetlb.c | 143 +-- mm/kfence/core.c | 22 mm/mmu_gather.c | 33 mm/rmap.c | 25 net/atm/lec.c | 26 net/batman-adv/bat_iv_ogm.c | 3 net/batman-adv/bat_v_elp.c | 10 net/batman-adv/hard-interface.c | 8 net/batman-adv/hard-interface.h | 1 net/bluetooth/hci_core.c | 34 net/bluetooth/hci_sync.c | 2 net/bluetooth/hidp/core.c | 16 net/bluetooth/l2cap_core.c | 31 net/bluetooth/smp.c | 2 net/bridge/br_device.c | 2 net/bridge/br_input.c | 2 net/can/bcm.c | 1 net/ceph/auth.c | 6 net/ceph/messenger_v2.c | 31 net/ceph/mon_client.c | 6 net/core/dev.c | 2 net/core/filter.c | 23 net/dsa/dsa2.c | 7 net/ipv4/icmp.c | 4 net/ipv4/tcp.c | 3 net/ipv4/tcp_input.c | 18 net/ipv4/tcp_ipv4.c | 3 net/ipv4/tcp_offload.c | 74 + net/ipv4/udp_offload.c | 3 net/ipv6/ip6_output.c | 35 net/ipv6/route.c | 11 net/ipv6/tcp_ipv6.c | 3 net/ipv6/tcpv6_offload.c | 65 + net/l2tp/l2tp_ppp.c | 25 net/mac80211/debugfs.c | 14 net/mac80211/link.c | 2 net/mac80211/mesh.c | 6 net/mctp/route.c | 11 net/mptcp/pm.c | 2 net/mptcp/pm_netlink.c | 72 + net/mptcp/protocol.h | 2 net/ncsi/ncsi-aen.c | 3 net/ncsi/ncsi-rsp.c | 16 net/netfilter/nf_conntrack_h323_asn1.c | 4 net/netfilter/nf_conntrack_netlink.c | 67 - net/netfilter/nf_conntrack_sip.c | 6 net/netfilter/nf_tables_api.c | 8 net/netfilter/nfnetlink_cthelper.c | 8 net/netfilter/nfnetlink_osf.c | 13 net/netfilter/nfnetlink_queue.c | 4 net/netfilter/nft_compat.c | 6 net/netfilter/nft_ct.c | 9 net/netfilter/nft_log.c | 2 net/netfilter/nft_meta.c | 2 net/netfilter/nft_numgen.c | 2 net/netfilter/nft_set_pipapo.c | 123 ++ net/netfilter/nft_set_pipapo.h | 2 net/netfilter/nft_tunnel.c | 5 net/netfilter/xt_CT.c | 4 net/netfilter/xt_IDLETIMER.c | 6 net/netfilter/xt_dccp.c | 4 net/netfilter/xt_tcpudp.c | 6 net/netfilter/xt_time.c | 4 net/nfc/nci/core.c | 21 net/nfc/nci/data.c | 12 net/nfc/rawsock.c | 11 net/rose/af_rose.c | 5 net/sched/act_ct.c | 6 net/sched/act_gate.c | 262 +++-- net/sched/act_ife.c | 93 - net/sched/cls_api.c | 7 net/sched/cls_u32.c | 13 net/sched/sch_ets.c | 12 net/sched/sch_generic.c | 27 net/sched/sch_teql.c | 8 net/smc/af_smc.c | 23 net/smc/smc.h | 5 net/smc/smc_close.c | 2 net/sunrpc/cache.c | 26 net/sunrpc/xprtrdma/verbs.c | 7 net/tipc/socket.c | 2 net/wireless/core.c | 4 net/wireless/core.h | 4 net/wireless/pmsr.c | 1 net/wireless/radiotap.c | 4 net/wireless/scan.c | 14 security/security.c | 1 sound/core/pcm_lib.c | 11 sound/core/pcm_native.c | 25 sound/pci/hda/patch_conexant.c | 11 sound/soc/amd/acp3x-rt5682-max9836.c | 9 sound/soc/amd/yc/acp6x-mach.c | 14 sound/soc/qcom/qdsp6/q6apm-dai.c | 1 sound/soc/qcom/qdsp6/q6apm-lpass-dais.c | 1 sound/soc/qcom/qdsp6/q6apm.c | 1 sound/soc/soc-core.c | 35 sound/usb/endpoint.c | 10 sound/usb/midi.c | 3 sound/usb/mixer_scarlett2.c | 2 sound/usb/quirks.c | 4 sound/usb/validate.c | 2 tools/bootconfig/main.c | 7 tools/testing/kunit/kunit.py | 281 +++--- tools/testing/kunit/kunit_config.py | 4 tools/testing/kunit/kunit_kernel.py | 42 tools/testing/kunit/kunit_parser.py | 171 ++- tools/testing/kunit/kunit_tool_test.py | 120 ++ tools/testing/kunit/run_checks.py | 4 tools/testing/kunit/test_data/test_parse_ktap_output.log | 8 tools/testing/kunit/test_data/test_parse_subtest_header.log | 7 tools/testing/selftests/net/amt.sh | 7 tools/testing/selftests/net/mptcp/mptcp_join.sh | 36 tools/testing/selftests/net/mptcp/simult_flows.sh | 11 497 files changed, 5764 insertions(+), 2901 deletions(-)
A1RM4X (1):
USB: add QUIRK_NO_BOS for video capture several devices
Adrian Hunter (3):
i3c: mipi-i3c-hci: Use ETIMEDOUT instead of ETIME for timeout errors
i3c: mipi-i3c-hci: Restart DMA ring correctly after dequeue abort
i3c: mipi-i3c-hci: Add missing TID field to no-op command descriptor
Al Viro (1):
unshare: fix unshare_fs() handling
Alan Stern (3):
USB: usbcore: Introduce usb_bulk_msg_killable()
USB: usbtmc: Use usb_bulk_msg_killable() with user-specified timeouts
USB: core: Limit the length of unkillable synchronous timeouts
Alban Bedel (1):
can: mcp251x: fix deadlock in error path of mcp251x_open
Alex Deucher (10):
drm/amdgpu: keep vga memory on MacBooks with switchable graphics drm/amdgpu/mmhub2.0: add bounds checking for cid drm/amdgpu/mmhub2.3: add bounds checking for cid drm/amdgpu/mmhub3.0.1: add bounds checking for cid drm/amdgpu/mmhub3.0.2: add bounds checking for cid drm/amdgpu/mmhub3.0: add bounds checking for cid drm/radeon: apply state adjust rules to some additional HAINAN vairants drm/amdgpu: apply state adjust rules to some additional HAINAN vairants drm/amdgpu: use proper DC check in amdgpu_display_supported_domains() drm/amdgpu: clarify DC checks
Alexander Aring (1):
dlm: fix possible lkb_resource null dereference
Alexander Pantyukhin (1):
kunit: kunit.py extract handlers
Alexander Potapenko (2):
mm/kfence: fix KASAN hardware tag faults during late enablement mm/kfence: disable KFENCE upon KASAN HW tags enablement
Alok Tiwari (3):
i40e: fix src IP mask checks and memcpy argument names in cloud filter
octeontx2-af: devlink: fix NIX RAS reporter recovery condition
octeontx2-af: devlink: fix NIX RAS reporter to use RAS interrupt status
Alper Ak (1):
media: qcom: camss: vfe: Fix out-of-bounds access in vfe_isr_reg_update()
Alysa Liu (1):
drm/amdgpu: Fix use-after-free race in VM acquire
Amadeusz Sławiński (1):
ASoC: core: Do not call link_exit() on uninitialized rtd objects
Anas Iqbal (1):
net: dsa: bcm_sf2: fix missing clk_disable_unprepare() in error paths
Andreas Gruenbacher (1):
gfs2: No more self recovery
Andrew Lunn (1):
net: phy: register phy led_triggers during probe to avoid AB-BA deadlock
Andrii Melnychenko (1):
netfilter: nft_ct: add seqadj extension for natted connections
Andy Shevchenko (1):
device property: Allow secondary lookup in fwnode_get_next_child_node()
Ankit Garg (1):
gve: defer interrupt enabling until NAPI registration
Antoniu Miclaus (5):
iio: chemical: sps30_serial: fix buffer size in sps30_serial_read_meas()
iio: chemical: sps30_i2c: fix buffer size in sps30_i2c_read_meas()
iio: gyro: mpu3050-core: fix pm_runtime error handling
iio: gyro: mpu3050-i2c: fix pm_runtime error handling
iio: light: bh1780: fix PM runtime leak on error path
Ariel Silver (1):
media: dvb-net: fix OOB access in ULE extension header tables
Azamat Almazbek uulu (1):
ASoC: amd: yc: Add ASUS EXPERTBOOK BM1503CDA to quirk table
Baokun Li (5):
ext4: make ext4_es_remove_extent() return void
ext4: get rid of ppath in ext4_find_extent()
ext4: get rid of ppath in ext4_ext_create_new_leaf()
ext4: get rid of ppath in ext4_ext_insert_extent()
ext4: get rid of ppath in ext4_split_extent_at()
Bart Van Assche (5):
scsi: ufs: core: Always initialize the UIC done completion
wifi: cw1200: Fix locking in error paths
wifi: wlcore: Fix a locking bug
scsi: ufs: core: Fix handling of lrbp->cmd
PM: runtime: Fix a race condition related to device removal
Ben Dooks (1):
ACPI: OSL: fix __iomem type on return from acpi_os_map_generic_address()
Bjorn Andersson (1):
remoteproc: sysmon: Correct subsys_name_len type in QMI request
Bjorn Helgaas (1):
PCI: Fix printk field formatting
Brad Spengler (1):
drm/vmwgfx: Fix invalid kref_put callback in vmw_bo_dirty_release
Brian Foster (1):
ext4: fix dirtyclusters double decrement on fs shutdown
Calvin Owens (1):
tracing: Fix trace_buf_size= cmdline parameter with sizes >= 2G
Casey Connolly (1):
ASoC: detect empty DMI strings
Catalin Marinas (1):
arm64: mm: Add PTE_DIRTY back to PAGE_KERNEL* to fix kexec/hibernation
Cezary Rojewski (1):
ASoC: core: Exit all links before removing their components
Chao Yu (1):
f2fs: fix to trigger foreground gc during f2fs_map_blocks() in lfs mode
Chen Ni (2):
ASoC: amd: acp3x-rt5682-max9836: Add missing error check for clock acquisition
mtd: rawnand: cadence: Fix error check for dma_alloc_coherent() in cadence_nand_init()
Chengfeng Ye (1):
mctp: route: hold key->lock in mctp_flow_prepare_output()
Chintan Vankar (1):
net: ethernet: ti: am65-cpsw-nuss/cpsw-ale: Fix multicast entry handling in ALE table
Chris Spencer (1):
iio: chemical: bme680: Fix measurement wait duration calculation
Christian Eggers (3):
Bluetooth: LE L2CAP: Disconnect if received packet's SDU exceeds IMTU
Bluetooth: LE L2CAP: Disconnect if sum of payload sizes exceed SDU
Bluetooth: SMP: make SM/PER/KDU/BI-04-C happy
Christoffer Sandberg (1):
usb/core/quirks: Add Huawei ME906S-device to wakeup quirk
Christophe JAILLET (1):
i2c: fsi: Fix a potential leak in fsi_i2c_probe()
Christophe Leroy (CS GROUP) (1):
powerpc/uaccess: Fix inline assembly for clang build on PPC32
Chuck Lever (1):
NFSD: Hold net reference for the lifetime of /proc/fs/nfs/exports fd
Chunyan Zhang (1):
riscv: stacktrace: Disable KASAN checks for non-current tasks
Cosmin Ratiu (1):
net/mlx5: Fix deadlock between devlink lock and esw->wq
Daniel Golle (1):
mtd: spinand: macronix: use scratch buffer for DMA operation
Daniel Hodges (1):
wifi: libertas: fix use-after-free in lbs_free_adapter()
Daniel Jurgens (2):
net/mlx5: IFC updates for disabled host PF net/mlx5: Query to see if host PF is disabled
Daniel Latypov (6):
kunit: tool: print summary of failed tests if a few failed out of a lot
kunit: tool: make --json do nothing if --raw_ouput is set
kunit: tool: don't include KTAP headers and the like in the test log
kunit: tool: make parser preserve whitespace when printing test log
kunit: tool: remove unused imports and variables
kunit: tool: fix pre-existing mypy --strict errors and update run_checks.py
Daniil Dulov (1):
wifi: cfg80211: cancel rfkill_block work in wiphy_unregister()
Darrick J. Wong (2):
xfs: fix undersized l_iclog_roundoff values
iomap: reject delalloc mappings during writeback
Dave Airlie (1):
nouveau/dpcd: return EBUSY for aux xfer if the device is asleep
David Dull (1):
netfilter: x_tables: guard option walkers against 1-byte tail reads
David Hildenbrand (Red Hat) (3):
mm/hugetlb: fix hugetlb_pmd_shared()
mm/hugetlb: fix two comments related to huge_pmd_unshare() mm/hugetlb: fix excessive IPI broadcasts when unsharing PMD tables using mmu_gather
David Thomson (1):
xen/acpi-processor: fix _CST detection using undersized evaluation buffer
Davide Caratti (1):
net/sched: ets: fix divide by zero in the offload path
Dipayaan Roy (1):
net: mana: fix use-after-free in mana_hwc_destroy_channel() by reordering teardown
Dmitry Baryshkov (1):
Bluetooth: qca: fix ROM version reading on WCN3998 chips
Duoming Zhou (1):
wifi: brcmfmac: fix use-after-free when rescheduling brcmf_btcoex_info work
Eric Badger (1):
xprtrdma: Decrement re_receiving on the early exit paths
Eric Biggers (3):
smb: client: Compare MACs in constant time
ksmbd: Compare MACs in constant time net/tcp-md5: Fix MAC comparison to be constant-time
Eric Dumazet (5):
indirect_call_wrapper: do not reevaluate function pointer
ipv6: use RCU in ip6_xmit()
l2tp: do not use sock_hold() in pppol2tp_session_get_sock()
net: add skb_header_pointer_careful() helper net/sched: cls_u32: use skb_header_pointer_careful()
Ethan Nelson-Moore (1):
net: arcnet: com20020-pci: fix support for 2.5Mbit cards
Fan Wu (2):
usb: renesas_usbhs: fix use-after-free in ISR during device removal
net: ethernet: arc: emac: quiesce interrupts before requesting IRQ
Fedor Pchelkin (3):
net: macb: fix use-after-free access to PTP clock
ksmbd: call ksmbd_vfs_kern_path_end_removing() on some error paths
net: macb: fix uninitialized rx_fs_lock
Felix Fietkau (2):
net: add support for segmenting TCP fraglist GSO packets
net: gso: fix tcp fraglist segmentation after pull from frag_list
Felix Gu (3):
drm/logicvc: Fix device node reference leak in logicvc_drm_config_parse()
mmc: mmci: Fix device_node reference leak in of_get_dml_pipe_index()
firmware: arm_scpi: Fix device_node reference leak in probe path
Fernando Fernandez Mancera (2):
net: bridge: fix nd_tbl NULL dereference when IPv6 is disabled
net: vxlan: fix nd_tbl NULL dereference when IPv6 is disabled
Filipe Manana (4):
btrfs: fix transaction abort on file creation due to name hash collision
btrfs: abort transaction on failure to update root in the received subvol ioctl
btrfs: fix transaction abort when snapshotting received subvolumes
btrfs: fix transaction abort on set received ioctl due to item overflow
Finn Thain (1):
mtd: Avoid boot crash in RedBoot partition table parser
Florian Westphal (3):
netfilter: ctnetlink: remove refcounting in expectation dumpers
netfilter: nf_tables: de-constify set commit ops function argument
netfilter: nft_set_pipapo: split gc into unlink and reclaim phase
Franz Schnyder (1):
drm/bridge: ti-sn65dsi86: Enable HPD polling if IRQ is not used
Frederic Weisbecker (1):
net: Handle napi_schedule() calls from non-interrupt
Frieder Schrempf (1):
regulator: pca9450: Make IRQ optional
Gabor Juhos (1):
usb: core: don't power off roothub PHYs if phy_set_mode() fails
Gal Pressman (1):
net/mlx5e: Fix DMA FIFO desync on error CQE SQ recovery
Geoffrey D. Bennett (1):
ALSA: usb-audio: Remove VALIDATE_RATES quirk for Focusrite devices
Greg Kroah-Hartman (11):
nfc: pn533: properly drop the usb interface reference on disconnect
net: usb: kaweth: validate USB endpoints
net: usb: kalmia: validate USB endpoints
net: usb: pegasus: validate USB endpoints
can: ems_usb: ems_usb_read_bulk_callback(): check the proper length of a message
can: ucan: Fix infinite loop from zero-length messages
can: usb: etas_es58x: correctly anchor the urb in the read bulk callback
HID: Add HID_CLAIMED_INPUT guards in raw_event callbacks missing them
usb: misc: uss720: properly clean up reference in uss720_probe()
staging: rtl8723bs: properly validate the data in rtw_get_ie_ex() Linux 6.1.167
Guanghui Feng (1):
iommu/vt-d: Fix intel iommu iotlb sync hardlockup and retry
Guchun Chen (1):
drm/amdgpu: drop redundant sched job cleanup when cs is aborted
Guenter Roeck (3):
dpaa2-switch: Fix interrupt storm after receiving bad if_id in IRQ handler
tracing: Add NULL pointer check to trigger_data_free()
wifi: wlcore: Return -ENOMEM instead of -EAGAIN if there is not enough headroom
Gui-Dong Han (1):
hwmon: (max16065) Use READ/WRITE_ONCE to avoid compiler optimization induced race
Guodong Xu (1):
dmaengine: mmp_pdma: Fix race condition in mmp_pdma_residue()
Haiyue Wang (1):
mctp: i2c: fix skb memory leak in receive path
Hangbin Liu (1):
bonding: handle BOND_LINK_FAIL, BOND_LINK_BACK as valid link states
Harald Freudenberger (1):
s390/zcrypt: Enable AUTOSEL_DOM for CCA serialnr sysfs attribute
Heiko Carstens (1):
s390/xor: Fix xor_xc_2() inline assembly constraints
Helge Deller (3):
parisc: Increase initial mapping to 64 MB with KALLSYMS
parisc: Fix initial page table creation for boot
parisc: Check kernel mapping earlier at bootup
Henrique Carvalho (1):
smb: client: fix iface port assignment in parse_server_interfaces
Hongyu Xie (1):
usb: cdns3: remove redundant if branch
Huacai Chen (1):
net: stmmac: dwmac-loongson: Set clk_csr_i to 100-150MHz
Huiwen He (1):
tracing: Fix syscall events activation by ensuring refcount hits zero
Hyunwoo Kim (4):
netfilter: nfnetlink_queue: fix entry leak in bridge verdict error path
netfilter: nfnetlink_cthelper: fix OOB read in nfnl_cthelper_dump_table()
netfilter: ctnetlink: fix use-after-free in ctnetlink_dump_exp_ct()
ksmbd: fix use-after-free of share_conf in compound request
Håkon Bugge (1):
PCI/ACPI: Restrict program_hpx_type2() to AER bits
Ian Forbes (1):
drm/vmwgfx: Return the correct value in vmw_translate_ptr functions
Ian Ray (2):
net: nfc: nci: Fix zero-length proprietary notifications
NFC: nxp-nci: allow GPIOs to sleep
Ilpo Järvinen (3):
resource: Add resource set range and size helpers
PCI: Use resource_set_range() that correctly sets ->end
serial: 8250: Add late synchronize_irq() to shutdown to handle DW UART BUSY
Ilya Dryomov (3):
libceph: reject preamble if control segment is empty
libceph: prevent potential out-of-bounds reads in process_message_header()
libceph: admit message frames only in CEPH_CON_S_OPEN state
Ioana Ciornei (1):
dpaa2-switch: do not clear any interrupts automatically
Ira Weiny (1):
nvdimm/bus: Fix potential use after free in asynchronous initialization
J. Neuschäfer (1):
powerpc: 83xx: km83xx: Fix keymile vendor prefix
Jakub Kicinski (6):
ipv6: fix NULL pointer deref in ip6_rt_get_dev_rcu()
nfc: nci: free skb on nci_transceive early error paths
nfc: nci: clear NCI_DATA_EXCHANGE before calling completion callback
nfc: rawsock: cancel tx_work before socket teardown
eth: bnxt: always recalculate features after XDP clearing, fix null-deref
net: clear the dst when changing skb protocol
Jakub Staniszewski (2):
ice: fix retry for AQ command 0x06EE
ice: reintroduce retry mechanism for indirect AQ
Jamal Hadi Salim (2):
net/sched: act_ife: Fix metalist update behavior net/sched: teql: Fix double-free in teql_master_xmit
Jan Kara (1):
ext4: always allocate blocks only from groups inode can use
Jan Kiszka (1):
scsi: storvsc: Fix scheduling while atomic on PREEMPT_RT
Jane Chu (1):
mm/hugetlb: fix copy_hugetlb_page_range() to use ->pt_share_count
Jann Horn (1):
eventpoll: Fix integer overflow in ep_loop_check_proc()
Jaskaran Singh (2):
Revert "nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()"
nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()Jason Gunthorpe (2):
IB/mthca: Add missed mthca_unmap_user_db() for mthca_create_srq() RDMA/irdma: Fix kernel stack leak in irdma_create_user_ah()
Jean-Baptiste Maneyrol (2):
iio: imu: inv_icm42600: fix odr switch to the same value
iio: imu: inv_icm42600: fix odr switch when turning buffer off
Jedrzej Jagielski (1):
ixgbevf: fix link setup issue
Jeff Layton (2):
sunrpc: fix cache_request leak in cache_release
nfsd: fix heap overflow in NFSv4.0 LOCK replay cache
Jenny Guanni Qu (4):
netfilter: nft_set_pipapo: fix stack out-of-bounds read in pipapo_drop()
netfilter: nf_conntrack_h323: fix OOB read in decode_int() CONS case
netfilter: xt_time: use unsigned int for monthday bit shift
netfilter: nf_conntrack_h323: check for zero length in DecodeQ931()
Jens Axboe (3):
media: dvb-core: fix wrong reinitialization of ringbuffer on reopen io_uring/io-wq: check IO_WQ_BIT_EXIT inside work run loop io_uring/kbuf: check if target buffer list is still legacy on recycle
Jeongjun Park (3):
drm/exynos: vidi: use priv->vidi_dev for ctx lookup in vidi_connection_ioctl()
drm/exynos: vidi: fix to avoid directly dereferencing user pointer
drm/exynos: vidi: use ctx->lock to protect struct vidi_context member variables related to memory alloc/freeJi-Ze Hong (Peter Hong) (1):
USB: serial: f81232: fix incomplete serial port generation
Jian Zhang (1):
net: ncsi: fix skb leak in error paths
Jiasheng Jiang (1):
usb: gadget: f_tcm: Fix NULL pointer dereferences in nexus handling
Jiayuan Chen (4):
atm: lec: fix null-ptr-deref in lec_arp_clear_vccs
net: ipv6: fix panic when IPv4 route references loopback IPv6 nexthop net/rose: fix NULL pointer dereference in rose_transmit_link on reconnect net/smc: fix NULL dereference and UAF in smc_tcp_syn_recv_sock()
Jibin Zhang (1):
net: fix segmentation of forwarding fraglist GRO
Joey Gouly (1):
arm64: reorganise PAGE_/PROT_ macros
Johan Hovold (10):
memory: mtk-smi: fix device leaks on common probe
memory: mtk-smi: fix device leak on larb probe drm/tegra: dsi: fix device leak on probe
bus: omap-ocp2scp: fix OF populate on driver rebind
mfd: qcom-pm8xxx: Fix OF populate on driver rebind
mfd: omap-usb-host: Fix OF populate on driver rebind
clk: tegra: tegra124-emc: fix device leak on set_rate()
spi: fix use-after-free on controller registration failure
spi: fix statistics allocation
i2c: cp2615: fix serial string NULL-deref at probe
Johannes Berg (2):
wifi: radiotap: reject radiotap with unknown bits
wifi: cfg80211: move scan done work to wiphy work
John Ripple (1):
drm/bridge: ti-sn65dsi86: Add support for DisplayPort mode with HPD
Jonathan Teh (1):
platform/x86: thinkpad_acpi: Fix errors reading battery thresholds
Joonwon Kang (1):
mailbox: Prevent out-of-bounds access in of_mbox_index_xlate()
Josef Bacik (1):
btrfs: move btrfs_crc32c_final into free-space-cache.c
Josh Law (5):
lib/bootconfig: fix off-by-one in xbc_verify_tree() unclosed brace error lib/bootconfig: fix snprintf truncation check in xbc_node_compose_key_after() lib/bootconfig: check bounds before writing in __xbc_open_brace() lib/bootconfig: check xbc_init_node() return in override path tools/bootconfig: fix fd leak in load_xbc_file() on fstat failure
Juergen Gross (2):
xen/privcmd: restrict usage in unprivileged domU xen/privcmd: add boot control for restricted usage in domU
Jun Seo (1):
ALSA: usb-audio: Use correct version for UAC3 header validation
Junxiao Bi (2):
scsi: core: Fix refcount leak for tagset_refcnt
scsi: core: Fix error handling for scsi_alloc_sdev()
Justin Chen (1):
net: bcmgenet: increase WoL poll timeout
Justin Stitt (1):
i2c: cp2615: replace deprecated strncpy with strscpy
Kalesh Singh (1):
mm/tracing: rss_stat: ensure curr is false from kthread context
Kamal Dasu (2):
mtd: rawnand: serialize lock/unlock against other NAND operations
mtd: rawnand: brcmnand: skip DMA during panic write
Keith Busch (1):
nvme: fix admin request_queue lifetime
Kevin Groeneveld (1):
net: fec: handle page_pool_dev_alloc_pages error
Kevin Hao (3):
net: macb: Shuffle the tx ring before enabling tx
net: macb: Introduce gem_init_rx_ring()
net: macb: Reinitialize tx/rx queue pointer registers and rx ring during resume
Khairul Anuar Romli (1):
spi: cadence-quadspi: Implement refcount to handle unbind during busy
Kim Phillips (1):
x86/sev: Allow IBPB-on-Entry feature for SNP guests
Kohei Enju (2):
bpf: Fix stack-out-of-bounds write in devmap
igc: fix missing update of skb->tail in igc_xmit_frame()
Koichiro Den (1):
net: sched: avoid qdisc_reset_all_tx_gt() vs dequeue race for lockless qdiscs
Kui-Feng Lee (1):
bpf: export bpf_link_inc_not_zero.
Kuniyuki Iwashima (2):
wifi: mac80211: Fix static_branch_dec() underflow for aql_disable.
Bluetooth: hci_core: Fix use-after-free in vhci_flush()
Kurt Borja (1):
platform/x86: dell-wmi: Add audio/mic mute key codes
Lang Xu (1):
bpf: Fix a UAF issue in bpf_trampoline_link_cgroup_shim
Lang Yu (1):
drm/amdgpu: unmap and remove csa_va properly
Lars Ellenberg (1):
drbd: fix "LOGIC BUG" in drbd_al_begin_io_nonblock()
Larysa Zaremba (2):
xdp: use modulo operation to calculate XDP frag tailroom
xdp: produce a warning when calculated tailroom is negative
Laurent Pinchart (1):
media: tegra-video: Use accessors for pad config 'try_*' fields
Long Li (3):
net: mana: Ring doorbell at 4 CQ wraparounds
xfs: fix integer overflow in bmap intent sort comparator
xfs: ensure dquot item is deleted from AIL only after log shutdown
Lorenzo Bianconi (2):
wifi: mt76: Fix possible oob access in mt76_connac2_mac_write_txwi_80211()
net: ethernet: mtk_eth_soc: Reset prog ptr to old_prog in case of error in mtk_xdp_setup()
Luca Ceresoli (2):
drm/bridge: ti-sn65dsi83: fix CHA_DSI_CLK_RANGE rounding drm/bridge: ti-sn65dsi83: halve horizontal syncs for dual LVDS output
Luiz Augusto von Dentz (2):
Bluetooth: HIDP: Fix possible UAF
Bluetooth: L2CAP: Fix accepting multiple L2CAP_ECRED_CONN_REQ
Luka Gejak (1):
staging: rtl8723bs: fix potential out-of-bounds read in rtw_restruct_wmm_ie
Lukas Johannes Möller (3):
Bluetooth: L2CAP: Fix type confusion in l2cap_ecred_reconf_rsp()
Bluetooth: L2CAP: Validate L2CAP_INFO_RSP payload length before access
netfilter: nf_conntrack_sip: fix Content-Length u32 truncation in sip_help_tcp()
Lukas Schmid (1):
iio: potentiometer: mcp4131: fix double application of wiper shift
Luke Wang (1):
mmc: sdhci: fix timing selection for 1-bit bus width
Maarten Lankhorst (1):
drm: Fix use-after-free on framebuffers and property blobs when calling drm_dev_unplug
Maciej Andrzejewski ICEYE (1):
serial: uartlite: fix PM runtime usage count underflow on probe
Marc Kleine-Budde (1):
can: gs_usb: gs_can_open(): always configure bitrates before starting device
Marc Zyngier (2):
usb: cdc-acm: Restore CAP_BRK functionnality to CH343 irqchip/gic-v3-its: Limit number of per-device MSIs to the range the ITS supports
Mario Limonciello (2):
drm/amd: Drop special case for yellow carp without discovery drm/amd: Set num IP blocks to 0 if discovery fails
Marios Makassikis (1):
smb: server: fix use-after-free in smb2_open()
Mark Harmstone (2):
btrfs: fix incorrect key offset in error message in check_dev_extent_item()
btrfs: fix compat mask in error messages in btrfs_check_features()
Martin Roukala (né Peres) (1):
serial: 8250_pci: add support for the AX99100
Masami Hiramatsu (Google) (2):
kprobes: Remove unneeded goto
kprobes: Remove unneeded warnings from __arm_kprobe_ftrace()
Mathias Krause (2):
scsi: lpfc: Properly set WC for DPP mapping
KVM: x86: Fix KVM_GET_MSRS stack info leak
Matt Vollrath (1):
e1000/e1000e: Fix leak in DMA error cleanup
Matthew Schwartz (1):
mmc: sdhci-pci-gli: fix GL9750 DMA write corruption
Matthieu Baerts (NGI0) (4):
mptcp: pm: avoid sending RM_ADDR over same subflow
mptcp: pm: in-kernel: always mark signal+subflow endp as used
selftests: mptcp: join: check RM_ADDR not sent over same subflow
mptcp: pm: in-kernel: always set ID as avail when rm endp
Max Kellermann (1):
ceph: fix i_nlink underrun during async unlink
Maíra Canal (2):
pmdomain: bcm: bcm2835-power: Fix broken reset status read
pmdomain: bcm: bcm2835-power: Increase ASB control timeout
Mehul Rao (2):
tipc: fix divide-by-zero in tipc_sk_filter_connect()
ALSA: pcm: fix use-after-free on linked stream runtime in snd_pcm_drain()
Menglong Dong (1):
net: tcp: accept old ack during closing
Michael Grzeschik (1):
Bluetooth: hci_sync: Fix hci_le_create_conn_sync
Michal Schmidt (2):
ice: remove unused buffer copy code in ice_sq_send_cmd_retry()
ice: sleep, don't busy-wait, in the SQ send retry loop
Mieczyslaw Nalewaj (2):
net: dsa: realtek: rtl8365mb: fix rtl8365mb_phy_ocp_write return value
net: dsa: realtek: rtl8365mb: remove ifOutDiscards from rx_packets
Mika Westerberg (1):
PCI: Introduce pci_dev_for_each_resource()
Mike Rapoport (Microsoft) (1):
x86/efi: defer freeing of boot services memory
Mikulas Patocka (1):
dm-verity: disable recursive forward error correction
Milen Mitkov (1):
media: camss: vfe-480: Multiple outputs support for SM8250
Muhammad Hammad Ijaz (1):
net: mvpp2: guard flow control update with global_tx_fc in buffer switching
Nam Cao (1):
irqchip/sifive-plic: Fix frozen interrupt due to affinity setting
Namjae Jeon (1):
ksmbd: unset conn->binding on failed binding request
Natalie Vock (1):
drm/amd/display: Use GFP_ATOMIC in dc_create_stream_for_sink
Nathan Gao (1):
Revert "selftests: net: amt: wait longer for connection before sending packets"
Nikola Z. Ivanov (1):
net: usb: aqc111: Do not perform PM inside suspend callback
Nuno Sá (2):
iio: buffer: fix coding style warnings
iio: buffer: Fix wait_queue not being removed
Oleg Nesterov (1):
x86/uprobes: Fix XOL allocation failure for 32-bit tasks
Oleksij Rempel (4):
net: usb: lan78xx: fix silent drop of packets with checksum errors
net: usb: lan78xx: fix TX byte statistics for small packets
net: usb: lan78xx: skip LTM configuration for LAN7850
iio: dac: ds4424: reject -128 RAW value
Oliver Hartkopp (1):
can: bcm: fix locking for bcm_op runtime updates
Oliver Neukum (3):
usb: yurex: fix race in probe
usb: class: cdc-wdm: fix reordering issue in read code path
usb: mdc800: handle signal and read racing
Olivier Sobrie (1):
mtd: rawnand: pl353: make sure optimal timings are applied
Oswald Buddenhagen (1):
ALSA: pcm: fix wait_time calculations
Ovidiu Panait (1):
net: stmmac: Fix error handling in VLAN add and delete paths
Pablo Neira Ayuso (5):
netfilter: nft_ct: drop pending enqueued packets on removal
netfilter: xt_CT: drop pending enqueued packets on template removal
netfilter: nf_tables: release flowtable after rcu grace period on error
netfilter: nf_tables: missing objects with no memcg accounting
netfilter: nft_set_pipapo: prevent overflow in lookup table allocation
Paolo Abeni (1):
selftests: mptcp: more stable simult_flows tests
Paul Chaignon (1):
bpf: Forget ranges when refining tnum after JSET
Paul Moses (1):
net/sched: act_gate: snapshot parameters with RCU on replace
Paulo Alcantara (3):
smb: client: fix broken multichannel with krb5+signing
smb: client: fix atomic open with O_DIRECT & O_SYNC
smb: client: fix krb5 mount with username option
Peddolla Harshavardhan Reddy (1):
wifi: cfg80211: cancel pmsr_free_wk in cfg80211_pmsr_wdev_down
Pedro Demarchi Gomes (1):
ntfs: set dummy blocksize to read boot_block when mounting
Peng Fan (1):
regulator: pca9450: Correct interrupt type
Penghe Geng (1):
mmc: core: Avoid bitfield RMW for claim/retune flags
Peter Wang (1):
scsi: ufs: core: Move link recovery for hibern8 exit failure to wl_resume
Peter Zijlstra (1):
perf: Fix __perf_event_overflow() vs perf_remove_from_context() race
Petr Oros (1):
iavf: fix VLAN filter lost on add/delete race
Phillip Lougher (1):
Squashfs: check metadata block offset is within range
Piotr Mazek (1):
ACPI: PM: Save NVS memory on Lenovo G70-35
Prithvi Tambewagh (1):
scsi: target: Fix recursive locking in __configfs_open_file()
Przemek Kitszel (1):
octeontx2-af: devlink health: use retained error fmsg API
Puranjay Mohan (2):
PCI: Update BAR # and window messages
PCI: Use resource names in PCI log messages
Qingye Zhao (1):
cgroup: fix race between task migration and iteration
Qu Wenruo (2):
btrfs: send: check for inline extents in range_is_hole_in_parent()
btrfs: do not strictly require dirty metadata threshold for metadata writepages
Rae Moar (2):
kunit: tool: parse KTAP compliant test output
kunit: tool: Add command line interface to filter and report attributes
Rafael J. Wysocki (3):
sched: idle: Make skipping governor callbacks more consistent
sched: idle: Consolidate the handling of two special cases
ACPI: processor: Fix previous acpi_processor_errata_piix4() fix
Rahul Bukte (1):
drm/i915/gt: Check set_default_submission() before deferencing
Raju Rangoju (1):
amd-xgbe: fix sleep while atomic on suspend/resume
Ramanathan Choodamani (1):
wifi: mac80211: set default WMM parameters on all links
Randy Dunlap (1):
time: add kernel-doc in time.c
Ranjan Kumar (1):
scsi: mpi3mr: Add NULL checks when resetting request and reply queues
Raphael Zimmer (2):
libceph: Fix potential out-of-bounds access in ceph_handle_auth_reply()
libceph: Use u32 for non-negative values in ceph_monmap_decode()
Raul E Rangel (1):
serial: 8250: Fix TX deadlock when using DMA
Ravi Hothi (1):
ASoC: qcom: qdsp6: Fix q6apm remove ordering during ADSP stop and start
Ricardo B. Marlière (1):
net: bonding: Fix nd_tbl NULL dereference when IPv6 is disabled
Richard Genoud (1):
soc: fsl: qbman: fix race condition in qman_destroy_fq
Russell King (Oracle) (2):
net: stmmac: remove support for lpi_intr_o
net: stmmac: fix TSO DMA API usage causing oops
Salomon Dushimirimana (1):
scsi: pm8001: Fix use-after-free in pm8001_queue_command()
Sanman Pradhan (2):
hwmon: (pmbus/q54sj108a2) fix stack overflow in debugfs read
hwmon: (pmbus/isl68137) Fix unchecked return value and use sysfs_emit()
Sasha Levin (1):
Revert "arm64: dts: qcom: sdm845-oneplus: Mark l14a regulator as boot-on"
Sean Christopherson (7):
KVM: x86/pmu: Provide "error" semantics for unsupported-but-known PMU MSRs
KVM: x86: Rename KVM_MSR_RET_INVALID to KVM_MSR_RET_UNSUPPORTED
KVM: x86: Return "unsupported" instead of "invalid" on access to unsupported PV MSR
KVM: x86: WARN if a vCPU gets a valid wakeup that KVM can't yet inject
KVM: x86: Ignore -EBUSY when checking nested events from vcpu_block()
KVM: SVM: Initialize AVIC VMCB fields if AVIC is enabled with in-kernel APIC
KVM: SVM: Set/clear CR8 write interception when AVIC is (de)activated
Seungjin Bae (1):
usb: gadget: f_mass_storage: Fix potential integer overflow in check_command_size_in_blocks()
Shashank Balaji (1):
x86/apic: Disable x2apic on resume if the kernel expects so
Shawn Lin (1):
arm64: dts: rockchip: Fix rk356x PCIe range mappings
Shuangpeng Bai (1):
serial: caif: hold tty->link reference in ldisc_open and ser_release
Shuvam Pandey (1):
kunit: tool: copy caller args in run_kernel to prevent mutation
Shyam Prasad N (1):
cifs: open files should not hold ref on superblock
Sofia Schneider (1):
ACPI: OSI: Add DMI quirk for Acer Aspire One D255
Stefan Haberland (2):
s390/dasd: Move quiesce state with pprc swap s390/dasd: Copy detected format information to secondary device
Steven Rostedt (1):
time/jiffies: Mark jiffies_64_to_clock_t() notrace
Sungwoo Kim (2):
nvme-pci: Fix slab-out-of-bounds in nvme_dbbuf_set
nvme-pci: Fix race bug in nvme_poll_irqdisable()
Sven Eckelmann (1):
batman-adv: Avoid double-rtnl_lock ELP metric worker
Takashi Iwai (8):
ALSA: usb-audio: Cap the packet size pre-calculations
ALSA: usb-audio: Use inclusive terms
ALSA: hda/conexant: Add quirk for HP ZBook Studio G4
ALSA: hda/conexant: Fix headphone jack handling on Acer Swift SF314
ALSA: usb-audio: Avoid implicit feedback mode on DIYINHK USB Audio 2.0
ALSA: usb-audio: Check max frame size for implicit feedback mode, too
ALSA: usb-audio: Check endpoint numbers at parsing Scarlett2 mixer interfaces
ALSA: usb-audio: Kill timer properly at removal
Thomas Fourier (1):
drm/msm: Fix dma_free_attrs() buffer size
Thomas Richard (TI) (1):
usb: cdns3: fix role switching during resume
Thomas Weißschuh (1):
ARM: clean up the memset64() C wrapper
Thorsten Blum (4):
platform/x86: dell-wmi-sysman: Don't hex dump plaintext password data
smb: client: Don't log plaintext credentials in cifs_set_cifscreds
ksmbd: Don't log keys in SMB3 signing and encryption key generation
crypto: atmel-sha204a - Fix OOM ->tfm_count leak
Théo Lebrun (1):
usb: cdns3: call cdns_power_is_lost() only once in cdns_resume()
Tiezhu Yang (1):
LoongArch: Give more information if kmem access failed
Timur Kristóf (2):
drm/amd/display: Add pixel_clock to amd_pp_display_configuration drm/amd/pm: Use pm_display_cfg in legacy DPM (v2)
Tom Rix (1):
nfsd: define exports_proc_ops with CONFIG_PROC_FS
Tomas Henzl (1):
scsi: ses: Fix devices attaching to different hosts
Tzung-Bi Shih (1):
remoteproc: mediatek: Unprepare SCP clock during system suspend
Uwe Kleine-König (4):
memory: mtk-smi: Convert to platform remove callback returning void
bus: omap-ocp2scp: Convert to platform remove callback returning void
mfd: qcom-pm8xxx: Convert to platform remove callback returning void
mfd: omap-usb-host: Convert to platform remove callback returning void
Vahagn Vardanian (1):
wifi: mac80211: fix NULL pointer dereference in mesh_rx_csa_frame()
Victor Nogueira (1):
net/sched: Only allow act_ct to bind to clsact/ingress qdiscs and shared blocks
Vimlesh Kumar (2):
octeon_ep: Relocate counter updates before NAPI
octeon_ep: avoid compiler and IQ/OQ reordering
Vincent Guittot (1):
sched/fair: Fix pelt clock sync when entering idle
Vineeth Karumanchi (1):
net: macb: queue tie-off or disable during WOL suspend
Vladimir Oltean (6):
net: dpaa2: replace dpaa2_mac_is_type_fixed() with dpaa2_mac_is_type_phy()
net: dpaa2-switch: assign port_priv->mac after dpaa2_mac_connect() call
net: dpaa2-switch replace direct MAC access with dpaa2_switch_port_has_mac()
net: dpaa2-switch: serialize changes to priv->mac with a mutex
net: dsa: improve shutdown sequence
net: enetc: reimplement RFS/RSS memory clearing as PCI quirk
Vyacheslav Vahnenko (1):
USB: ezcap401 needs USB_QUIRK_NO_BOS to function on 10gbs usb speed
Wei Fang (1):
net: enetc: allocate vf_state during PF probes
Weiming Shi (3):
net/sched: teql: fix NULL pointer dereference in iptunnel_xmit on TEQL slave xmit
nfnetlink_osf: validate individual option lengths in fingerprints
icmp: fix NULL pointer dereference in icmp_tag_validation()
Wenyuan Li (1):
can: hi311x: hi3110_open(): add check for hi3110_power_enable() return value
Xiang Mei (3):
wifi: mac80211: fix NULL deref in mesh_matches_local()
udp_tunnel: fix NULL deref caused by udp_sock_create6 when CONFIG_IPV6=n
net: bonding: fix NULL deref in bond_debug_rlb_hash_show
Xu Yang (1):
usb: roles: get usb role switch from parent only for usb-b-connector
Yang Yang (1):
batman-adv: avoid OGM aggregation when skb tailroom is insufficient
Yuan Tan (1):
netfilter: xt_IDLETIMER: reject rev0 reuse of ALARM timer labels
Zhang Heng (1):
ASoC: amd: yc: Add DMI quirk for ASUS EXPERTBOOK PM1503CDA
Zhang Yi (4):
ext4: subdivide EXT4_EXT_DATA_VALID1
ext4: don't zero the entire extent if EXT4_EXT_DATA_PARTIAL_VALID1
ext4: drop extent cache after doing PARTIAL_VALID1 zeroout
ext4: drop extent cache when splitting extent fails
ZhengYuan Huang (1):
btrfs: tree-checker: fix misleading root drop_level error message
Zilin Guan (3):
media: tegra-video: Fix memory leak in __tegra_channel_try_format()
usb: xhci: Fix memory leak in xhci_disable_slot()
binfmt_misc: restore write access before closing files opened by open_exec()
Ziyi Guo (1):
usb: image: mdc800: kill download URB on timeout
Zqiang (1):
rcu/nocb: Fix possible invalid rdp's->nocb_cb_kthread pointer access
matteo.cotifava (2):
ASoC: soc-core: drop delayed_work_pending() check before flush
ASoC: soc-core: flush delayed work before removing DAIs and widgets
Greg Kroah-Hartman
maintainer.clang-format +1 -0
@@ -516,6 +516,7 @@ ForEachMacros: - 'of_property_for_each_string' - 'of_property_for_each_u32' - 'pci_bus_for_each_resource' + - 'pci_dev_for_each_resource' - 'pci_doe_for_each_off' - 'pcl_for_each_chunk' - 'pcl_for_each_segment'
Documentation/networking/device_drivers/ethernet/freescale/dpaa2/mac-phy-support.rst +6 -3
@@ -181,10 +181,13 @@ when necessary using the below listed API:: - int dpaa2_mac_connect(struct dpaa2_mac *mac); - void dpaa2_mac_disconnect(struct dpaa2_mac *mac); -A phylink integration is necessary only when the partner DPMAC is not of TYPE_FIXED. -One can check for this condition using the below API:: +A phylink integration is necessary only when the partner DPMAC is not of +``TYPE_FIXED``. This means it is either of ``TYPE_PHY``, or of +``TYPE_BACKPLANE`` (the difference being the two that in the ``TYPE_BACKPLANE`` +mode, the MC firmware does not access the PCS registers). One can check for +this condition using the following helper:: - - bool dpaa2_mac_is_type_fixed(struct fsl_mc_device *dpmac_dev,struct fsl_mc_io *mc_io); + - static inline bool dpaa2_mac_is_type_phy(struct dpaa2_mac *mac); Before connection to a MAC, the caller must allocate and populate the dpaa2_mac structure with the associated net_device, a pointer to the MC portal
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 6 PATCHLEVEL = 1 -SUBLEVEL = 166 +SUBLEVEL = 167 EXTRAVERSION = NAME = Curry Ramen
arch/alpha/kernel/pci.c +2 -3
@@ -288,11 +288,10 @@ pcibios_claim_one_bus(struct pci_bus *b)struct pci_bus *child_bus;list_for_each_entry (dev, &b->devices, bus_list) { +struct resource *r;int i; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *r = &dev->resource[i]; - +pci_dev_for_each_resource (dev, r, i) {if (r->parent || !r->start || !r->flags)continue ; if (pci_has_flag(PCI_PROBE_ONLY) ||
arch/arm/include/asm/string.h +9 -5
@@ -39,13 +39,17 @@ static inline void *memset32(uint32_t *p, uint32_t v, __kernel_size_t n) }#define __HAVE_ARCH_MEMSET64 -extern void *__memset64 (uint64_t *,uint32_t low,__kernel_size_t ,uint32_t hi); +extern void *__memset64 (uint64_t *,uint32_t first,__kernel_size_t ,uint32_t second);static inline void *memset64 (uint64_t *p,uint64_t v,__kernel_size_t n) { -if (IS_ENABLED (CONFIG_CPU_LITTLE_ENDIAN )) -return __memset64 (p, v, n *8 , v >>32 ); -else -return __memset64 (p, v >>32 , n *8 , v); +union { +uint64_t val; +struct { +uint32_t first, second; + }; + } word = { .val = v }; + +return __memset64 (p, word.first, n *8 , word.second); }/*
arch/arm/kernel/bios32.c +7 -9
@@ -142,15 +142,15 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_WINBOND2, PCI_DEVICE_ID_WINBOND2_89C940F,*/ static void pci_fixup_dec21285 (struct pci_dev *dev) { -int i; -if (dev->devfn ==0 ) { +struct resource *r; + dev->class &=0xff ; dev->class |=PCI_CLASS_BRIDGE_HOST <<8 ; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
@@ -162,13 +162,11 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_DEC, PCI_DEVICE_ID_DEC_21285, pci_fixup_dstatic void pci_fixup_ide_bases (struct pci_dev *dev) {struct resource *r; -int i;if ((dev->class >>8 ) !=PCI_CLASS_STORAGE_IDE )return ; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { - r = dev->resource + i; +pci_dev_for_each_resource (dev, r) {if ((r->start & ~0x80 ) ==0x374 ) { r->start |=2 ; r->end = r->start;
arch/arm/mach-dove/pcie.c +5 -5
@@ -142,14 +142,14 @@ static struct pci_ops pcie_ops = {static void rc_pci_fixup (struct pci_dev *dev) {if (dev->bus->parent ==NULL && dev->devfn ==0 ) { -int i; +struct resource *r; dev->class &=0xff ; dev->class |=PCI_CLASS_BRIDGE_HOST <<8 ; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
arch/arm/mach-mv78xx0/pcie.c +5 -5
@@ -186,14 +186,14 @@ static struct pci_ops pcie_ops = {static void rc_pci_fixup (struct pci_dev *dev) {if (dev->bus->parent ==NULL && dev->devfn ==0 ) { -int i; +struct resource *r; dev->class &=0xff ; dev->class |=PCI_CLASS_BRIDGE_HOST <<8 ; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
arch/arm/mach-orion5x/pci.c +5 -5
@@ -522,14 +522,14 @@ static int __init pci_setup(struct pci_sys_data *sys)static void rc_pci_fixup (struct pci_dev *dev) {if (dev->bus->parent ==NULL && dev->devfn ==0 ) { -int i; +struct resource *r; dev->class &=0xff ; dev->class |=PCI_CLASS_BRIDGE_HOST <<8 ; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
arch/arm64/boot/dts/qcom/sdm845-oneplus-common.dtsi +0 -1
@@ -224,7 +224,6 @@ vreg_l12a_1p8: ldo12 { regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>; - regulator-boot-on; }; vreg_l14a_1p88: ldo14 {
arch/arm64/boot/dts/rockchip/rk3568.dtsi +2 -2
@@ -97,7 +97,7 @@ pcie3x1: pcie@fe270000 { <0x0 0xf2000000 0x0 0x00100000>; ranges = <0x01000000 0x0 0xf2100000 0x0 0xf2100000 0x0 0x00100000>, <0x02000000 0x0 0xf2200000 0x0 0xf2200000 0x0 0x01e00000>, - <0x03000000 0x0 0x40000000 0x3 0x40000000 0x0 0x40000000>; + <0x03000000 0x3 0x40000000 0x3 0x40000000 0x0 0x40000000>; reg-names = "dbi", "apb", "config"; resets = <&cru SRST_PCIE30X1_POWERUP>; reset-names = "pipe";
@@ -150,7 +150,7 @@ pcie3x2: pcie@fe280000 { <0x0 0xf0000000 0x0 0x00100000>; ranges = <0x01000000 0x0 0xf0100000 0x0 0xf0100000 0x0 0x00100000>, <0x02000000 0x0 0xf0200000 0x0 0xf0200000 0x0 0x01e00000>, - <0x03000000 0x0 0x40000000 0x3 0x80000000 0x0 0x40000000>; + <0x03000000 0x3 0x80000000 0x3 0x80000000 0x0 0x40000000>; reg-names = "dbi", "apb", "config"; resets = <&cru SRST_PCIE30X2_POWERUP>; reset-names = "pipe";
arch/arm64/boot/dts/rockchip/rk356x.dtsi +1 -1
@@ -985,7 +985,7 @@ pcie2x1: pcie@fe260000 { power-domains = <&power RK3568_PD_PIPE>; ranges = <0x01000000 0x0 0xf4100000 0x0 0xf4100000 0x0 0x00100000>, <0x02000000 0x0 0xf4200000 0x0 0xf4200000 0x0 0x01e00000>, - <0x03000000 0x0 0x40000000 0x3 0x00000000 0x0 0x40000000>; + <0x03000000 0x3 0x00000000 0x3 0x00000000 0x0 0x40000000>; resets = <&cru SRST_PCIE20_POWERUP>; reset-names = "pipe"; #address-cells = <3>;
arch/arm64/include/asm/pgtable-prot.h +44 -28
96 lines not on this page · raw message
arch/loongarch/include/asm/uaccess.h +12 -2
@@ -209,8 +209,13 @@ do { \ \__get_kernel_common (*((type *)(dst)),sizeof (type), \ (__force type *)(src)); \ -if (unlikely (__gu_err)) \ +if (unlikely (__gu_err)) { \ +pr_info ("%s: memory access failed, ecode 0x%x\n" , \ + __func__,read_csr_excode ()); \ +pr_info ("%s: the caller is %pS\n" , \ + __func__,__builtin_return_address (0 )); \ goto err_label; \ + } \ }while (0 ) #define __put_kernel_nofault(dst, src, type, err_label) \
@@ -220,8 +225,13 @@ do { \ \ __pu_val = *(__force type *)(src); \__put_kernel_common (((type *)(dst)),sizeof (type)); \ -if (unlikely (__pu_err)) \ +if (unlikely (__pu_err)) { \ +pr_info ("%s: memory access failed, ecode 0x%x\n" , \ + __func__,read_csr_excode ()); \ +pr_info ("%s: the caller is %pS\n" , \ + __func__,__builtin_return_address (0 )); \ goto err_label; \ + } \ }while (0 ) extern unsigned long __copy_user(void *to, const void *from, __kernel_size_t n);
arch/mips/pci/ops-bcm63xx.c +4 -4
@@ -413,18 +413,18 @@ struct pci_ops bcm63xx_cb_ops = {static void bcm63xx_fixup (struct pci_dev *dev) {static int io_window =-1 ; -int i, found, new_io_window; +int found, new_io_window; +struct resource *r;u32 val;/* look for any io resource */ found =0 ; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { -if (pci_resource_flags (dev, i) &IORESOURCE_IO ) { +pci_dev_for_each_resource (dev, r) { +if (resource_type (r) ==IORESOURCE_IO ) { found =1 ;break ; } } -if (!found)return ;
arch/mips/pci/pci-legacy.c +1 -2
@@ -249,12 +249,11 @@ static int pcibios_enable_resources(struct pci_dev *dev, int mask)pci_read_config_word (dev,PCI_COMMAND , &cmd); old_cmd = cmd; -for (idx =0 ; idx <PCI_NUM_RESOURCES ; idx++) { +pci_dev_for_each_resource (dev, r, idx) {/* Only set up the requested stuff */ if (!(mask & (1 <<idx)))continue ; - r = &dev->resource[idx];if (!(r->flags & (IORESOURCE_IO |IORESOURCE_MEM )))continue ; if ((idx == PCI_ROM_RESOURCE) &&
arch/parisc/include/asm/pgtable.h +1 -1
@@ -94,7 +94,7 @@ extern void __update_cache(pte_t pte);printk ("%s:%d: bad pgd %08lx.\n" , __FILE__, __LINE__, (unsigned long )pgd_val (e)) /* This is the size of the initially mapped kernel memory */ -#if defined(CONFIG_64BIT ) +#if defined(CONFIG_64BIT ) || defined(CONFIG_KALLSYMS )#define KERNEL_INITIAL_ORDER 26/* 1<<26 = 64MB */ #else #define KERNEL_INITIAL_ORDER 25/* 1<<25 = 32MB */
arch/parisc/kernel/head.S +6 -1
@@ -56,6 +56,7 @@ ENTRY(parisc_kernel_start) .import __bss_start,data .import __bss_stop,data + .import __end,data load32 PA(__bss_start),%r3 load32 PA(__bss_stop),%r4
@@ -149,7 +150,11 @@ $cpu_ok: * everything ... it will get remapped correctly later */ ldo 0+_PAGE_KERNEL_RWX(%r0),%r3 /* Hardwired 0 phys addr start */ load32 (1<<(KERNEL_INITIAL_ORDER-PAGE_SHIFT)),%r11 /* PFN count */ - load32 PA(pg0),%r1 + load32 PA(_end),%r1 + SHRREG %r1,PAGE_SHIFT,%r1 /* %r1 is PFN count for _end symbol */ + cmpb,<<,n %r11,%r1,1f + copy %r1,%r11 /* %r1 PFN count smaller than %r11 */ +1: load32 PA(pg0),%r1 $pgt_fill_loop: STREGM %r3,ASM_PTE_ENTRY_SIZE(%r1)
arch/parisc/kernel/setup.c +12 -8
@@ -135,14 +135,6 @@ void __init setup_arch(char **cmdline_p)#endif printk (KERN_CONT ".\n" ); -/* -* Check if initial kernel page mappings are sufficient. -* panic early if not, else we may access kernel functions -* and variables which can't be reached. -*/ -if (__pa ((unsigned long ) &_end) >=KERNEL_INITIAL_SIZE ) -panic ("KERNEL_INITIAL_ORDER too small!" ); -#ifdef CONFIG_64BIT if (parisc_narrow_firmware) {printk (KERN_INFO "Kernel is using PDC in 32-bit mode.\n" );
@@ -398,6 +390,18 @@ void __init start_parisc(void)int ret, cpunum;struct pdc_coproc_cfg coproc_cfg; +/* +* Check if initial kernel page mapping is sufficient. +* Print warning if not, because we may access kernel functions and +* variables which can't be reached yet through the initial mappings. +* Note that the panic() and printk() functions are not functional +* yet, so we need to use direct iodc() firmware calls instead. +*/ +const char warn1[] ="CRITICAL: Kernel may crash because " +"KERNEL_INITIAL_ORDER is too small.\n" ; +if (__pa ((unsigned long ) &_end) >=KERNEL_INITIAL_SIZE ) +pdc_iodc_print (warn1,sizeof (warn1) -1 ); +/* check QEMU/SeaBIOS marker in PAGE0 */ running_on_qemu = (memcmp (&PAGE0 ->pad0,"SeaBIOS" ,8 ) ==0 );
arch/powerpc/include/asm/uaccess.h +1 -1
@@ -237,7 +237,7 @@ __gus_failed: \".section .fixup,\"ax\"\n" \"4: li %0,%3\n" \" li %1,0\n" \ -" li %1+1,0\n" \ +" li %L1,0\n" \" b 3b\n" \".previous\n" \EX_TABLE (1b ,4b ) \
arch/powerpc/kernel/pci-common.c +11 -10
@@ -880,6 +880,7 @@ int pcibios_root_bridge_prepare(struct pci_host_bridge *bridge)static void pcibios_fixup_resources (struct pci_dev *dev) {struct pci_controller *hose =pci_bus_to_host (dev->bus); +struct resource *res;int i;if (!hose) {
@@ -891,9 +892,9 @@ static void pcibios_fixup_resources(struct pci_dev *dev)if (dev->is_virtfn)return ; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { -struct resource *res = dev->resource + i; +pci_dev_for_each_resource (dev, res, i) {struct pci_bus_region reg; +if (!res->flags)continue ;
@@ -1452,11 +1453,10 @@ void pcibios_claim_one_bus(struct pci_bus *bus)struct pci_bus *child_bus;list_for_each_entry (dev, &bus->devices, bus_list) { +struct resource *r;int i; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *r = &dev->resource[i]; - +pci_dev_for_each_resource (dev, r, i) {if (r->parent || !r->start || !r->flags)continue ;
@@ -1705,19 +1705,20 @@ EXPORT_SYMBOL_GPL(pcibios_scan_phb);static void fixup_hide_host_resource_fsl (struct pci_dev *dev) { -int i, class = dev->class >>8 ; +int class = dev->class >>8 ;/* When configured as agent, programming interface = 1 */ int prog_if = dev->class &0xf ; +struct resource *r;if ((class ==PCI_CLASS_PROCESSOR_POWERPC || class ==PCI_CLASS_BRIDGE_OTHER ) && (dev->hdr_type ==PCI_HEADER_TYPE_NORMAL ) && (prog_if ==0 ) && (dev->bus->parent ==NULL )) { -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
arch/powerpc/platforms/4xx/pci.c +4 -4
@@ -57,7 +57,7 @@ static inline int ppc440spe_revA(void)static void fixup_ppc4xx_pci_bridge (struct pci_dev *dev) {struct pci_controller *hose; -int i; +struct resource *r;if (dev->devfn !=0 || dev->bus->self !=NULL )return ;
@@ -79,9 +79,9 @@ static void fixup_ppc4xx_pci_bridge(struct pci_dev *dev)/* Hide the PCI host BARs from the kernel as their content doesn't * fit well in the resource management */ -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start = dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start = r->end =0 ; + r->flags =0 ; } printk(KERN_INFO "PCI: Hiding 4xx host bridge resources %s\n",
arch/powerpc/platforms/52xx/mpc52xx_pci.c +2 -3
@@ -327,14 +327,13 @@ mpc52xx_pci_setup(struct pci_controller *hose,static void mpc52xx_pci_fixup_resources (struct pci_dev *dev) { -int i; +struct resource *res;pr_debug ("%s() %.4x:%.4x\n" , __func__, dev->vendor, dev->device);/* We don't rely on boot loader for PCI and resets all devices */ -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { -struct resource *res = &dev->resource[i]; +pci_dev_for_each_resource (dev, res) {if (res->end > res->start) {/* Only valid resources */ res->end -= res->start; res->start =0 ;
arch/powerpc/platforms/83xx/km83xx.c +2 -2
@@ -155,8 +155,8 @@ machine_device_initcall(mpc83xx_km, mpc83xx_declare_of_platform_devices);/* list of the supported boards */ static char *board[]__initdata = { -"Keymile,KMETER1" , -"Keymile,kmpbec8321" , +"keymile,KMETER1" , +"keymile,kmpbec8321" ,NULL };
arch/powerpc/platforms/pseries/pci.c +8 -8
@@ -240,7 +240,7 @@ void __init pSeries_final_fixup(void)*/ static void fixup_winbond_82c105 (struct pci_dev * dev) { -int i; +struct resource *r;unsigned int reg;if (!machine_is (pseries))
@@ -251,14 +251,14 @@ static void fixup_winbond_82c105(struct pci_dev* dev)/* Enable LEGIRQ to use INTC instead of ISA interrupts */ pci_write_config_dword (dev,0x40 , reg | (1 <<11 )); -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; ++i) { +pci_dev_for_each_resource (dev, r) {/* zap the 2nd function of the winbond chip */ -if (dev->resource[i].flags &IORESOURCE_IO - && dev->bus->number ==0 && dev->devfn ==0x81 ) - dev->resource[i].flags &= ~IORESOURCE_IO ; -if (dev->resource[i].start ==0 && dev->resource[i].end) { - dev->resource[i].flags =0 ; - dev->resource[i].end =0 ; +if (dev->bus->number ==0 && dev->devfn ==0x81 && + r->flags &IORESOURCE_IO ) + r->flags &= ~IORESOURCE_IO ; +if (r->start ==0 && r->end) { + r->flags =0 ; + r->end =0 ; } } }
arch/riscv/kernel/stacktrace.c +19 -2
@@ -16,6 +16,22 @@#ifdef CONFIG_FRAME_POINTER +/* +* This disables KASAN checking when reading a value from another task's stack, +* since the other task could be running on another CPU and could have poisoned +* the stack in the meantime. +*/ +#define READ_ONCE_TASK_STACK (task, x) \ +({ \ + unsigned long val; \ + unsigned long addr = x; \ + if ((task) == current) \ + val = READ_ONCE(addr); \ + else \ + val = READ_ONCE_NOCHECK(addr); \ + val; \ +}) + extern asmlinkage void ret_from_exception(void);static inline int fp_is_valid (unsigned long fp,unsigned long sp)
@@ -68,8 +84,9 @@ void notrace walk_stackframe(struct task_struct *task, struct pt_regs *regs, fp = frame->ra; pc = regs->ra; }else { - fp = frame->fp; - pc =ftrace_graph_ret_addr (current, &graph_idx, frame->ra, + fp =READ_ONCE_TASK_STACK (task, frame->fp); + pc =READ_ONCE_TASK_STACK (task, frame->ra); + pc =ftrace_graph_ret_addr (current, &graph_idx, pc, &frame->ra);if (pc == (unsigned long )ret_from_exception) {if (unlikely (!__kernel_text_address (pc) || !fn (arg, pc)))
arch/s390/lib/xor.c +2 -2
@@ -29,8 +29,8 @@ static void xor_xc_2(unsigned long bytes, unsigned long * __restrict p1," j 3f\n" "2: xc 0(1,%1),0(%2)\n" "3:\n" - : : "d" (bytes), "a" (p1), "a" (p2) - : "0", "1", "cc", "memory"); + : "+d" (bytes), "+a" (p1), "+a" (p2) + : : "0", "1", "cc", "memory"); } static void xor_xc_3(unsigned long bytes, unsigned long * __restrict p1,
arch/sh/drivers/pci/pcie-sh7786.c +5 -5
@@ -140,12 +140,12 @@ static void sh7786_pci_fixup(struct pci_dev *dev)* Prevent enumeration of root complex resources. */ if (pci_is_root_bus (dev->bus) && dev->devfn ==0 ) { -int i; +struct resource *r; -for (i =0 ; i <DEVICE_COUNT_RESOURCE ; i++) { - dev->resource[i].start =0 ; - dev->resource[i].end =0 ; - dev->resource[i].flags =0 ; +pci_dev_for_each_resource (dev, r) { + r->start =0 ; + r->end =0 ; + r->flags =0 ; } } }
arch/sparc/kernel/leon_pci.c +2 -3
@@ -63,15 +63,14 @@ void leon_pci_init(struct platform_device *ofdev, struct leon_pci_info *info)int pcibios_enable_device (struct pci_dev *dev,int mask) { +struct resource *res;u16 cmd, oldcmd;int i;pci_read_config_word (dev,PCI_COMMAND , &cmd); oldcmd = cmd; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *res = &dev->resource[i]; - +pci_dev_for_each_resource (dev, res, i) {/* Only set up the requested stuff */ if (!(mask & (1 <<i)))continue ;
arch/sparc/kernel/pci.c +4 -6
@@ -664,11 +664,10 @@ static void pci_claim_bus_resources(struct pci_bus *bus)struct pci_dev *dev;list_for_each_entry (dev, &bus->devices, bus_list) { +struct resource *r;int i; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *r = &dev->resource[i]; - +pci_dev_for_each_resource (dev, r, i) {if (r->parent || !r->start || !r->flags)continue ;
@@ -725,15 +724,14 @@ struct pci_bus *pci_scan_one_pbm(struct pci_pbm_info *pbm,int pcibios_enable_device (struct pci_dev *dev,int mask) { +struct resource *res;u16 cmd, oldcmd;int i;pci_read_config_word (dev,PCI_COMMAND , &cmd); oldcmd = cmd; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *res = &dev->resource[i]; - +pci_dev_for_each_resource (dev, res, i) {/* Only set up the requested stuff */ if (!(mask & (1 <<i)))continue ;
arch/sparc/kernel/pcic.c +2 -3
@@ -643,15 +643,14 @@ void pcibios_fixup_bus(struct pci_bus *bus)int pcibios_enable_device (struct pci_dev *dev,int mask) { +struct resource *res;u16 cmd, oldcmd;int i;pci_read_config_word (dev,PCI_COMMAND , &cmd); oldcmd = cmd; -for (i =0 ; i <PCI_NUM_RESOURCES ; i++) { -struct resource *res = &dev->resource[i]; - +pci_dev_for_each_resource (dev, res, i) {/* Only set up the requested stuff */ if (!(mask & (1 <<i)))continue ;
arch/x86/boot/compressed/sev.c +1 -0
@@ -328,6 +328,7 @@ static void enforce_vmpl0(void)MSR_AMD64_SNP_VMSA_REG_PROTECTION | \MSR_AMD64_SNP_RESERVED_BIT13 | \MSR_AMD64_SNP_RESERVED_BIT15 | \ +MSR_AMD64_SNP_RESERVED_BITS18_22 | \ MSR_AMD64_SNP_RESERVED_MASK)/*
arch/x86/include/asm/efi.h +1 -1
@@ -162,7 +162,7 @@ extern void __init efi_apply_memmap_quirks(void);extern int __init efi_reuse_config (u64 tables,int nr_tables);extern void efi_delete_dummy_variable (void );extern void efi_crash_gracefully_on_page_fault (unsigned long phys_addr); -extern void efi_free_boot_services (void ); +extern void efi_unmap_boot_services (void );void efi_enter_mm (void );void efi_leave_mm (void );
arch/x86/include/asm/msr-index.h +4 -1
@@ -630,11 +630,14 @@#define MSR_AMD64_SNP_IBS_VIRT BIT_ULL(14)#define MSR_AMD64_SNP_VMSA_REG_PROTECTION BIT_ULL(16)#define MSR_AMD64_SNP_SMT_PROTECTION BIT_ULL(17) +#define MSR_AMD64_SNP_IBPB_ON_ENTRY_BIT 23 +#define MSR_AMD64_SNP_IBPB_ON_ENTRY BIT_ULL(MSR_AMD64_SNP_IBPB_ON_ENTRY_BIT)/* SNP feature bits reserved for future use. */ #define MSR_AMD64_SNP_RESERVED_BIT13 BIT_ULL(13)#define MSR_AMD64_SNP_RESERVED_BIT15 BIT_ULL(15) -#define MSR_AMD64_SNP_RESERVED_MASK GENMASK_ULL(63, 18) +#define MSR_AMD64_SNP_RESERVED_BITS18_22 GENMASK_ULL(22, 18) +#define MSR_AMD64_SNP_RESERVED_MASK GENMASK_ULL(63, 24)#define MSR_AMD64_VIRT_SPEC_CTRL 0xc001011f
arch/x86/kernel/apic/apic.c +6 -0
@@ -1958,6 +1958,7 @@ void __init check_x2apic(void)static inline void try_to_enable_x2apic (int remap_mode) { }static inline void __x2apic_enable (void ) { } +static inline void __x2apic_disable (void ) { }#endif /* !CONFIG_X86_X2APIC */ void __init enable_IR_x2apic (void )
@@ -2778,6 +2779,11 @@ static void lapic_resume(void)if (x2apic_mode) {__x2apic_enable (); }else { +if (x2apic_enabled ()) { +pr_warn_once ("x2apic: re-enabled by firmware during resume. Disabling\n" ); +__x2apic_disable (); + } +/* * Make sure the APICBASE points to the right address *
arch/x86/kernel/uprobes.c +24 -0
@@ -1097,3 +1097,27 @@ bool arch_uretprobe_is_alive(struct return_instance *ret, enum rp_check ctx,else return regs->sp <= ret->stack; } + +#ifdef CONFIG_IA32_EMULATION +unsigned long arch_uprobe_get_xol_area (void ) +{ +struct thread_info *ti =current_thread_info (); +unsigned long vaddr; + +/* +* HACK: we are not in a syscall, but x86 get_unmapped_area() paths +* ignore TIF_ADDR32 and rely on in_32bit_syscall() to calculate +* vm_unmapped_area_info.high_limit. +* +* The #ifdef above doesn't cover the CONFIG_X86_X32_ABI=y case, +* but in this case in_32bit_syscall() -> in_x32_syscall() always +* (falsely) returns true because ->orig_ax == -1. +*/ +if (test_thread_flag (TIF_ADDR32 )) + ti->status |=TS_COMPAT ; + vaddr =get_unmapped_area (NULL ,TASK_SIZE -PAGE_SIZE ,PAGE_SIZE ,0 ,0 ); + ti->status &= ~TS_COMPAT ; + +return vaddr; +} +#endif
arch/x86/kvm/svm/avic.c +6 -2
@@ -79,9 +79,10 @@ static void avic_activate_vmcb(struct vcpu_svm *svm) vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK |X2APIC_MODE_MASK ); vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK ; - vmcb->control.int_ctl |=AVIC_ENABLE_MASK ; +svm_clr_intercept (svm,INTERCEPT_CR8_WRITE ); +/* Note: * KVM can support hybrid-AVIC mode, where KVM emulates x2APIC * MSR accesses, while interrupt injection to a running vCPU
@@ -116,6 +117,9 @@ static void avic_deactivate_vmcb(struct vcpu_svm *svm) vmcb->control.int_ctl &= ~(AVIC_ENABLE_MASK |X2APIC_MODE_MASK ); vmcb->control.avic_physical_id &= ~AVIC_PHYSICAL_MAX_INDEX_MASK ; +if (!sev_es_guest (svm->vcpu.kvm)) +svm_set_intercept (svm,INTERCEPT_CR8_WRITE ); +/* * If running nested and the guest uses its own MSR bitmap, there * is no need to update L0's msr bitmap
@@ -245,7 +249,7 @@ void avic_init_vmcb(struct vcpu_svm *svm, struct vmcb *vmcb) vmcb->control.avic_physical_id = ppa &AVIC_HPA_MASK ; vmcb->control.avic_vapic_bar =APIC_DEFAULT_PHYS_BASE &VMCB_AVIC_APIC_BAR_MASK ; -if (kvm_apicv_activated (svm->vcpu.kvm)) +if (kvm_vcpu_apicv_active (&svm->vcpu))avic_activate_vmcb (svm);else avic_deactivate_vmcb (svm);
arch/x86/kvm/svm/svm.c +6 -5
@@ -1192,8 +1192,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu)svm_set_intercept (svm,INTERCEPT_CR0_WRITE );svm_set_intercept (svm,INTERCEPT_CR3_WRITE );svm_set_intercept (svm,INTERCEPT_CR4_WRITE ); -if (!kvm_vcpu_apicv_active (vcpu)) -svm_set_intercept (svm,INTERCEPT_CR8_WRITE ); +svm_set_intercept (svm,INTERCEPT_CR8_WRITE );set_dr_intercepts (svm);
@@ -1307,7 +1306,7 @@ static void init_vmcb(struct kvm_vcpu *vcpu)if (boot_cpu_has (X86_FEATURE_V_SPEC_CTRL ))set_msr_interception (vcpu, svm->msrpm,MSR_IA32_SPEC_CTRL ,1 ,1 ); -if (kvm_vcpu_apicv_active (vcpu)) +if (enable_apicv &&irqchip_in_kernel (vcpu->kvm))avic_init_vmcb (svm, vmcb);if (vgif) {
@@ -2690,9 +2689,11 @@ static int dr_interception(struct kvm_vcpu *vcpu)static int cr8_write_interception (struct kvm_vcpu *vcpu) { +u8 cr8_prev =kvm_get_cr8 (vcpu);int r; -u8 cr8_prev =kvm_get_cr8 (vcpu); +WARN_ON_ONCE (kvm_vcpu_apicv_active (vcpu)); +/* instruction emulation calls kvm_set_cr8() */ r =cr_interception (vcpu);if (lapic_in_kernel (vcpu))
@@ -2735,7 +2736,7 @@ static int svm_get_msr_feature(struct kvm_msr_entry *msr) msr->data = kvm_caps.supported_perf_cap;return 0 ;default : -return KVM_MSR_RET_INVALID ; +return KVM_MSR_RET_UNSUPPORTED ; }return 0 ;
arch/x86/kvm/vmx/vmx.c +1 -1
@@ -1889,7 +1889,7 @@ static int vmx_get_msr_feature(struct kvm_msr_entry *msr) msr->data = kvm_caps.supported_perf_cap;return 0 ;default : -return KVM_MSR_RET_INVALID ; +return KVM_MSR_RET_UNSUPPORTED ; } }
arch/x86/kvm/x86.c +62 -58
295 lines not on this page · raw message
arch/x86/kvm/x86.h +11 -4
@@ -459,11 +459,18 @@ bool kvm_msr_allowed(struct kvm_vcpu *vcpu, u32 index, u32 type);/* * Internal error codes that are used to indicate that MSR emulation encountered -* an error that should result in #GP in the guest, unless userspace -* handles it. +* an error that should result in #GP in the guest, unless userspace handles it. +* Note, '1', '0', and negative numbers are off limits, as they are used by KVM +* as part of KVM's lightly documented internal KVM_RUN return codes. +* +* UNSUPPORTED - The MSR isn't supported, either because it is completely +* unknown to KVM, or because the MSR should not exist according +* to the vCPU model. +* +* FILTERED - Access to the MSR is denied by a userspace MSR filter. */ -#define KVM_MSR_RET_INVALID 2/* in-kernel MSR emulation #GP condition */ -#define KVM_MSR_RET_FILTERED 3/* #GP due to userspace MSR filter */ +#define KVM_MSR_RET_UNSUPPORTED 2 +#define KVM_MSR_RET_FILTERED 3#define __cr4_reserved_bits (__cpu_has, __c) \ ({ \
arch/x86/platform/efi/efi.c +1 -1
@@ -811,7 +811,7 @@ static void __init __efi_enter_virtual_mode(void) }efi_check_for_embedded_firmwares (); -efi_free_boot_services (); +efi_unmap_boot_services ();if (!efi_is_mixed ())efi_native_runtime_setup ();
arch/x86/platform/efi/quirks.c +52 -3
89 lines not on this page · raw message
drivers/acpi/acpi_processor.c +8 -7
@@ -96,6 +96,10 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev) PCI_ANY_ID, PCI_ANY_ID, NULL);if (ide_dev) { errata.piix4.bmisx =pci_resource_start (ide_dev,4 ); +if (errata.piix4.bmisx) +dev_dbg (&ide_dev->dev, +"Bus master activity detection (BM-IDE) erratum enabled\n" ); +pci_dev_put (ide_dev); }
@@ -114,20 +118,17 @@ static int acpi_processor_errata_piix4(struct pci_dev *dev)if (isa_dev) {pci_read_config_byte (isa_dev,0x76 , &value1);pci_read_config_byte (isa_dev,0x77 , &value2); -if ((value1 &0x80 ) || (value2 &0x80 )) +if ((value1 &0x80 ) || (value2 &0x80 )) { errata.piix4.fdma =1 ; +dev_dbg (&isa_dev->dev, +"Type-F DMA livelock erratum (C3 disabled)\n" ); + }pci_dev_put (isa_dev); }break ; } -if (ide_dev) -dev_dbg (&ide_dev->dev,"Bus master activity detection (BM-IDE) erratum enabled\n" ); - -if (isa_dev) -dev_dbg (&isa_dev->dev,"Type-F DMA livelock erratum (C3 disabled)\n" ); -return 0 ; }
drivers/acpi/osi.c +13 -0
@@ -389,6 +389,19 @@ static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = { }, }, +/* +* The screen backlight turns off during udev device creation +* when returning true for _OSI("Windows 2009") +*/ + { + .callback = dmi_disable_osi_win7, + .ident = "Acer Aspire One D255", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Acer"), + DMI_MATCH(DMI_PRODUCT_NAME, "AOD255"), + }, + }, + /* * The wireless hotkey does not work on those machines when * returning true for _OSI("Windows 2012")
drivers/acpi/osl.c +1 -1
@@ -1656,7 +1656,7 @@ acpi_status __init acpi_os_initialize(void)* Use acpi_os_map_generic_address to pre-map the reset * register if it's in system memory. */ -void *rv; +void __iomem *rv; rv =acpi_os_map_generic_address (&acpi_gbl_FADT.reset_register); pr_debug("%s: Reset register mapping %s\n", __func__,
drivers/acpi/sleep.c +8 -0
@@ -372,6 +372,14 @@ static const struct dmi_system_id acpisleep_dmi_table[] __initconst = { DMI_MATCH(DMI_PRODUCT_NAME, "80E1"), }, }, + { + .callback = init_nvs_save_s3, + .ident = "Lenovo G70-35", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_NAME, "80Q5"), + }, + },/* * ThinkPad X1 Tablet(2016) cannot do suspend-to-idle using * the Low Power S0 Idle firmware interface (see
drivers/base/power/runtime.c +1 -0
@@ -1813,6 +1813,7 @@ void pm_runtime_reinit(struct device *dev)void pm_runtime_remove (struct device *dev) {__pm_runtime_disable (dev, false); +flush_work (&dev->power.work);pm_runtime_reinit (dev); }
drivers/base/property.c +13 -14
@@ -749,7 +749,18 @@ struct fwnode_handle * fwnode_get_next_child_node(const struct fwnode_handle *fwnode, struct fwnode_handle *child) { - return fwnode_call_ptr_op(fwnode, get_next_child_node, child); + struct fwnode_handle *next; + +if (IS_ERR_OR_NULL (fwnode)) +return NULL ; + +/* Try to find a child in primary fwnode */ + next =fwnode_call_ptr_op (fwnode, get_next_child_node, child); +if (next) +return next; + +/* When no more children in primary, continue with secondary */ +return fwnode_call_ptr_op (fwnode->secondary, get_next_child_node, child); }EXPORT_SYMBOL_GPL (fwnode_get_next_child_node);
@@ -793,19 +804,7 @@ EXPORT_SYMBOL_GPL(fwnode_get_next_available_child_node);struct fwnode_handle *device_get_next_child_node (const struct device *dev,struct fwnode_handle *child) { -const struct fwnode_handle *fwnode =dev_fwnode (dev); -struct fwnode_handle *next; - -if (IS_ERR_OR_NULL (fwnode)) -return NULL ; - -/* Try to find a child in primary fwnode */ - next =fwnode_get_next_child_node (fwnode, child); -if (next) -return next; - -/* When no more children in primary, continue with secondary */ -return fwnode_get_next_child_node (fwnode->secondary, child); +return fwnode_get_next_child_node (dev_fwnode (dev), child); }EXPORT_SYMBOL_GPL (device_get_next_child_node);
drivers/block/drbd/drbd_actlog.c +23 -30
82 lines not on this page · raw message
drivers/block/drbd/drbd_interval.h +4 -1
@@ -8,12 +8,15 @@struct drbd_interval {struct rb_node rb;sector_t sector;/* start sector of the interval */ -unsigned int size;/* size in bytes */ sector_t end;/* highest interval end in subtree */ +unsigned int size;/* size in bytes */ unsigned int local:1 /* local or remote request? */ ;unsigned int waiting:1 ;/* someone is waiting for completion */ unsigned int completed:1 ;/* this has been completed already; * ignore for conflict detection */ + +/* to resume a partially successful drbd_al_begin_io_nonblock(); */ +unsigned int partially_in_al_next_enr; };static inline void drbd_clear_interval (struct drbd_interval *i)
drivers/bluetooth/btqca.c +2 -0
@@ -826,6 +826,8 @@ int qca_uart_setup(struct hci_dev *hdev, uint8_t baudrate,*/ if (soc_type ==QCA_WCN3988 ) rom_ver = ((soc_ver &0x00000f00 ) >>0x05 ) | (soc_ver &0x0000000f ); +else if (soc_type ==QCA_WCN3998 ) + rom_ver = ((soc_ver &0x0000f000 ) >>0x07 ) | (soc_ver &0x0000000f );else rom_ver = ((soc_ver &0x00000f00 ) >>0x04 ) | (soc_ver &0x0000000f );
drivers/bus/omap-ocp2scp.c +4 -15
@@ -17,15 +17,6 @@#define OCP2SCP_TIMING 0x18#define SYNC2_MASK 0xf -static int ocp2scp_remove_devices (struct device *dev,void *c) -{ -struct platform_device *pdev =to_platform_device (dev); - -platform_device_unregister (pdev); - -return 0 ; -} -static int omap_ocp2scp_probe (struct platform_device *pdev) {int ret;
@@ -79,17 +70,15 @@ static int omap_ocp2scp_probe(struct platform_device *pdev)pm_runtime_disable (&pdev->dev); err0: -device_for_each_child (&pdev->dev,NULL , ocp2scp_remove_devices); +of_platform_depopulate (&pdev->dev);return ret; } -static int omap_ocp2scp_remove (struct platform_device *pdev) +static void omap_ocp2scp_remove (struct platform_device *pdev) {pm_runtime_disable (&pdev->dev); -device_for_each_child (&pdev->dev,NULL , ocp2scp_remove_devices); - -return 0 ; +of_platform_depopulate (&pdev->dev); }#ifdef CONFIG_OF
@@ -103,7 +92,7 @@ MODULE_DEVICE_TABLE(of, omap_ocp2scp_id_table);static struct platform_driver omap_ocp2scp_driver = { .probe = omap_ocp2scp_probe, - .remove = omap_ocp2scp_remove, + .remove_new = omap_ocp2scp_remove, .driver = { .name ="omap-ocp2scp" , .of_match_table =of_match_ptr (omap_ocp2scp_id_table),
drivers/clk/tegra/clk-tegra124-emc.c +1 -1
@@ -197,8 +197,8 @@ static struct tegra_emc *emc_ensure_emc_driver(struct tegra_clk_emc *tegra) tegra->emc_node =NULL ; tegra->emc =platform_get_drvdata (pdev); +put_device (&pdev->dev);if (!tegra->emc) { -put_device (&pdev->dev);pr_err ("%s: cannot find EMC driver\n" , __func__);return NULL ; }
drivers/cpuidle/cpuidle.c +0 -10
@@ -324,16 +324,6 @@ int cpuidle_enter_state(struct cpuidle_device *dev, struct cpuidle_driver *drv,int cpuidle_select (struct cpuidle_driver *drv,struct cpuidle_device *dev,bool *stop_tick) { -/* -* If there is only a single idle state (or none), there is nothing -* meaningful for the governor to choose. Skip the governor and -* always use state 0 with the tick running. -*/ -if (drv->state_count <=1 ) { - *stop_tick = false; -return 0 ; - } -return cpuidle_curr_governor->select (drv, dev, stop_tick); }
drivers/crypto/atmel-sha204a.c +3 -2
@@ -52,9 +52,10 @@ static int atmel_sha204a_rng_read_nonblocking(struct hwrng *rng, void *data, rng->priv =0 ; }else { work_data =kmalloc (sizeof (*work_data),GFP_ATOMIC ); -if (!work_data) +if (!work_data) { +atomic_dec (&i2c_priv->tfm_count);return -ENOMEM ; - + } work_data->ctx = i2c_priv; work_data->client = i2c_priv->client;
drivers/dma/mmp_pdma.c +6 -0
@@ -764,6 +764,7 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_chan *chan, {struct mmp_pdma_desc_sw *sw;u32 curr, residue =0 ; +unsigned long flags;bool passed = false;bool cyclic = chan->cyclic_first !=NULL ;
@@ -779,6 +780,8 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_chan *chan,else curr =readl (chan->phy->base +DSADR (chan->phy->idx)); +spin_lock_irqsave (&chan->desc_lock, flags); +list_for_each_entry (sw, &chan->chain_running, node) {u32 start, end, len;
@@ -822,6 +825,7 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_chan *chan,continue ;if (sw->async_tx.cookie == cookie) { +spin_unlock_irqrestore (&chan->desc_lock, flags);return residue; }else { residue =0 ;
@@ -829,6 +833,8 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_chan *chan, } } +spin_unlock_irqrestore (&chan->desc_lock, flags); +/* We should only get here in case of cyclic transactions */ return residue; }
drivers/firmware/arm_scpi.c +3 -2
@@ -18,6 +18,7 @@#include <linux/bitmap.h> #include <linux/bitfield.h> +#include <linux/cleanup.h> #include <linux/device.h> #include <linux/err.h> #include <linux/export.h>
@@ -945,13 +946,13 @@ static int scpi_probe(struct platform_device *pdev)int idx = scpi_drvinfo->num_chans;struct scpi_chan *pchan = scpi_drvinfo->channels + idx;struct mbox_client *cl = &pchan->cl; -struct device_node *shmem =of_parse_phandle (np,"shmem" , idx); + struct device_node *shmem __free(device_node) = +of_parse_phandle (np,"shmem" , idx);if (!of_match_node (shmem_of_match, shmem))return -ENXIO ; ret =of_address_to_resource (shmem,0 , &res); -of_node_put (shmem);if (ret) {dev_err (dev,"failed to get SCPI payload mem resource\n" );return ret;
drivers/firmware/efi/mokvar-table.c +1 -1
@@ -85,7 +85,7 @@ static struct kobject *mokvar_kobj;* as an alternative to ordinary EFI variables, due to platform-dependent * limitations. The memory occupied by this table is marked as reserved. * -* This routine must be called before efi_free_boot_services() in order +* This routine must be called before efi_unmap_boot_services() in order * to guarantee that it can mark the table as reserved. * * Implicit inputs:
drivers/gpu/drm/amd/amdgpu/amdgpu.h +1 -0
@@ -1071,6 +1071,7 @@ struct amdgpu_device {struct work_struct reset_work;bool job_hang; +bool dc_enabled; };static inline struct amdgpu_device *drm_to_adev (struct drm_device *ddev)
drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c +1 -1
@@ -857,7 +857,7 @@ int amdgpu_acpi_init(struct amdgpu_device *adev)struct amdgpu_atif *atif = &amdgpu_acpi_priv.atif;if (atif->notifications.brightness_change) { -if (amdgpu_device_has_dc_support (adev)) { +if (adev->dc_enabled) {#if defined(CONFIG_DRM_AMD_DC )struct amdgpu_display_manager *dm = &adev->dm;
drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c +5 -1
@@ -1371,7 +1371,10 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info, *ef =dma_fence_get (&info->eviction_fence->base); } - vm->process_info = *process_info; +if (cmpxchg (&vm->process_info,NULL , *process_info) !=NULL ) { + ret = -EINVAL ; + goto already_acquired; + }/* Validate page directory and attach eviction fence */ ret =amdgpu_bo_reserve (vm->root.bo, true);
@@ -1409,6 +1412,7 @@ static int init_kfd_vm(struct amdgpu_vm *vm, void **process_info,amdgpu_bo_unreserve (vm->root.bo); reserve_pd_fail: vm->process_info =NULL ; +already_acquired:if (info) {/* Two fence references: one in info and one in *ef */ dma_fence_put (&info->eviction_fence->base);
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c +3 -10
@@ -1244,7 +1244,7 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, fence = &p->jobs[i]->base.s_fence->scheduled; r =amdgpu_sync_fence (&leader->sync, fence);if (r) - goto error_cleanup; +return r; }if (p->gang_size >1 ) {
@@ -1270,7 +1270,8 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p, }if (r) { r = -EAGAIN ; - goto error_unlock; +mutex_unlock (&p->adev->notifier_lock); +return r; } p->fence =dma_fence_get (&leader->base.s_fence->finished);
@@ -1317,14 +1318,6 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,mutex_unlock (&p->adev->notifier_lock);mutex_unlock (&p->bo_list->bo_list_mutex);return 0 ; - -error_unlock: -mutex_unlock (&p->adev->notifier_lock); - -error_cleanup: -for (i =0 ; i < p->gang_size; ++i) -drm_sched_job_cleanup (&p->jobs[i]->base); -return r; }/* Cleanup the parser structure */
drivers/gpu/drm/amd/amdgpu/amdgpu_csa.c +38 -0
@@ -106,3 +106,41 @@ int amdgpu_map_static_csa(struct amdgpu_device *adev, struct amdgpu_vm *vm,ttm_eu_backoff_reservation (&ticket, &list);return 0 ; } + +int amdgpu_unmap_static_csa (struct amdgpu_device *adev,struct amdgpu_vm *vm, +struct amdgpu_bo *bo,struct amdgpu_bo_va *bo_va, +uint64_t csa_addr) +{ +struct ww_acquire_ctx ticket; +struct list_head list; +struct amdgpu_bo_list_entry pd; +struct ttm_validate_buffer csa_tv; +int r; + +INIT_LIST_HEAD (&list); +INIT_LIST_HEAD (&csa_tv.head); + csa_tv.bo = &bo->tbo; + csa_tv.num_shared =1 ; + +list_add (&csa_tv.head, &list); +amdgpu_vm_get_pd_bo (vm, &list, &pd); + + r =ttm_eu_reserve_buffers (&ticket, &list, true,NULL ); +if (r) { +DRM_ERROR ("failed to reserve CSA,PD BOs: err=%d\n" , r); +return r; + } + + r =amdgpu_vm_bo_unmap (adev, bo_va, csa_addr); +if (r) { +DRM_ERROR ("failed to do bo_unmap on static CSA, err=%d\n" , r); +ttm_eu_backoff_reservation (&ticket, &list); +return r; + } + +amdgpu_vm_bo_del (adev, bo_va); + +ttm_eu_backoff_reservation (&ticket, &list); + +return 0 ; +}
drivers/gpu/drm/amd/amdgpu/amdgpu_csa.h +3 -0
@@ -34,6 +34,9 @@ int amdgpu_allocate_static_csa(struct amdgpu_device *adev, struct amdgpu_bo **boint amdgpu_map_static_csa (struct amdgpu_device *adev,struct amdgpu_vm *vm,struct amdgpu_bo *bo,struct amdgpu_bo_va **bo_va,uint64_t csa_addr,uint32_t size); +int amdgpu_unmap_static_csa (struct amdgpu_device *adev,struct amdgpu_vm *vm, +struct amdgpu_bo *bo,struct amdgpu_bo_va *bo_va, +uint64_t csa_addr);void amdgpu_free_static_csa (struct amdgpu_bo **bo);#endif
drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +1 -1
@@ -1981,7 +1981,7 @@ int amdgpu_debugfs_init(struct amdgpu_device *adev)amdgpu_ta_if_debugfs_init (adev);#if defined(CONFIG_DRM_AMD_DC ) -if (amdgpu_device_has_dc_support (adev)) +if (adev->dc_enabled)dtn_debugfs_init (adev);#endif
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +20 -16
@@ -2182,8 +2182,10 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)break ;default : r =amdgpu_discovery_set_ip_blocks (adev); -if (r) +if (r) { + adev->num_ip_blocks =0 ;return r; + }break ; }
@@ -4402,25 +4404,27 @@ int amdgpu_device_resume(struct drm_device *dev, bool fbcon)amdgpu_ras_resume (adev); -/* -* Most of the connector probing functions try to acquire runtime pm -* refs to ensure that the GPU is powered on when connector polling is -* performed. Since we're calling this from a runtime PM callback, -* trying to acquire rpm refs will cause us to deadlock. -* -* Since we're guaranteed to be holding the rpm lock, it's safe to -* temporarily disable the rpm helpers so this doesn't deadlock us. -*/ +if (adev->mode_info.num_crtc) { +/* +* Most of the connector probing functions try to acquire runtime pm +* refs to ensure that the GPU is powered on when connector polling is +* performed. Since we're calling this from a runtime PM callback, +* trying to acquire rpm refs will cause us to deadlock. +* +* Since we're guaranteed to be holding the rpm lock, it's safe to +* temporarily disable the rpm helpers so this doesn't deadlock us. +*/ #ifdef CONFIG_PM - dev->dev->power.disable_depth++; + dev->dev->power.disable_depth++;#endif -if (!amdgpu_device_has_dc_support (adev)) -drm_helper_hpd_irq_event (dev); -else -drm_kms_helper_hotplug_event (dev); +if (!adev->dc_enabled) +drm_helper_hpd_irq_event (dev); +else +drm_kms_helper_hotplug_event (dev);#ifdef CONFIG_PM - dev->dev->power.disable_depth--; + dev->dev->power.disable_depth--;#endif + } adev->in_suspend = false;if (adev->enable_mes)
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +2 -2
@@ -534,7 +534,7 @@ uint32_t amdgpu_display_supported_domains(struct amdgpu_device *adev,*/ if ((bo_flags &AMDGPU_GEM_CREATE_CPU_GTT_USWC ) &&amdgpu_bo_support_uswc (bo_flags) && -amdgpu_device_asic_has_dc_support (adev->asic_type) && + adev->dc_enabled && adev->mode_info.gpu_vm_support) domain |=AMDGPU_GEM_DOMAIN_GTT ;#endif
@@ -1330,7 +1330,7 @@ int amdgpu_display_modeset_create_props(struct amdgpu_device *adev)"dither" , amdgpu_dither_enum_list, sz); -if (amdgpu_device_has_dc_support (adev)) { +if (adev->dc_enabled) { adev->mode_info.abm_level_property =drm_property_create_range (adev_to_drm (adev),0 ,"abm level" ,0 ,4 );
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +1 -1
@@ -2530,7 +2530,7 @@ static int amdgpu_runtime_idle_check_display(struct device *dev)if (ret)return ret; -if (amdgpu_device_has_dc_support (adev)) { +if (adev->dc_enabled) {struct drm_crtc *crtc;drm_for_each_crtc (crtc, drm_dev) {
drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c +9 -5
@@ -652,11 +652,15 @@ void amdgpu_gmc_get_vbios_allocations(struct amdgpu_device *adev)case CHIP_RENOIR : adev->mman.keep_stolen_vga_memory = true;break ; -case CHIP_YELLOW_CARP : -if (amdgpu_discovery ==0 ) { - adev->mman.stolen_reserved_offset =0x1ffb0000 ; - adev->mman.stolen_reserved_size =64 *PAGE_SIZE ; - } +case CHIP_POLARIS10 : +case CHIP_POLARIS11 : +case CHIP_POLARIS12 : +/* MacBookPros with switchable graphics put VRAM at 0 when +* the iGPU is enabled which results in cursor issues if +* the cursor ends up at 0. Reserve vram at 0 in that case. +*/ +if (adev->gmc.vram_start ==0 ) + adev->mman.keep_stolen_vga_memory = true;break ;default : adev->mman.keep_stolen_vga_memory = false;
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +6 -6
@@ -79,7 +79,7 @@ void amdgpu_driver_unload_kms(struct drm_device *dev) {struct amdgpu_device *adev =drm_to_adev (dev); -if (adev ==NULL ) +if (adev ==NULL || !adev->num_ip_blocks)return ;amdgpu_unregister_gpu_instance (adev);
@@ -1244,12 +1244,12 @@ void amdgpu_driver_postclose_kms(struct drm_device *dev,if (amdgpu_device_ip_get_ip_block (adev,AMD_IP_BLOCK_TYPE_VCE ) !=NULL )amdgpu_vce_free_handles (adev, file_priv); -if (amdgpu_mcbp ||amdgpu_sriov_vf (adev)) { -/* TODO: how to handle reserve failure */ -BUG_ON (amdgpu_bo_reserve (adev->virt.csa_obj, true)); -amdgpu_vm_bo_del (adev, fpriv->csa_va); +if (fpriv->csa_va) { +uint64_t csa_addr =amdgpu_csa_vaddr (adev) &AMDGPU_GMC_HOLE_MASK ; + +WARN_ON (amdgpu_unmap_static_csa (adev, &fpriv->vm, adev->virt.csa_obj, + fpriv->csa_va, csa_addr)); fpriv->csa_va =NULL ; -amdgpu_bo_unreserve (adev->virt.csa_obj); } pasid = fpriv->vm.pasid;
drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c +6 -3
@@ -154,14 +154,17 @@ mmhub_v2_0_print_l2_protection_fault_status(struct amdgpu_device *adev,switch (adev->ip_versions[MMHUB_HWIP ][0 ]) {case IP_VERSION (2 ,0 ,0 ):case IP_VERSION (2 ,0 ,2 ): - mmhub_cid = mmhub_client_ids_navi1x[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_navi1x) ? + mmhub_client_ids_navi1x[cid][rw] :NULL ;break ;case IP_VERSION (2 ,1 ,0 ):case IP_VERSION (2 ,1 ,1 ): - mmhub_cid = mmhub_client_ids_sienna_cichlid[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_sienna_cichlid) ? + mmhub_client_ids_sienna_cichlid[cid][rw] :NULL ;break ;case IP_VERSION (2 ,1 ,2 ): - mmhub_cid = mmhub_client_ids_beige_goby[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_beige_goby) ? + mmhub_client_ids_beige_goby[cid][rw] :NULL ;break ;default : mmhub_cid =NULL ;
drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c +2 -1
@@ -94,7 +94,8 @@ mmhub_v2_3_print_l2_protection_fault_status(struct amdgpu_device *adev,case IP_VERSION (2 ,3 ,0 ):case IP_VERSION (2 ,4 ,0 ):case IP_VERSION (2 ,4 ,1 ): - mmhub_cid = mmhub_client_ids_vangogh[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_vangogh) ? + mmhub_client_ids_vangogh[cid][rw] :NULL ;break ;default : mmhub_cid =NULL ;
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0.c +2 -1
@@ -110,7 +110,8 @@ mmhub_v3_0_print_l2_protection_fault_status(struct amdgpu_device *adev,switch (adev->ip_versions[MMHUB_HWIP ][0 ]) {case IP_VERSION (3 ,0 ,0 ):case IP_VERSION (3 ,0 ,1 ): - mmhub_cid = mmhub_client_ids_v3_0_0[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_v3_0_0) ? + mmhub_client_ids_v3_0_0[cid][rw] :NULL ;break ;default : mmhub_cid =NULL ;
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_1.c +2 -1
@@ -117,7 +117,8 @@ mmhub_v3_0_1_print_l2_protection_fault_status(struct amdgpu_device *adev,switch (adev->ip_versions[MMHUB_HWIP ][0 ]) {case IP_VERSION (3 ,0 ,1 ): - mmhub_cid = mmhub_client_ids_v3_0_1[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_v3_0_1) ? + mmhub_client_ids_v3_0_1[cid][rw] :NULL ;break ;default : mmhub_cid =NULL ;
drivers/gpu/drm/amd/amdgpu/mmhub_v3_0_2.c +2 -1
@@ -108,7 +108,8 @@ mmhub_v3_0_2_print_l2_protection_fault_status(struct amdgpu_device *adev,"MMVM_L2_PROTECTION_FAULT_STATUS:0x%08X\n" , status); - mmhub_cid = mmhub_client_ids_v3_0_2[cid][rw]; + mmhub_cid = cid <ARRAY_SIZE (mmhub_client_ids_v3_0_2) ? + mmhub_client_ids_v3_0_2[cid][rw] :NULL ;dev_err (adev->dev,"\t Faulty UTCL2 client ID: %s (0x%x)\n" , mmhub_cid ? mmhub_cid :"unknown" , cid); dev_err(adev->dev, "\t MORE_FAULTS: 0x%lx\n",
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +1 -0
@@ -4842,6 +4842,7 @@ static int dm_early_init(void *handle)adev_to_drm (adev)->dev, &dev_attr_s3_debug);#endif + adev->dc_enabled = true;return 0 ; }
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_pp_smu.c +1 -0
@@ -97,6 +97,7 @@ bool dm_pp_apply_display_requirements(const struct dm_pp_single_disp_config *dc_cfg = &pp_display_cfg->disp_configs[i]; adev->pm.pm_display_cfg.displays[i].controller_id = dc_cfg->pipe_idx +1 ; + adev->pm.pm_display_cfg.displays[i].pixel_clock = dc_cfg->pixel_clock; }amdgpu_dpm_display_configuration_change (adev, &adev->pm.pm_display_cfg);
drivers/gpu/drm/amd/display/dc/clk_mgr/dce110/dce110_clk_mgr.c +1 -1
@@ -164,7 +164,7 @@ void dce110_fill_display_configs( stream->link->cur_link_settings.link_rate; cfg->link_settings.link_spread = stream->link->cur_link_settings.link_spread; - cfg->sym_clock = stream->phy_pix_clk; + cfg->pixel_clock = stream->phy_pix_clk;/* Round v_refresh*/ cfg->v_refresh = stream->timing.pix_clk_100hz *100 ; cfg->v_refresh /= stream->timing.h_total;
drivers/gpu/drm/amd/display/dc/core/dc_stream.c +1 -1
@@ -165,7 +165,7 @@ struct dc_stream_state *dc_create_stream_for_sink(if (sink ==NULL )return NULL ; - stream =kzalloc (sizeof (struct dc_stream_state ),GFP_KERNEL ); + stream =kzalloc (sizeof (struct dc_stream_state ),GFP_ATOMIC );if (stream ==NULL ) goto alloc_fail;
drivers/gpu/drm/amd/display/dc/dm_services_types.h +1 -1
@@ -127,7 +127,7 @@ struct dm_pp_single_disp_config {uint32_t src_height;uint32_t src_width;uint32_t v_refresh; -uint32_t sym_clock;/* HDMI only */ +uint32_t pixel_clock;/* Pixel clock in KHz (for HDMI only: normalized) */ struct dc_link_settings link_settings;/* DP only */ };
drivers/gpu/drm/amd/include/dm_pp_interface.h +1 -0
@@ -66,6 +66,7 @@ struct single_display_configurationuint32_t view_resolution_cy;enum amd_pp_display_config_type displayconfigtype;uint32_t vertical_refresh;/* for active display */ +uint32_t pixel_clock;/* Pixel clock in KHz (for HDMI only: normalized) */ };#define MAX_NUM_DISPLAY 32
drivers/gpu/drm/amd/pm/amdgpu_dpm_internal.c +67 -0
70 lines not on this page · raw message
drivers/gpu/drm/amd/pm/inc/amdgpu_dpm_internal.h +2 -0
@@ -29,4 +29,6 @@ u32 amdgpu_dpm_get_vblank_time(struct amdgpu_device *adev);u32 amdgpu_dpm_get_vrefresh (struct amdgpu_device *adev); +void amdgpu_dpm_get_display_cfg (struct amdgpu_device *adev); +#endif
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c +2 -2
@@ -2312,7 +2312,7 @@ static void kv_apply_state_adjust_rules(struct amdgpu_device *adev,if (pi->sys_info.nb_dpm_enable) { force_high = (mclk >= pi->sys_info.nbp_memory_clock[3 ]) || - pi->video_start || (adev->pm.dpm.new_active_crtc_count >=3 ) || + pi->video_start || (adev->pm.pm_display_cfg.num_display >=3 ) || pi->disable_nb_ps3_in_battery; ps->dpm0_pg_nb_ps_lo = force_high ?0x2 :0x3 ; ps->dpm0_pg_nb_ps_hi =0x2 ;
@@ -2371,7 +2371,7 @@ static int kv_calculate_nbps_level_settings(struct amdgpu_device *adev)return 0 ; force_high = ((mclk >= pi->sys_info.nbp_memory_clock[3 ]) || - (adev->pm.dpm.new_active_crtc_count >=3 ) || pi->video_start); + (adev->pm.pm_display_cfg.num_display >=3 ) || pi->video_start);if (force_high) {for (i = pi->lowest_valid; i <= pi->highest_valid; i++)
drivers/gpu/drm/amd/pm/legacy-dpm/legacy_dpm.c +3 -3
@@ -797,8 +797,7 @@ static struct amdgpu_ps *amdgpu_dpm_pick_power_state(struct amdgpu_device *adev,int i;struct amdgpu_ps *ps;u32 ui_class; -bool single_display = (adev->pm.dpm.new_active_crtc_count <2 ) ? - true : false; +bool single_display = adev->pm.pm_display_cfg.num_display <2 ;/* check if the vblank period is too short to adjust the mclk */ if (single_display && adev->powerplay.pp_funcs->vblank_too_short) {
@@ -1003,7 +1002,8 @@ void amdgpu_legacy_dpm_compute_clocks(void *handle) {struct amdgpu_device *adev = (struct amdgpu_device *)handle; -amdgpu_dpm_get_active_displays (adev); +if (!adev->dc_enabled) +amdgpu_dpm_get_display_cfg (adev);amdgpu_dpm_change_power_state_locked (adev); }
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c +25 -44
162 lines not on this page · raw message
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c +2 -11
@@ -1567,17 +1567,8 @@ static void pp_pm_compute_clocks(void *handle)struct pp_hwmgr *hwmgr = handle;struct amdgpu_device *adev = hwmgr->adev; -if (!amdgpu_device_has_dc_support (adev)) { -amdgpu_dpm_get_active_displays (adev); - adev->pm.pm_display_cfg.num_display = adev->pm.dpm.new_active_crtc_count; - adev->pm.pm_display_cfg.vrefresh =amdgpu_dpm_get_vrefresh (adev); - adev->pm.pm_display_cfg.min_vblank_time =amdgpu_dpm_get_vblank_time (adev); -/* we have issues with mclk switching with -* refresh rates over 120 hz on the non-DC code. -*/ -if (adev->pm.pm_display_cfg.vrefresh >120 ) - adev->pm.pm_display_cfg.min_vblank_time =0 ; - +if (!adev->dc_enabled) { +amdgpu_dpm_get_display_cfg (adev);pp_display_configuration_change (handle, &adev->pm.pm_display_cfg); }
drivers/gpu/drm/bridge/ti-sn65dsi83.c +7 -6
@@ -303,9 +303,9 @@ static u8 sn65dsi83_get_dsi_range(struct sn65dsi83 *ctx,* DSI_CLK = mode clock * bpp / dsi_data_lanes / 2 * the 2 is there because the bus is DDR. */ -return DIV_ROUND_UP (clamp ((unsigned int )mode->clock * -mipi_dsi_pixel_format_to_bpp (ctx->dsi->format) / - ctx->dsi->lanes /2 ,40000U ,500000U ),5000U ); +return clamp ((unsigned int )mode->clock * +mipi_dsi_pixel_format_to_bpp (ctx->dsi->format) / + ctx->dsi->lanes /2 ,40000U ,500000U ) /5000U ; }static u8 sn65dsi83_get_dsi_div (struct sn65dsi83 *ctx)
@@ -325,6 +325,7 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge, struct drm_bridge_state *old_bridge_state) {struct sn65dsi83 *ctx =bridge_to_sn65dsi83 (bridge); +const unsigned int dual_factor = ctx->lvds_dual_link ?2 :1 ;struct drm_atomic_state *state = old_bridge_state->base.state;const struct drm_bridge_state *bridge_state;const struct drm_crtc_state *crtc_state;
@@ -452,18 +453,18 @@ static void sn65dsi83_atomic_pre_enable(struct drm_bridge *bridge,/* 32 + 1 pixel clock to ensure proper operation */ le16val =cpu_to_le16 (32 +1 );regmap_bulk_write (ctx->regmap,REG_VID_CHA_SYNC_DELAY_LOW , &le16val,2 ); - le16val =cpu_to_le16 (mode->hsync_end - mode->hsync_start); + le16val =cpu_to_le16 ((mode->hsync_end - mode->hsync_start) / dual_factor);regmap_bulk_write (ctx->regmap,REG_VID_CHA_HSYNC_PULSE_WIDTH_LOW , &le16val,2 ); le16val =cpu_to_le16 (mode->vsync_end - mode->vsync_start);regmap_bulk_write (ctx->regmap,REG_VID_CHA_VSYNC_PULSE_WIDTH_LOW , &le16val,2 );regmap_write (ctx->regmap,REG_VID_CHA_HORIZONTAL_BACK_PORCH , - mode->htotal - mode->hsync_end); + (mode->htotal - mode->hsync_end) / dual_factor);regmap_write (ctx->regmap,REG_VID_CHA_VERTICAL_BACK_PORCH , mode->vtotal - mode->vsync_end);regmap_write (ctx->regmap,REG_VID_CHA_HORIZONTAL_FRONT_PORCH , - mode->hsync_start - mode->hdisplay); + (mode->hsync_start - mode->hdisplay) / dual_factor);regmap_write (ctx->regmap,REG_VID_CHA_VERTICAL_FRONT_PORCH , mode->vsync_start - mode->vdisplay);regmap_write (ctx->regmap,REG_VID_CHA_TEST_PATTERN ,0x00 );
drivers/gpu/drm/bridge/ti-sn65dsi86.c +116 -2
206 lines not on this page · raw message
drivers/gpu/drm/drm_file.c +4 -1
@@ -239,6 +239,7 @@ static void drm_events_release(struct drm_file *file_priv)void drm_file_free (struct drm_file *file) {struct drm_device *dev; +int idx;if (!file)return ;
@@ -264,9 +265,11 @@ void drm_file_free(struct drm_file *file)drm_events_release (file); -if (drm_core_check_feature (dev,DRIVER_MODESET )) { +if (drm_core_check_feature (dev,DRIVER_MODESET ) && +drm_dev_enter (dev, &idx)) {drm_fb_release (file);drm_property_destroy_user_blobs (dev, file); +drm_dev_exit (idx); }if (drm_core_check_feature (dev,DRIVER_SYNCOBJ ))
drivers/gpu/drm/drm_mode_config.c +6 -3
@@ -544,10 +544,13 @@ void drm_mode_config_cleanup(struct drm_device *dev)*/ WARN_ON (!list_empty (&dev->mode_config.fb_list));list_for_each_entry_safe (fb, fbt, &dev->mode_config.fb_list, head) { -struct drm_printer p =drm_debug_printer ("[leaked fb]" ); +if (list_empty (&fb->filp_head) ||drm_framebuffer_read_refcount (fb) >1 ) { +struct drm_printer p =drm_debug_printer ("[leaked fb]" ); -drm_printf (&p,"framebuffer[%u]:\n" , fb->base.id); -drm_framebuffer_print_info (&p,1 , fb); +drm_printf (&p,"framebuffer[%u]:\n" , fb->base.id); +drm_framebuffer_print_info (&p,1 , fb); + } +list_del_init (&fb->filp_head);drm_framebuffer_free (&fb->base.refcount); }
drivers/gpu/drm/exynos/exynos_drm_drv.h +1 -0
@@ -201,6 +201,7 @@ struct exynos_drm_private {struct device *g2d_dev;struct device *dma_dev; +struct device *vidi_dev;void *mapping;/* for atomic commit */
drivers/gpu/drm/exynos/exynos_drm_vidi.c +59 -13
203 lines not on this page · raw message
drivers/gpu/drm/i915/gt/intel_engine_cs.c +2 -1
@@ -1798,7 +1798,8 @@ void intel_engines_reset_default_submission(struct intel_gt *gt)if (engine->sanitize) engine->sanitize (engine); - engine->set_default_submission (engine); +if (engine->set_default_submission) + engine->set_default_submission (engine); } }
drivers/gpu/drm/logicvc/logicvc_drm.c +2 -2
@@ -90,7 +90,6 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)struct device *dev = drm_dev->dev;struct device_node *of_node = dev->of_node;struct logicvc_drm_config *config = &logicvc->config; -struct device_node *layers_node;int ret; logicvc_of_property_parse_bool(of_node, LOGICVC_OF_PROPERTY_DITHERING,
@@ -126,7 +125,8 @@ static int logicvc_drm_config_parse(struct logicvc_drm *logicvc)if (ret)return ret; - layers_node =of_get_child_by_name (of_node,"layers" ); + struct device_node *layers_node __free(device_node) = +of_get_child_by_name (of_node,"layers" );if (!layers_node) {drm_err (drm_dev,"Missing non-optional layers node\n" );return -EINVAL ;
drivers/gpu/drm/msm/msm_gpummu.c +1 -1
@@ -76,7 +76,7 @@ static void msm_gpummu_destroy(struct msm_mmu *mmu) {struct msm_gpummu *gpummu =to_msm_gpummu (mmu); -dma_free_attrs (mmu->dev,TABLE_SIZE , gpummu->table, gpummu->pt_base, +dma_free_attrs (mmu->dev,TABLE_SIZE +32 , gpummu->table, gpummu->pt_base,DMA_ATTR_FORCE_CONTIGUOUS );kfree (gpummu);
drivers/gpu/drm/nouveau/nouveau_connector.c +3 -0
@@ -1210,6 +1210,9 @@ nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)u8 size = msg->size;int ret; +if (pm_runtime_suspended (nv_connector->base.dev->dev)) +return -EBUSY ; + nv_encoder =find_encoder (&nv_connector->base,DCB_OUTPUT_DP );if (!nv_encoder || !(aux = nv_encoder->aux))return -ENODEV ;
drivers/gpu/drm/radeon/si_dpm.c +3 -1
@@ -2959,9 +2959,11 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,if (rdev->family ==CHIP_HAINAN ) {if ((rdev->pdev->revision ==0x81 ) || (rdev->pdev->revision ==0xC3 ) || + (rdev->pdev->device ==0x6660 ) || (rdev->pdev->device ==0x6664 ) || (rdev->pdev->device ==0x6665 ) || - (rdev->pdev->device ==0x6667 )) { + (rdev->pdev->device ==0x6667 ) || + (rdev->pdev->device ==0x666F )) { max_sclk =75000 ; } if ((rdev->pdev->revision == 0xC3) ||
drivers/gpu/drm/tegra/dsi.c +2 -4
@@ -1539,11 +1539,9 @@ static int tegra_dsi_ganged_probe(struct tegra_dsi *dsi)return -EPROBE_DEFER ; dsi->slave =platform_get_drvdata (gangster); - -if (!dsi->slave) { -put_device (&gangster->dev); +put_device (&gangster->dev); +if (!dsi->slave)return -EPROBE_DEFER ; - } dsi->slave->master = dsi; }
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +2 -2
@@ -1156,7 +1156,7 @@ static int vmw_translate_mob_ptr(struct vmw_private *dev_priv, ret =vmw_user_bo_lookup (sw_context->filp, handle, &vmw_bo);if (ret !=0 ) {drm_dbg (&dev_priv->drm,"Could not find or use MOB buffer.\n" ); -return PTR_ERR (vmw_bo); +return ret; } ret =vmw_validation_add_bo (sw_context->ctx, vmw_bo, true, false); tmp_bo = vmw_bo;
@@ -1211,7 +1211,7 @@ static int vmw_translate_guest_ptr(struct vmw_private *dev_priv, ret =vmw_user_bo_lookup (sw_context->filp, handle, &vmw_bo);if (ret !=0 ) {drm_dbg (&dev_priv->drm,"Could not find or use GMR region.\n" ); -return PTR_ERR (vmw_bo); +return ret; } ret =vmw_validation_add_bo (sw_context->ctx, vmw_bo, false, false); tmp_bo = vmw_bo;
drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c +8 -1
@@ -274,6 +274,13 @@ int vmw_bo_dirty_add(struct vmw_buffer_object *vbo)return ret; } +static void vmw_bo_dirty_free (struct kref *kref) +{ + struct vmw_bo_dirty *dirty = container_of(kref, struct vmw_bo_dirty, ref_count); + +kvfree (dirty); +} +/** * vmw_bo_dirty_release - Release a dirty-tracking user from a buffer object * @vbo: The buffer object
@@ -288,7 +295,7 @@ void vmw_bo_dirty_release(struct vmw_buffer_object *vbo) {struct vmw_bo_dirty *dirty = vbo->dirty; -if (dirty &&kref_put (&dirty->ref_count, (void *)kvfree)) +if (dirty &&kref_put (&dirty->ref_count, vmw_bo_dirty_free)) vbo->dirty =NULL ; }
drivers/hid/hid-cmedia.c +1 -1
@@ -99,7 +99,7 @@ static int cmhid_raw_event(struct hid_device *hid, struct hid_report *report, {struct cmhid *cm =hid_get_drvdata (hid); -if (len !=CM6533_JD_RAWEV_LEN ) +if (len !=CM6533_JD_RAWEV_LEN || !(hid->claimed &HID_CLAIMED_INPUT )) goto out;if (memcmp (data+CM6533_JD_SFX_OFFSET , ji_sfx,sizeof (ji_sfx))) goto out;
drivers/hid/hid-creative-sb0540.c +1 -1
@@ -153,7 +153,7 @@ static int creative_sb0540_raw_event(struct hid_device *hid,u64 code, main_code;int key; -if (len !=6 ) +if (len !=6 || !(hid->claimed &HID_CLAIMED_INPUT ))return 0 ;/* From daemons/hw_hiddev.c sb0540_rec() in lirc */
drivers/hid/hid-zydacron.c +1 -1
@@ -114,7 +114,7 @@ static int zc_raw_event(struct hid_device *hdev, struct hid_report *report,unsigned key;unsigned short index; -if (report->id == data[0 ]) { +if (report->id == data[0 ] && (hdev->claimed &HID_CLAIMED_INPUT )) {/* break keys */ for (index =0 ; index <4 ; index++) {
drivers/hwmon/max16065.c +13 -13
@@ -151,27 +151,27 @@ static struct max16065_data *max16065_update_device(struct device *dev)int i;for (i =0 ; i < data->num_adc; i++) - data->adc[i] - =max16065_read_adc (client,MAX16065_ADC (i)); +WRITE_ONCE (data->adc[i], +max16065_read_adc (client,MAX16065_ADC (i)));if (data->have_current) { - data->adc[MAX16065_NUM_ADC ] - =max16065_read_adc (client,MAX16065_CSP_ADC ); - data->curr_sense - =i2c_smbus_read_byte_data (client, -MAX16065_CURR_SENSE ); +WRITE_ONCE (data->adc[MAX16065_NUM_ADC ], +max16065_read_adc (client,MAX16065_CSP_ADC )); +WRITE_ONCE (data->curr_sense, +i2c_smbus_read_byte_data (client,MAX16065_CURR_SENSE )); }for (i =0 ; i <2 ; i++) - data->fault[i] - =i2c_smbus_read_byte_data (client,MAX16065_FAULT (i)); +WRITE_ONCE (data->fault[i], +i2c_smbus_read_byte_data (client,MAX16065_FAULT (i)));/* * MAX16067 and MAX16068 have separate undervoltage and * overvoltage alarm bits. Squash them together. */ if (data->chip == max16067 || data->chip == max16068) - data->fault[0 ] |= data->fault[1 ]; +WRITE_ONCE (data->fault[0 ], + data->fault[0 ] | data->fault[1 ]); data->last_updated = jiffies; data->valid = true;
@@ -185,7 +185,7 @@ static ssize_t max16065_alarm_show(struct device *dev, {struct sensor_device_attribute_2 *attr2 =to_sensor_dev_attr_2 (da);struct max16065_data *data =max16065_update_device (dev); -int val = data->fault[attr2->nr]; +int val =READ_ONCE (data->fault[attr2->nr]);if (val <0 )return val;
@@ -203,7 +203,7 @@ static ssize_t max16065_input_show(struct device *dev, {struct sensor_device_attribute *attr =to_sensor_dev_attr (da);struct max16065_data *data =max16065_update_device (dev); -int adc = data->adc[attr->index]; +int adc =READ_ONCE (data->adc[attr->index]);if (unlikely (adc <0 ))return adc;
@@ -216,7 +216,7 @@ static ssize_t max16065_current_show(struct device *dev, struct device_attribute *da, char *buf) { struct max16065_data *data = max16065_update_device(dev); -int curr_sense = data->curr_sense; +int curr_sense =READ_ONCE (data->curr_sense);if (unlikely (curr_sense <0 ))return curr_sense;
drivers/hwmon/pmbus/isl68137.c +5 -2
@@ -80,8 +80,11 @@ static ssize_t isl68137_avs_enable_show_page(struct i2c_client *client, {int val =pmbus_read_byte_data (client, page,PMBUS_OPERATION ); -return sprintf (buf,"%d\n" , - (val &ISL68137_VOUT_AVS ) ==ISL68137_VOUT_AVS ?1 :0 ); +if (val <0 ) +return val; + +return sysfs_emit (buf,"%d\n" , + (val &ISL68137_VOUT_AVS ) ==ISL68137_VOUT_AVS ); } static ssize_t isl68137_avs_enable_store_page(struct i2c_client *client,
drivers/hwmon/pmbus/q54sj108a2.c +10 -9
@@ -77,7 +77,8 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,int idx = *idxp;struct q54sj108a2_data *psu =to_psu (idxp, idx);char data[I2C_SMBUS_BLOCK_MAX +2 ] = {0 }; -char data_char[I2C_SMBUS_BLOCK_MAX +2 ] = {0 }; +char data_char[I2C_SMBUS_BLOCK_MAX *2 +2 ] = {0 }; +char *out = data;char *res;switch (idx) {
@@ -148,27 +149,27 @@ static ssize_t q54sj108a2_debugfs_read(struct file *file, char __user *buf,if (rc <0 )return rc; - res =bin2hex (data, data_char,32 ); - rc = res - data; - + res =bin2hex (data_char, data, rc); + rc = res - data_char; + out = data_char;break ;case Q54SJ108A2_DEBUGFS_FLASH_KEY : rc =i2c_smbus_read_block_data (psu->client,PMBUS_FLASH_KEY_WRITE , data);if (rc <0 )return rc; - res =bin2hex (data, data_char,4 ); - rc = res - data; - + res =bin2hex (data_char, data, rc); + rc = res - data_char; + out = data_char;break ;default :return -EINVAL ; } - data[rc] ='\n' ; + out[rc] ='\n' ; rc +=2 ; -return simple_read_from_buffer (buf, count, ppos, data, rc); +return simple_read_from_buffer (buf, count, ppos, out, rc); } static ssize_t q54sj108a2_debugfs_write(struct file *file, const char __user *buf,
drivers/i2c/busses/i2c-cp2615.c +4 -1
@@ -298,7 +298,10 @@ cp2615_i2c_probe(struct usb_interface *usbif, const struct usb_device_id *id)if (!adap)return -ENOMEM ; -strncpy (adap->name, usbdev->serial,sizeof (adap->name) -1 ); +if (!usbdev->serial) +return -EINVAL ; + +strscpy (adap->name, usbdev->serial,sizeof (adap->name)); adap->owner =THIS_MODULE ; adap->dev.parent = &usbif->dev; adap->dev.of_node = usbif->dev.of_node;
drivers/i2c/busses/i2c-fsi.c +1 -0
@@ -728,6 +728,7 @@ static int fsi_i2c_probe(struct device *dev) rc =i2c_add_adapter (&port->adapter);if (rc <0 ) {dev_err (dev,"Failed to register adapter: %d\n" , rc); +of_node_put (np);kfree (port);continue ; }
drivers/i3c/master/mipi-i3c-hci/cmd.h +1 -0
@@ -17,6 +17,7 @@#define CMD_0_TOC W0_BIT_(31)#define CMD_0_ROC W0_BIT_(30)#define CMD_0_ATTR W0_MASK(2, 0) +#define CMD_0_TID W0_MASK(6, 3)/* * Response Descriptor Structure
drivers/i3c/master/mipi-i3c-hci/cmd_v1.c +1 -1
@@ -335,7 +335,7 @@ static int hci_cmd_v1_daa(struct i3c_hci *hci) hci->io->queue_xfer (hci, xfer,1 );if (!wait_for_completion_timeout (&done,HZ ) && hci->io->dequeue_xfer (hci, xfer,1 )) {
Lines of this file are not shown. View the raw message.
drivers/i3c/master/mipi-i3c-hci/cmd_v2.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_accel.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_buffer.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/iio/imu/inv_icm42600/inv_icm42600_gyro.c +2 -0
Lines of this file are not shown. View the raw message.
drivers/iio/industrialio-buffer.c +52 -50
102 lines not on this page · raw message
drivers/infiniband/hw/mthca/mthca_provider.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/media/platform/qcom/camss/camss-vfe-480.c +40 -19
59 lines not on this page · raw message
drivers/mtd/nand/raw/brcmnand/brcmnand.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/cadence-nand-controller.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/mtd/nand/raw/pl35x-nand-controller.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/can/usb/etas_es58x/es58x_core.c +7 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-drv.c +0 -10
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/amd/xgbe/xgbe-main.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.c +20 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt.h +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/bnxt/bnxt_xdp.c +0 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/broadcom/genet/bcmgenet_wol.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/cadence/macb_main.c +174 -10
184 lines not on this page · raw message
drivers/net/ethernet/cadence/macb_ptp.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-eth.h +1 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-mac.h +8 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch-ethtool.c +26 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.c +43 -14
57 lines not on this page · raw message
drivers/net/ethernet/freescale/dpaa2/dpaa2-switch.h +3 -6
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/enetc/enetc_pf.c +82 -39
121 lines not on this page · raw message
drivers/net/ethernet/freescale/fec_main.c +14 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/google/gve/gve_main.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000/e1000_main.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/e1000e/netdev.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c +7 -7
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +6 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_common.c +3 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ice/ice_ethtool.c +14 -21
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/igc/igc_main.c +2 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbevf/vf.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeon_ep/octep_main.c +28 -12
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeon_ep/octep_rx.c +19 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c +135 -333
468 lines not on this page · raw message
drivers/net/ethernet/mediatek/mtk_eth_soc.c +12 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/en/reporter_tx.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch.c +27 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch.h +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/eswitch_offloads.c +13 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/hw_channel.c +3 -3
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/microsoft/mana/mana_en.c +18 -5
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/common.h +0 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c +0 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-loongson.c +1 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac.h +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c +18 -43
61 lines not on this page · raw message
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c +0 -8
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/ti/am65-cpsw-nuss.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/btcoex.c +2 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/marvell/libertas/main.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/pci/pci-acpi.c +24 -35
59 lines not on this page · raw message
drivers/pci/pci.c +74 -11
85 lines not on this page · raw message
drivers/pci/setup-bus.c +30 -27
57 lines not on this page · raw message
drivers/pci/setup-res.c +40 -34
74 lines not on this page · raw message
drivers/platform/x86/dell/dell-wmi-base.c +6 -0
Lines of this file are not shown. View the raw message.
drivers/platform/x86/dell/dell-wmi-sysman/passwordattr-interface.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/regulator/pca9450-regulator.c +19 -22
41 lines not on this page · raw message
drivers/staging/media/tegra-video/vi.c +16 -11
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_ieee80211.c +10 -5
Lines of this file are not shown. View the raw message.
drivers/staging/rtl8723bs/core/rtw_mlme.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/usb/core/message.c +79 -21
100 lines not on this page · raw message
drivers/usb/gadget/function/f_mass_storage.c +10 -2
Lines of this file are not shown. View the raw message.
drivers/usb/serial/f81232.c +47 -30
77 lines not on this page · raw message
drivers/xen/privcmd.c +70 -3
73 lines not on this page · raw message
fs/btrfs/uuid-tree.c +46 -0
46 lines not on this page · raw message
fs/ext4/extents.c +172 -140
312 lines not on this page · raw message
fs/ext4/mballoc.c +21 -20
41 lines not on this page · raw message
fs/smb/client/misc.c +41 -0
41 lines not on this page · raw message
include/asm-generic/tlb.h +75 -2
77 lines not on this page · raw message
kernel/events/core.c +41 -1
42 lines not on this page · raw message
kernel/kprobes.c +22 -25
47 lines not on this page · raw message
kernel/sched/idle.c +36 -9
45 lines not on this page · raw message
kernel/time/time.c +159 -12
171 lines not on this page · raw message
kernel/trace/trace_events.c +36 -15
51 lines not on this page · raw message
mm/hugetlb.c +75 -68
143 lines not on this page · raw message
net/ipv4/tcp_offload.c +74 -0
74 lines not on this page · raw message
net/ipv6/tcpv6_offload.c +65 -0
65 lines not on this page · raw message
net/mptcp/pm_netlink.c +55 -17
72 lines not on this page · raw message
net/netfilter/nf_conntrack_netlink.c +42 -25
67 lines not on this page · raw message
net/netfilter/nft_set_pipapo.c +94 -29
123 lines not on this page · raw message
net/sched/act_gate.c +184 -78
262 lines not on this page · raw message
net/sched/act_ife.c +44 -49
93 lines not on this page · raw message
sound/soc/qcom/qdsp6/q6apm-lpass-dais.c +1 -0
Lines of this file are not shown. View the raw message.
tools/testing/kunit/kunit.py +184 -97
281 lines not on this page · raw message
tools/testing/kunit/kunit_kernel.py +24 -18
42 lines not on this page · raw message
tools/testing/kunit/kunit_parser.py +124 -47
171 lines not on this page · raw message
tools/testing/kunit/kunit_tool_test.py +99 -21
120 lines not on this page · raw message
tools/testing/kunit/test_data/test_parse_ktap_output.log new file +8 -0
Lines of this file are not shown. View the raw message.
tools/testing/kunit/test_data/test_parse_subtest_header.log new file +7 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/mptcp_join.sh +36 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/mptcp/simult_flows.sh +7 -4
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.