Linux 5.10.67
Greg Kroah-Hartman
maintainerI'm announcing the release of the 5.10.67 kernel.
All users of the 5.10 kernel series must upgrade.
The updated 5.10.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.10.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/admin-guide/devices.txt | 6 Documentation/devicetree/bindings/pinctrl/marvell,armada-37xx-pinctrl.txt | 8 Makefile | 2 arch/arm/boot/compressed/Makefile | 2 arch/arm/boot/dts/at91-kizbox3_common.dtsi | 2 arch/arm/boot/dts/at91-sam9x60ek.dts | 2 arch/arm/boot/dts/at91-sama5d27_som1_ek.dts | 2 arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts | 2 arch/arm/boot/dts/at91-sama5d2_icp.dts | 2 arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts | 2 arch/arm/boot/dts/at91-sama5d2_xplained.dts | 2 arch/arm/boot/dts/imx53-ppd.dts | 23 arch/arm/boot/dts/qcom-apq8064.dtsi | 6 arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi | 8 arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi | 6 arch/arm/boot/dts/stm32mp15xx-dkx.dtsi | 8 arch/arm/boot/dts/tegra20-acer-a500-picasso.dts | 25 arch/arm/boot/dts/tegra20-tamonten.dtsi | 14 arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts | 4 arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts | 8 arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts | 7 arch/arm64/boot/dts/nvidia/tegra132.dtsi | 4 arch/arm64/boot/dts/nvidia/tegra194.dtsi | 6 arch/arm64/boot/dts/qcom/ipq6018.dtsi | 2 arch/arm64/boot/dts/qcom/ipq8074-hk01.dts | 2 arch/arm64/boot/dts/qcom/ipq8074.dtsi | 16 arch/arm64/boot/dts/qcom/msm8994.dtsi | 6 arch/arm64/boot/dts/qcom/msm8996.dtsi | 4 arch/arm64/boot/dts/qcom/sdm630.dtsi | 257 +++++---- arch/arm64/boot/dts/qcom/sm8250.dtsi | 2 arch/arm64/include/asm/kernel-pgtable.h | 4 arch/arm64/include/asm/mmu.h | 29 - arch/arm64/include/asm/tlbflush.h | 11 arch/arm64/kernel/head.S | 11 arch/m68k/Kconfig.bus | 2 arch/mips/mti-malta/malta-dtshim.c | 2 arch/openrisc/kernel/entry.S | 2 arch/parisc/kernel/signal.c | 6 arch/powerpc/configs/mpc885_ads_defconfig | 1 arch/powerpc/include/asm/pmc.h | 7 arch/powerpc/kernel/smp.c | 11 arch/powerpc/kernel/stacktrace.c | 1 arch/powerpc/kvm/book3s_64_mmu_radix.c | 6 arch/powerpc/kvm/book3s_64_vio_hv.c | 9 arch/powerpc/kvm/book3s_hv.c | 20 arch/powerpc/mm/numa.c | 13 arch/powerpc/perf/hv-gpci.c | 2 arch/s390/include/asm/setup.h | 2 arch/s390/kernel/early.c | 4 arch/s390/kernel/jump_label.c | 2 arch/s390/mm/init.c | 2 arch/s390/pci/pci.c | 5 arch/x86/kernel/cpu/mshyperv.c | 9 arch/x86/xen/p2m.c | 4 arch/xtensa/platforms/iss/console.c | 17 block/bfq-iosched.c | 2 block/blk-zoned.c | 6 block/bsg.c | 5 drivers/ata/libata-core.c | 4 drivers/ata/sata_dwc_460ex.c | 12 drivers/bus/fsl-mc/fsl-mc-bus.c | 24 drivers/clk/at91/clk-generated.c | 6 drivers/clk/imx/clk-composite-8m.c | 3 drivers/clk/imx/clk-imx8mm.c | 7 drivers/clk/imx/clk-imx8mn.c | 7 drivers/clk/imx/clk-imx8mq.c | 7 drivers/clk/imx/clk.h | 16 drivers/clk/rockchip/clk-pll.c | 2 drivers/clk/socfpga/clk-agilex.c | 19 drivers/cpufreq/powernv-cpufreq.c | 16 drivers/cpuidle/cpuidle-pseries.c | 18 drivers/crypto/ccp/sev-dev.c | 49 - drivers/crypto/ccp/sp-pci.c | 12 drivers/crypto/mxs-dcp.c | 36 - drivers/dma/imx-sdma.c | 13 drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_object.c | 2 drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c | 2 drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c | 2 drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c | 84 ++- drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h | 1 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 16 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 11 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 14 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c | 2 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dwb_cm.c | 90 ++- drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c | 12 drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c | 42 + drivers/gpu/drm/bridge/nwl-dsi.c | 2 drivers/gpu/drm/drm_auth.c | 42 + drivers/gpu/drm/drm_debugfs.c | 3 drivers/gpu/drm/drm_dp_mst_topology.c | 10 drivers/gpu/drm/drm_file.c | 1 drivers/gpu/drm/drm_lease.c | 81 ++- drivers/gpu/drm/exynos/exynos_drm_dma.c | 2 drivers/gpu/drm/mgag200/mgag200_drv.h | 16 drivers/gpu/drm/mgag200/mgag200_mode.c | 20 drivers/gpu/drm/mgag200/mgag200_reg.h | 9 drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c | 17 drivers/gpu/drm/msm/dp/dp_panel.c | 9 drivers/gpu/drm/msm/dsi/dsi_cfg.c | 1 drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c | 2 drivers/gpu/drm/panfrost/panfrost_device.h | 8 drivers/gpu/drm/panfrost/panfrost_drv.c | 50 - drivers/gpu/drm/panfrost/panfrost_gem.c | 20 drivers/gpu/drm/panfrost/panfrost_job.c | 4 drivers/gpu/drm/panfrost/panfrost_mmu.c | 191 ++++--- drivers/gpu/drm/panfrost/panfrost_mmu.h | 5 drivers/gpu/drm/panfrost/panfrost_regs.h | 2 drivers/gpu/drm/vc4/vc4_hdmi.c | 4 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 4 drivers/gpu/drm/xlnx/zynqmp_disp.c | 3 drivers/gpu/drm/xlnx/zynqmp_dp.c | 22 drivers/hid/hid-input.c | 2 drivers/hid/i2c-hid/i2c-hid-core.c | 5 drivers/hwmon/pmbus/ibm-cffps.c | 6 drivers/iio/dac/ad5624r_spi.c | 18 drivers/iio/temperature/ltc2983.c | 30 - drivers/infiniband/core/iwcm.c | 19 drivers/infiniband/hw/efa/efa_verbs.c | 1 drivers/infiniband/hw/hfi1/init.c | 7 drivers/infiniband/hw/hns/hns_roce_qp.c | 3 drivers/infiniband/hw/mlx5/qp.c | 3 drivers/iommu/intel/pasid.h | 10 drivers/mailbox/mtk-cmdq-mailbox.c | 3 drivers/md/dm-crypt.c | 7 drivers/media/cec/platform/stm32/stm32-cec.c | 26 drivers/media/cec/platform/tegra/tegra_cec.c | 10 drivers/media/dvb-frontends/dib8000.c | 58 +- drivers/media/i2c/imx258.c | 4 drivers/media/i2c/tda1997x.c | 5 drivers/media/rc/rc-loopback.c | 2 drivers/media/usb/uvc/uvc_v4l2.c | 34 - drivers/media/v4l2-core/v4l2-dv-timings.c | 4 drivers/misc/vmw_vmci/vmci_queue_pair.c | 6 drivers/mmc/core/block.c | 3 drivers/mmc/host/rtsx_pci_sdmmc.c | 36 - drivers/mmc/host/sdhci-of-arasan.c | 36 + drivers/net/bonding/bond_main.c | 3 drivers/net/dsa/lantiq_gswip.c | 3 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 9 drivers/net/ethernet/intel/iavf/iavf_main.c | 58 +- drivers/net/ethernet/intel/igc/igc_main.c | 9 drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c | 15 drivers/net/ethernet/mellanox/mlx5/core/cmd.c | 8 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c | 2 drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c | 1 drivers/net/ethernet/netronome/nfp/nfp_net_common.c | 2 drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c | 18 drivers/net/ethernet/wiznet/w5100.c | 2 drivers/net/phy/dp83822.c | 8 drivers/net/wireless/ath/ath9k/ar9003_eeprom.c | 3 drivers/net/wireless/ath/ath9k/hw.c | 12 drivers/net/wireless/ath/wcn36xx/main.c | 5 drivers/net/wireless/ath/wcn36xx/txrx.c | 4 drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 drivers/net/wireless/intel/iwlwifi/fw/dbg.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 4 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c | 8 drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 24 drivers/net/wireless/intel/iwlwifi/mvm/scan.c | 2 drivers/net/wireless/intel/iwlwifi/mvm/sta.c | 30 - drivers/net/wireless/intel/iwlwifi/pcie/rx.c | 5 drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 3 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 33 - drivers/net/wireless/realtek/rtw88/Makefile | 2 drivers/net/wireless/realtek/rtw88/fw.c | 8 drivers/net/wireless/realtek/rtw88/fw.h | 1 drivers/net/wireless/realtek/rtw88/wow.c | 21 drivers/nvdimm/pmem.c | 4 drivers/nvme/host/core.c | 3 drivers/nvme/host/nvme.h | 47 + drivers/nvme/host/pci.c | 2 drivers/nvme/host/rdma.c | 4 drivers/nvme/host/tcp.c | 38 - drivers/nvme/target/loop.c | 4 drivers/nvmem/qfprom.c | 6 drivers/of/kobj.c | 2 drivers/opp/of.c | 12 drivers/parport/ieee1284_ops.c | 2 drivers/pci/controller/pci-aardvark.c | 266 +++++++++- drivers/pci/controller/pcie-xilinx-nwl.c | 12 drivers/pci/msi.c | 3 drivers/pci/pci.c | 7 drivers/pci/pcie/portdrv_core.c | 9 drivers/pci/quirks.c | 1 drivers/pci/syscall.c | 4 drivers/pinctrl/actions/pinctrl-owl.c | 1 drivers/pinctrl/core.c | 1 drivers/pinctrl/freescale/pinctrl-imx1-core.c | 1 drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 17 drivers/pinctrl/pinctrl-at91.c | 1 drivers/pinctrl/pinctrl-ingenic.c | 6 drivers/pinctrl/pinctrl-single.c | 1 drivers/pinctrl/pinctrl-st.c | 1 drivers/pinctrl/pinctrl-stmfx.c | 6 drivers/pinctrl/pinctrl-sx150x.c | 1 drivers/pinctrl/qcom/pinctrl-sdm845.c | 1 drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 1 drivers/pinctrl/renesas/pfc-r8a77950.c | 1 drivers/pinctrl/renesas/pfc-r8a77951.c | 1 drivers/pinctrl/renesas/pfc-r8a7796.c | 1 drivers/pinctrl/renesas/pfc-r8a77965.c | 1 drivers/pinctrl/samsung/pinctrl-samsung.c | 2 drivers/platform/chrome/cros_ec_proto.c | 9 drivers/platform/x86/dell-smbios-wmi.c | 1 drivers/power/supply/max17042_battery.c | 6 drivers/rtc/rtc-tps65910.c | 2 drivers/s390/cio/qdio_main.c | 82 +-- drivers/scsi/BusLogic.c | 6 drivers/scsi/pcmcia/fdomain_cs.c | 4 drivers/scsi/qedf/qedf_main.c | 10 drivers/scsi/qedi/qedi_main.c | 14 drivers/scsi/qla2xxx/qla_nvme.c | 5 drivers/scsi/qla2xxx/qla_os.c | 6 drivers/scsi/smartpqi/smartpqi_init.c | 1 drivers/scsi/ufs/ufs-exynos.c | 4 drivers/scsi/ufs/ufs-exynos.h | 2 drivers/scsi/ufs/ufshcd.c | 8 drivers/soc/aspeed/aspeed-lpc-ctrl.c | 2 drivers/soc/aspeed/aspeed-p2a-ctrl.c | 2 drivers/soc/qcom/qcom_aoss.c | 8 drivers/soundwire/intel.c | 23 drivers/staging/board/board.c | 7 drivers/staging/ks7010/ks7010_sdio.c | 2 drivers/staging/media/atomisp/pci/atomisp_v4l2.c | 4 drivers/staging/media/hantro/hantro_g1_vp8_dec.c | 13 drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c | 13 drivers/staging/rts5208/rtsx_scsi.c | 10 drivers/thunderbolt/switch.c | 2 drivers/tty/hvc/hvsi.c | 19 drivers/tty/serial/8250/8250_omap.c | 25 drivers/tty/serial/8250/8250_pci.c | 2 drivers/tty/serial/8250/8250_port.c | 3 drivers/tty/serial/jsm/jsm_neo.c | 2 drivers/tty/serial/jsm/jsm_tty.c | 3 drivers/tty/serial/sh-sci.c | 7 drivers/usb/chipidea/host.c | 14 drivers/usb/gadget/composite.c | 8 drivers/usb/gadget/function/u_ether.c | 5 drivers/usb/host/ehci-mv.c | 23 drivers/usb/host/fotg210-hcd.c | 41 - drivers/usb/host/fotg210.h | 5 drivers/usb/host/xhci.c | 24 drivers/usb/musb/musb_dsps.c | 13 drivers/usb/usbip/vhci_hcd.c | 32 + drivers/vfio/Kconfig | 2 drivers/video/fbdev/asiliantfb.c | 3 drivers/video/fbdev/kyro/fbdev.c | 8 drivers/video/fbdev/riva/fbdev.c | 3 fs/btrfs/inode.c | 10 fs/btrfs/tree-log.c | 4 fs/btrfs/volumes.c | 3 fs/ceph/caps.c | 3 fs/cifs/sess.c | 2 fs/f2fs/compress.c | 12 fs/f2fs/data.c | 16 fs/f2fs/dir.c | 14 fs/f2fs/file.c | 4 fs/f2fs/gc.c | 4 fs/f2fs/super.c | 106 ++- fs/fscache/cookie.c | 14 fs/fscache/internal.h | 2 fs/fscache/main.c | 39 + fs/gfs2/glops.c | 17 fs/gfs2/lock_dlm.c | 5 fs/io-wq.c | 8 fs/io_uring.c | 70 +- fs/iomap/buffered-io.c | 2 fs/lockd/svclock.c | 30 - fs/nfs/pnfs.c | 16 fs/nfsd/nfs4state.c | 5 fs/notify/fanotify/fanotify.c | 6 fs/overlayfs/dir.c | 6 fs/userfaultfd.c | 91 +-- include/crypto/public_key.h | 4 include/drm/drm_auth.h | 1 include/drm/drm_file.h | 18 include/linux/ethtool.h | 4 include/linux/hugetlb.h | 9 include/linux/hugetlb_cgroup.h | 12 include/linux/intel-iommu.h | 6 include/linux/rcupdate.h | 2 include/linux/sunrpc/xprt.h | 1 include/linux/sunrpc/xprtsock.h | 1 include/net/flow_offload.h | 1 include/uapi/linux/serial_reg.h | 1 kernel/dma/debug.c | 7 kernel/fork.c | 1 kernel/pid_namespace.c | 3 kernel/rcu/tree_plugin.h | 8 kernel/workqueue.c | 12 lib/test_bpf.c | 13 lib/test_stackinit.c | 20 mm/hmm.c | 5 mm/hugetlb.c | 4 mm/vmscan.c | 2 net/9p/trans_xen.c | 4 net/bluetooth/hci_event.c | 108 ++-- net/bluetooth/sco.c | 74 +- net/core/flow_dissector.c | 12 net/core/flow_offload.c | 89 +++ net/ethtool/ioctl.c | 136 ++++- net/ipv4/ip_output.c | 5 net/ipv4/tcp_fastopen.c | 3 net/mac80211/iface.c | 11 net/netfilter/nf_flow_table_offload.c | 1 net/netfilter/nf_tables_offload.c | 1 net/netlabel/netlabel_cipso_v4.c | 4 net/netlink/af_netlink.c | 4 net/sched/cls_api.c | 1 net/sched/sch_taprio.c | 4 net/socket.c | 125 ---- net/sunrpc/auth_gss/svcauth_gss.c | 2 net/sunrpc/xprt.c | 8 net/sunrpc/xprtrdma/transport.c | 11 net/sunrpc/xprtsock.c | 7 net/tipc/socket.c | 36 + samples/bpf/test_override_return.sh | 1 samples/bpf/tracex7_user.c | 5 scripts/gen_ksymdeps.sh | 8 security/smack/smack_access.c | 17 sound/soc/atmel/Kconfig | 1 sound/soc/intel/boards/bytcr_rt5640.c | 9 sound/soc/intel/boards/sof_pcm512x.c | 13 sound/soc/intel/skylake/skl-messages.c | 11 sound/soc/intel/skylake/skl-pcm.c | 25 sound/soc/rockchip/rockchip_i2s.c | 35 - tools/lib/bpf/libbpf.c | 63 ++ tools/testing/selftests/arm64/mte/mte_common_util.c | 2 tools/testing/selftests/arm64/pauth/pac.c | 10 tools/testing/selftests/bpf/prog_tests/send_signal.c | 16 tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c | 4 tools/testing/selftests/bpf/progs/xdp_tx.c | 2 tools/testing/selftests/bpf/test_maps.c | 2 tools/testing/selftests/bpf/test_xdp_veth.sh | 2 tools/testing/selftests/firmware/fw_namespace.c | 3 tools/testing/selftests/ftrace/test.d/functions | 2 tools/thermal/tmon/Makefile | 2 343 files changed, 3169 insertions(+), 1638 deletions(-)
Ahmad Fatoum (1):
clk: imx8m: fix clock tree update of TF-A managed clocks
Alexey Kardashevskiy (1):
KVM: PPC: Fix clearing never mapped TCEs in realmode
Alim Akhtar (1):
scsi: ufs: ufs-exynos: Fix static checker warning
Alyssa Rosenzweig (3):
drm/panfrost: Simplify lock_region calculation drm/panfrost: Use u64 for size in lock_region drm/panfrost: Clamp lock region to Bifrost minimum
Amir Goldstein (1):
fanotify: limit number of event merge attempts
Andreas Obergschwandtner (1):
ARM: tegra: tamonten: Fix UART pad setting
Andrey Grodzovsky (1):
drm/amdgpu: Fix BUG_ON assert
Andy Shevchenko (1):
ata: sata_dwc_460ex: No need to call phy_exit() befre phy_init()
AngeloGioacchino Del Regno (2):
arm64: dts: qcom: sdm630: Rewrite memory map
arm64: dts: qcom: sdm630: Fix TLMM node and pinctrl configuration
Ani Sinha (1):
x86/hyperv: fix for unwanted manipulation of sched_clock when TSC marked unstable
Anirudh Rayabharam (1):
usbip: give back URBs for unsent unlink requests during cleanup
Anna Schumaker (1):
sunrpc: Fix return value of get_srcport()
Anson Jacob (1):
drm/amd/amdgpu: Update debugfs link_settings output link_rate field in hex
Anthony Iliopoulos (1):
dma-debug: fix debugfs initialization order
Arnd Bergmann (2):
ethtool: improve compat ioctl handling
m68knommu: only set CONFIG_ISA_DMA_API for ColdFire sub-arch
Arne Welzel (1):
dm crypt: Avoid percpu_counter spinlock contention in crypt_page_alloc()
Aurabindo Pillai (1):
drm/amd/display: Update number of DCN3 clock states
Bart Van Assche (1):
scsi: ufs: Fix memory corruption by ufshcd_read_desc_param()
Bob Peterson (2):
gfs2: Fix glock recursion in freeze_go_xmote_bh
gfs2: Don't call dlm after protocol is unmounted
Boris Brezillon (1):
drm/panfrost: Make sure MMU context lifetime is not bound to panfrost_priv
Brandon Wyman (1):
hwmon: (pmbus/ibm-cffps) Fix write bits for LED control
Brijesh Singh (1):
crypto: ccp - shutdown SEV firmware on kexec
Cezary Rojewski (1):
ASoC: Intel: Skylake: Fix module configuration for KPB and MIXER
Chao Yu (5):
f2fs: fix to do sanity check for sb/cp fields correctly
f2fs: quota: fix potential deadlock
f2fs: fix to account missing .skipped_gc_rwsem
f2fs: fix unexpected ENOENT comes from f2fs_map_blocks()
f2fs: fix to unmap pages from userspace process in punch_hole()
Chengfeng Ye (1):
selftests/bpf: Fix potential unreleased lock
Chin-Yen Lee (2):
rtw88: use read_poll_timeout instead of fixed sleep
rtw88: wow: fix size access error of probe request
Chris Chiu (1):
rtl8xxxu: Fix the handling of TX A-MPDU aggregation
Christoph Hellwig (1):
scsi: bsg: Remove support for SCSI_IOCTL_SEND_COMMAND
Christophe JAILLET (1):
staging: ks7010: Fix the initialization of the 'sleep_status' structure
Codrin Ciubotariu (1):
clk: at91: clk-generated: Limit the requested rate to our range
Colin Ian King (3):
ceph: fix dereference of null pointer cf
scsi: BusLogic: Use %X for u32 sized integer rather than %lX
parport: remove non-zero check on count
Damien Le Moal (1):
block: bfq: fix bfq_set_next_ioprio_data()
Dan Carpenter (3):
scsi: smartpqi: Fix an error code in pqi_get_raid_map()
scsi: qedi: Fix error codes in qedi_alloc_global_queues()
scsi: qedf: Fix error codes in qedf_alloc_global_queues()
Darrick J. Wong (1):
iomap: pass writeback errors to the mapping
David Heidelberg (4):
ARM: 9105/1: atags_to_fdt: don't warn about stack size
ARM: dts: qcom: apq8064: correct clock names drm/msm: mdp4: drop vblank get/put from prepare/complete_commit drm/msi/mdp4: populate priv->kms in mdp4_kms_init
David Howells (1):
fscache: Fix cookie key hashing
David Laight (1):
fs/io_uring Don't use the return value from import_iovec().
Desmond Cheong Zhi Xi (8):
btrfs: reset replace target device to allocation state on close
drm: avoid blocking in drm_clients_info's rcu section
drm: serialize drm_file.master with a new spinlock
drm: protect drm_master pointers in drm_lease.c
Bluetooth: skip invalid hci_sync_conn_complete_evt drm/vmwgfx: fix potential UAF in vmwgfx_surface.c
Bluetooth: schedule SCO timeouts with delayed_work
Bluetooth: avoid circular locks in sco_sock_connect
Ding Hui (1):
cifs: fix wrong release in sess_alloc_buffer() failed path
Dinghao Liu (1):
media: atomisp: Fix runtime PM imbalance in atomisp_pci_probe
Dinh Nguyen (3):
clk: socfpga: agilex: fix the parents of the psi_ref_clk
clk: socfpga: agilex: fix up s2f_user0_clk representation
clk: socfpga: agilex: add the bypass register for s2f_usr0 clock
Dmitry Osipenko (2):
rtc: tps65910: Correct driver module alias
ARM: tegra: acer-a500: Remove bogus USB VBUS regulators
Dmitry Torokhov (1):
HID: input: do not report stylus battery state as "full"
Dom Cobley (1):
drm/vc4: hdmi: Set HD_CTL_WHOLSMP and HD_CTL_CHALIGN_SET
Eli Cohen (1):
net: Fix offloading indirect devices dependency on qdisc order creation
Eran Ben Elisha (1):
net/mlx5: Fix variable type to match 64bit
Evan Wang (1):
PCI: aardvark: Fix checking for PIO status
Evgeny Novikov (3):
USB: EHCI: ehci-mv: improve error handling in mv_ehci_enable()
media: platform: stm32: unprepare clocks at handling errors in probe
media: tegra-cec: Handle errors of clk_prepare_enable()
Ezequiel Garcia (1):
media: hantro: vp8: Move noisy WARN_ON to vpu_debug
Fabiano Rosas (1):
KVM: PPC: Book3S HV: Fix copy_tofrom_guest routines
Gautham R. Shenoy (1):
cpuidle: pseries: Fixup CEDE0 latency only for POWER10 onwards
Geert Uytterhoeven (2):
staging: board: Fix uninitialized spinlock when attaching genpd drm/bridge: nwl-dsi: Avoid potential multiplication overflow on 32-bit
Georgi Djakov (1):
arm64: dts: qcom: sm8250: Fix epss_l3 unit address
Greg Kroah-Hartman (2):
serial: 8250_pci: make setup_port() parameters explicitly unsigned Linux 5.10.67
Guojia Liao (1):
net: hns3: clean up a type mismatch warning
Gustavo A. R. Silva (2):
ipv4: ip_output.c: Fix out-of-bounds warning in ip_copy_addrs()
flow_dissector: Fix out-of-bounds warnings
Gustaw Lewandowski (1):
ASoC: Intel: Skylake: Fix passing loadable flag for module
Haimin Zhang (1):
fix array-index-out-of-bounds in taprio_change
Halil Pasic (1):
s390/pv: fix the forcing of the swiotlb
Hans Verkuil (1):
media: v4l2-dv-timings.c: fix wrong condition in two for-loops
Hans de Goede (3):
libata: add ATA_HORKAGE_NO_NCQ_TRIM for Samsung 860 and 870 SSDs
platform/x86: dell-smbios-wmi: Add missing kfree in error-exit from run_smbios_call
ASoC: Intel: bytcr_rt5640: Move "Platform Clock" routes to the maps for the matching in-/output
Harshvardhan Jha (1):
9p/xen: Fix end of loop tests for list_for_each_entry
Heiko Carstens (1):
s390/jump_label: print real address in a case of a jump label bug
Hyun Kwon (1):
PCI: xilinx-nwl: Enable the clock through CCF
Ilan Peer (1):
iwlwifi: mvm: Fix scan channel flags settings
Iwona Winiarska (2):
soc: aspeed: lpc-ctrl: Fix boundary check for mmap
soc: aspeed: p2a-ctrl: Fix boundary check for mmap
J. Bruce Fields (3):
rpc: fix gss_svc_init cleanup on failure
lockd: lockd server-side shouldn't set fl_ops
nfsd: fix crash on LOCKT on reexported NFSv3
Jack Pham (1):
usb: gadget: composite: Allow bMaxPower=0 if self-powered
Jaegeuk Kim (2):
f2fs: deallocate compressed pages when error happens
f2fs: should put a page beyond EOF when preparing a write
Jaehyoung Choi (1):
pinctrl: samsung: Fix pinctrl bank pin count
Jan Hoffmann (1):
net: dsa: lantiq_gswip: fix maximum frame length
Jason Gunthorpe (1):
vfio: Use config not menuconfig for VFIO_NOIOMMU
Jens Axboe (1):
io-wq: fix wakeup race when adding new work
Jernej Skrabec (1):
arm64: dts: allwinner: h6: tanix-tx6: Fix regulator node names
Jerry (Fangzhi) Zuo (1):
drm/amd/display: Update bounding box states (v2)
Jianjun Wang (1):
PCI: Export pci_pio_to_address() for module use
Jim Broadus (1):
HID: i2c-hid: Fix Elan touchpad regression
Jiri Slaby (2):
xtensa: ISS: don't panic in rs_init
hvsi: don't panic on tty_register_driver failure
Joel Stanley (1):
powerpc/config: Renable MTD_PHYSMAP_OF
Johan Almbladh (3):
bpf/tests: Fix copy-and-paste error in double word test bpf/tests: Do not PASS tests without actually testing the result
mac80211: Fix monitor MTU limit so that A-MSDUs get through
Johannes Berg (4):
iwlwifi: pcie: free RBs during configure
iwlwifi: mvm: avoid static queue number aliasing
iwlwifi: mvm: fix access to BSS elements
iwlwifi: fw: correctly limit to monitor dump
Jonathan Cameron (1):
iio: dac: ad5624r: Fix incorrect handling of an optional regulator.
Josef Bacik (1):
btrfs: wake up async_delalloc_pages waiters after submit
Joseph Gates (1):
wcn36xx: Ensure finish scan is not requested before start scan
Juergen Gross (1):
xen: fix setting of max_pfn in shared_info
Juhee Kang (1):
samples: bpf: Fix tracex7 error raised on the missing argument
Julian Wiedmann (2):
s390/qdio: fix roll-back after timeout on ESTABLISH ccw s390/qdio: cancel the ESTABLISH ccw after timeout
Jussi Maki (1):
selftests/bpf: Fix xdp_tx.c prog section name
Kajol Jain (1):
powerpc/perf/hv-gpci: Fix counter value parsing
Kees Cook (2):
staging: rts5208: Fix get_ms_information() heap buffer size lib/test_stackinit: Fix static initializer test
Kelly Devilliv (2):
usb: host: fotg210: fix the endpoint's transactional opportunities calculation
usb: host: fotg210: fix the actual_length of an iso packet
Konrad Dybcio (1):
drm/msm/dsi: Fix DSI and DSI PHY regulator config from SDM660
Krzysztof Hałasa (1):
media: TDA1997x: fix tda1997x_query_dv_timings() return value
Krzysztof Kozlowski (1):
power: supply: max17042: handle fails of reading status register
Krzysztof Wilczyński (1):
PCI: Return ~0 data on pciconfig_read() CAP_SYS_ADMIN failure
Kuogee Hsieh (1):
drm/msm/dp: return correct edid checksum after corrupted edid checksum read
Laurent Dufour (1):
powerpc/numa: Consider the max NUMA node for migratable LPAR
Laurent Pinchart (1):
media: imx258: Rectify mismatch of VTS value
Laurentiu Tudor (1):
bus: fsl-mc: fix mmio base address for child DPRCs
Leon Romanovsky (4):
RDMA/iwcm: Release resources if iw_cm module initialization fails
docs: Fix infiniband uverbs minor number
RDMA/efa: Remove double QP type assignment
RDMA/mlx5: Delete not-available udata check
Li Jun (1):
usb: chipidea: host: fix port index underflow and UBSAN complains
Li Zhijian (2):
selftests/bpf: Enlarge select() timeout for test_maps mm/hmm: bypass devmap pte when all pfn requested flags are fulfilled
Liu Zixian (1):
mm/hugetlb: initialize hugetlb_usage in mm_init
Loic Poulain (1):
wcn36xx: Fix missing frame timestamp for beacon/probe-resp
Lu Baolu (1):
iommu/vt-d: Update the virtual command related registers
Luben Tuikov (1):
drm/amdgpu: Fix amdgpu_ras_eeprom_init()
Luiz Augusto von Dentz (1):
Bluetooth: Fix handling of LE Enhanced Connection Complete
Luke Hsiao (1):
tcp: enable data-less, empty-cookie SYN with TFO_SERVER_COOKIE_NOT_REQD
Maciej W. Rozycki (2):
serial: 8250: Define RX trigger levels for OxSemi 950 devices
scsi: BusLogic: Fix missing pr_cont() use
Maciej Żenczykowski (1):
usb: gadget: u_ether: fix a potential null pointer dereference
Manish Narani (2):
mmc: sdhci-of-arasan: Modified SD default speed to 19MHz for ZynqMP
mmc: sdhci-of-arasan: Check return value of non-void funtions
Manivannan Sadhasivam (1):
soc: qcom: aoss: Fix the out of bound usage of cooling_devs
Marc Zyngier (2):
pinctrl: stmfx: Fix hazardous u8[] to unsigned long cast
of: Don't allow __of_attached_node_sysfs() without CONFIG_SYSFS
Marcos Paulo de Souza (1):
btrfs: tree-log: check btrfs_lookup_data_extent return value
Marek Behún (2):
PCI: Restrict ASMedia ASM1062 SATA Max Payload Size Supported
pinctrl: armada-37xx: Correct PWM pins definitions
Marek Marczykowski-Górecki (1):
PCI/MSI: Skip masking MSI-X on Xen PV
Marek Vasut (4):
net: phy: Fix data type in DP83822 dp8382x_disable_wol()
ARM: dts: stm32: Set {bitclock,frame}-master phandles on DHCOM SoM
ARM: dts: stm32: Set {bitclock,frame}-master phandles on ST DKx
ARM: dts: stm32: Update AV96 adv7513 node per dtbs_check
Mark Brown (2):
kselftest/arm64: mte: Fix misleading output when skipping tests kselftest/arm64: pac: Fix skipping of tests on systems without PAC
Mark Rutland (1):
arm64: head: avoid over-mapping in map_memory
Martynas Pumputis (2):
libbpf: Fix reuse of pinned map on older kernel
libbpf: Fix race when pinning maps in parallel
Masahiro Yamada (1):
kbuild: Fix 'no symbols' warning when CONFIG_TRIM_UNUSD_KSYMS=y
Mathias Nyman (1):
Revert "USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set"
Mauro Carvalho Chehab (2):
media: uvc: don't do DMA on stack
media: dib8000: rewrite the init prbs logic
Miaoqing Pan (1):
ath9k: fix sleeping in atomic context
Michal Suchanek (1):
powerpc/stacktrace: Include linux/delay.h
Mike Kravetz (1):
hugetlb: fix hugetlb cgroup refcounting during vma split
Mike Marciniszyn (1):
IB/hfi1: Adjust pkey entry in index 0
Mikulas Patocka (1):
parisc: fix crash with signals and alloca
Nadav Amit (1):
userfaultfd: prevent concurrent API initialization
Nadezda Lutovinova (1):
usb: musb: musb_dsps: request_irq() after initializing musb
Nathan Chancellor (3):
cpuidle: pseries: Mark pseries_idle_proble() as __init
net: ethernet: stmmac: Do not use unreachable() in ipq806x_gmac_probe() drm/exynos: Always initialize mapping in exynos_drm_register_dma()
Nicholas Piggin (1):
KVM: PPC: Book3S HV Nested: Reflect guest PMU in-use to L0 when guest SPRs are live
Nicolas Ferre (1):
ARM: dts: at91: use the right property for shutdown controller
Niklas Cassel (2):
blk-zoned: allow zone management send operations without CAP_SYS_ADMIN
blk-zoned: allow BLKREPORTZONE without CAP_SYS_ADMIN
Niklas Schnelle (1):
s390: make PCI mio support a machine flag
Niklas Söderlund (1):
nfp: fix return statement in nfp_net_parse_meta()
Nishad Kamdar (1):
mmc: core: Return correct emmc response in case of ioctl error
Nuno Sá (1):
iio: ltc2983: fix device probe
Oak Zeng (1):
drm/amdgpu: Fix a printing message
Oleksij Rempel (1):
MIPS: Malta: fix alignment of the devicetree buffer
Olga Kornievskaia (1):
SUNRPC query transport's source port
Oliver Logush (1):
drm/amd/display: Fix timer_per_pixel unit error
Pali Rohár (2):
PCI: aardvark: Configure PCIe resources from 'ranges' DT property
PCI: aardvark: Fix masking and unmasking legacy INTx interrupts
Patryk Duda (1):
platform/chrome: cros_ec_proto: Send command again when timeout occurs
Paul Cercueil (1):
pinctrl: ingenic: Fix incorrect pull up/down info
Pavel Begunkov (5):
io_uring: limit fixed table size by RLIMIT_NOFILE
io_uring: place fixed tables under memcg limits
io_uring: add ->splice_fd_in checks
io_uring: fail links of cancelled timeouts
io_uring: remove duplicated io_size from rw
Peter Geis (1):
clk: rockchip: drop GRF dependency for rk3328/rk3036 pll types
Pierre-Louis Bossart (2):
ASoC: Intel: update sof_pcm512x quirks
soundwire: intel: fix potential race condition during power down
Ping-Ke Shih (1):
rtw88: wow: build wow function only if CONFIG_PM is on
Pratik R. Sampat (1):
cpufreq: powernv: Fix init_chip_info initialization in numa=off
Quanyang Wang (2):
drm: xlnx: zynqmp_dpsub: Call pm_runtime_get_sync before setting pixel clock
drm: xlnx: zynqmp: release reset to DP controller before accessing DP registers
Raag Jadav (1):
arm64: dts: ls1046a: fix eeprom entries
Rafael J. Wysocki (1):
PCI: Use pci_update_current_state() in pci_enable_device_flags()
Rajendra Nayak (2):
nvmem: qfprom: Fix up qfprom_disable_fuse_blowing() ordering
opp: Don't print an error if required-opps is missing
Rajkumar Subbiah (1):
drm/dp_mst: Fix return code on sideband message failure
Randy Dunlap (2):
openrisc: don't printk() unconditionally
ASoC: atmel: ATMEL drivers don't need HAS_DMA
Rik van Riel (1):
mm,vmscan: fix divide by zero in get_scan_count
Robin Gong (2):
Revert "dmaengine: imx-sdma: refine to load context only once"
dmaengine: imx-sdma: remove duplicated sdma_load_context
Rolf Eike Beer (1):
tools/thermal/tmon: Add cross compiling support
Roy Chan (2):
drm/amd/display: fix missing writeback disablement if plane is removed drm/amd/display: fix incorrect CM/TF programming sequence in dwb
Sagi Grimberg (2):
nvme-tcp: don't check blk_mq_tag_to_rq when receiving pdu data
nvme: code command_id with a genctr for use-after-free validation
Sanjay R Mehta (1):
thunderbolt: Fix port linking by checking all adapters
Sasha Neftin (1):
igc: Check if num of q_vectors is smaller than max before array access
Saurav Kashyap (2):
scsi: qla2xxx: Changes to support kdump kernel
scsi: qla2xxx: Sync queue idx with queue_pair_map idx
Sean Anderson (1):
crypto: mxs-dcp - Use sg_mapping_iter to copy data
Sean Keely (1):
drm/amdkfd: Account for SH/SE count when setting up cu masks.
Sean Young (1):
media: rc-loopback: return number of emitters rather than error
Sebastian Reichel (1):
ARM: dts: imx53-ppd: Fix ACHC entry
Shuah Khan (2):
selftests: firmware: Fix ignored return val of asprintf() warn usbip:vhci_hcd USB port can get stuck in the disabled state
Srikar Dronamraju (1):
powerpc/smp: Update cpu_core_map on all PowerPc systems
Stefan Assmann (2):
iavf: do not override the adapter state in the watchdog task
iavf: fix locking of critical sections
Steven Rostedt (VMware) (1):
selftests/ftrace: Fix requirement check of README file
Stuart Hayes (1):
PCI/portdrv: Enable Bandwidth Notification only if port supports it
Subbaraya Sundeep (1):
octeontx2-pf: Fix NIX1_RX interface backpressure
Sugar Zhang (1):
ASoC: rockchip: i2s: Fix regmap_ops hang
Thierry Reding (1):
arm64: tegra: Fix compatible string for Tegra132 CPUs
Thomas Hebb (1):
mmc: rtsx_pci: Fix long reads when clock is prescaled
Thomas Zimmermann (1):
drm/mgag200: Select clock in PLL update functions
Tianjia Zhang (1):
Smack: Fix wrong semantics in smk_access_entry()
Tony Lindgren (1):
serial: 8250_omap: Handle optional overrun-throttle-ms property
Trond Myklebust (5):
NFSv4/pNFS: Fix a layoutget livelock loop
NFSv4/pNFS: Always allow update of a zero valued layout barrier NFSv4/pnfs: The layout barrier indicate a minimal value for the seqid
SUNRPC: Fix potential memory corruption
SUNRPC/xprtrdma: Fix reconnection locking
Tuo Li (2):
gpu: drm: amd: amdgpu: amdgpu_i2c: fix possible uninitialized-variable access in amdgpu_i2c_router_select_ddc_port() drm/display: fix possible null-pointer dereference in dcn10_set_clock()
Ulrich Hecht (1):
serial: sh-sci: fix break handling for sysrq
Umang Jain (1):
media: imx258: Limit the max analogue gain to 480
Vasily Averin (1):
memcg: enable accounting for pids in nested pid namespaces
Vidya Sagar (1):
arm64: tegra: Fix Tegra194 PCIe EP compatible string
Vinod Koul (6):
arm64: dts: qcom: ipq8074: fix pci node reg property
arm64: dts: qcom: sdm660: use reg value for memory node
arm64: dts: qcom: ipq6018: drop '0x' from unit address
arm64: dts: qcom: sdm630: don't use underscore in node name
arm64: dts: qcom: msm8994: don't use underscore in node name
arm64: dts: qcom: msm8996: don't use underscore in node name
Wang Hai (1):
VMCI: fix NULL pointer dereference when unmapping queue pair
Wei Li (1):
scsi: fdomain: Fix error return code in fdomain_probe()
Wenpeng Liang (1):
RDMA/hns: Fix QP's resp incomplete assignment
Wentao_Liang (1):
net/mlx5: DR, fix a potential use-after-free bug
Will Deacon (1):
arm64: mm: Fix TLBI vs ASID rollover
Xiaotan Luo (1):
ASoC: rockchip: i2s: Fixup config for DAIFMT_DSP_A/B
Xin Long (1):
tipc: keep the skb in rcv queue until the whole data is read
Yajun Deng (1):
netlink: Deal with ESRCH error in nlmsg_notify()
Yang Yingliang (2):
media: atomisp: pci: fix error return code in atomisp_pci_probe()
net: w5100: check return value after calling platform_get_resource()
Yangtao Li (1):
f2fs: reduce the scope of setting fsck tag when de->name_len is zero
Yevgeny Kliteynik (1):
net/mlx5: DR, Enable QP retransmission
Yonghong Song (1):
selftests/bpf: Fix flaky send_signal test
Yongqiang Niu (1):
soc: mediatek: cmdq: add address shift in jump
Yufeng Mo (1):
bonding: 3ad: fix the concurrency between __bond_release_one() and bond_3ad_state_machine_handler()
Zekun Shen (1):
ath9k: fix OOB read ar9300_eeprom_restore_internal
Zhang Qilong (1):
iwlwifi: mvm: fix a memory leak in iwl_mvm_mac_ctxt_beacon_changed
Zhaoyu Liu (1):
pinctrl: remove empty lines in pinctrl subsystem
Zhen Lei (2):
pinctrl: single: Fix error return code in pcs_parse_bits_in_pinctrl_entry()
workqueue: Fix possible memory leaks in wq_numa_init()
Zheyu Ma (5):
video: fbdev: kyro: fix a DoS bug by restricting user input
tty: serial: jsm: hold port lock when reporting modem line changes
video: fbdev: asiliantfb: Error out if 'pixclock' equals zero
video: fbdev: kyro: Error out if 'pixclock' equals zero
video: fbdev: riva: Error out if 'pixclock' equals zero
Zhouyi Zhou (1):
rcu: Fix macro name CONFIG_TASKS_RCU_TRACE
chenying (1):
ovl: fix BUG_ON() in may_delete() when called from ovl_cleanup()
sumiyawang (1):
libnvdimm/pmem: Fix crash triggered when I/O in-flight during unbind
zhenwei pi (1):
crypto: public_key: fix overflow during implicit conversion
王贇 (1):
net: fix NULL pointer reference in cipso_v4_doi_free
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/devices.txt +3 -3
@@ -3003,10 +3003,10 @@ 65 = /dev/infiniband/issm1 Second InfiniBand IsSM device ... 127 = /dev/infiniband/issm63 63rd InfiniBand IsSM device - 128 = /dev/infiniband/uverbs0 First InfiniBand verbs device - 129 = /dev/infiniband/uverbs1 Second InfiniBand verbs device + 192 = /dev/infiniband/uverbs0 First InfiniBand verbs device + 193 = /dev/infiniband/uverbs1 Second InfiniBand verbs device ... - 159 = /dev/infiniband/uverbs31 31st InfiniBand verbs device + 223 = /dev/infiniband/uverbs31 31st InfiniBand verbs device 232 char Biometric Devices 0 = /dev/biometric/sensor0/fingerprint first fingerprint sensor on first device
Documentation/devicetree/bindings/pinctrl/marvell,armada-37xx-pinctrl.txt +4 -4
@@ -43,19 +43,19 @@ group emmc_nb group pwm0 - pin 11 (GPIO1-11) - - functions pwm, gpio + - functions pwm, led, gpio group pwm1 - pin 12 - - functions pwm, gpio + - functions pwm, led, gpio group pwm2 - pin 13 - - functions pwm, gpio + - functions pwm, led, gpio group pwm3 - pin 14 - - functions pwm, gpio + - functions pwm, led, gpio group pmic1 - pin 7
Makefile +1 -1
@@ -1,7 +1,7 @@ # SPDX-License-Identifier: GPL-2.0 VERSION = 5 PATCHLEVEL = 10 -SUBLEVEL = 66 +SUBLEVEL = 67 EXTRAVERSION = NAME = Dare mighty things
arch/arm/boot/compressed/Makefile +2 -0
@@ -84,6 +84,8 @@ compress-$(CONFIG_KERNEL_LZ4) = lz4 libfdt_objs := fdt_rw.o fdt_ro.o fdt_wip.o fdt.o ifeq ($(CONFIG_ARM_ATAG_DTB_COMPAT),y) +CFLAGS_REMOVE_atags_to_fdt.o += -Wframe-larger-than=${CONFIG_FRAME_WARN} +CFLAGS_atags_to_fdt.o += -Wframe-larger-than=1280 OBJS += $(libfdt_objs) atags_to_fdt.o endif
arch/arm/boot/dts/at91-kizbox3_common.dtsi +1 -1
@@ -336,7 +336,7 @@ &pwm0 { }; &shutdown_controller { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; atmel,wakeup-rtc-timer; input@0 {
arch/arm/boot/dts/at91-sam9x60ek.dts +1 -1
@@ -662,7 +662,7 @@ &rtt { }; &shutdown_controller { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; status = "okay"; input@0 {
arch/arm/boot/dts/at91-sama5d27_som1_ek.dts +1 -1
@@ -138,7 +138,7 @@ i2c3: i2c@600 { }; shdwc@f8048010 { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; atmel,wakeup-rtc-timer; input@0 {
arch/arm/boot/dts/at91-sama5d27_wlsom1_ek.dts +1 -1
@@ -205,7 +205,7 @@ &sdmmc0 { }; &shutdown_controller { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; atmel,wakeup-rtc-timer; input@0 {
arch/arm/boot/dts/at91-sama5d2_icp.dts +1 -1
@@ -693,7 +693,7 @@ &sdmmc0 { }; &shutdown_controller { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; atmel,wakeup-rtc-timer; input@0 {
arch/arm/boot/dts/at91-sama5d2_ptc_ek.dts +1 -1
@@ -203,7 +203,7 @@ i2c2: i2c@600 { }; shdwc@f8048010 { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; input@0 { reg = <0>;
arch/arm/boot/dts/at91-sama5d2_xplained.dts +1 -1
@@ -347,7 +347,7 @@ i2c2: i2c@600 { }; shdwc@f8048010 { - atmel,shdwc-debouncer = <976>; + debounce-delay-us = <976>; atmel,wakeup-rtc-timer; input@0 {
arch/arm/boot/dts/imx53-ppd.dts +13 -10
@@ -70,6 +70,12 @@ cko2_11M: sgtl-clock-cko2 { clock-frequency = <11289600>; }; + achc_24M: achc-clock { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24000000>; + }; + sgtlsound: sound { compatible = "fsl,imx53-cpuvo-sgtl5000", "fsl,imx-audio-sgtl5000";
@@ -313,16 +319,13 @@ &gpio4 11 GPIO_ACTIVE_LOW &gpio4 12 GPIO_ACTIVE_LOW>; status = "okay"; - spidev0: spi@0 { - compatible = "ge,achc"; - reg = <0>; - spi-max-frequency = <1000000>; - }; - - spidev1: spi@1 { - compatible = "ge,achc"; - reg = <1>; - spi-max-frequency = <1000000>; + spidev0: spi@1 { + compatible = "ge,achc", "nxp,kinetis-k20"; + reg = <1>, <0>; + vdd-supply = <®_3v3>; + vdda-supply = <®_3v3>; + clocks = <&achc_24M>; + reset-gpios = <&gpio3 6 GPIO_ACTIVE_LOW>; }; gpioxra0: gpio@2 {
arch/arm/boot/dts/qcom-apq8064.dtsi +3 -3
@@ -1262,9 +1262,9 @@ dsi0: mdss_dsi@4700000 { <&mmcc DSI1_BYTE_CLK>, <&mmcc DSI_PIXEL_CLK>, <&mmcc DSI1_ESC_CLK>; - clock-names = "iface_clk", "bus_clk", "core_mmss_clk", - "src_clk", "byte_clk", "pixel_clk", - "core_clk"; + clock-names = "iface", "bus", "core_mmss", + "src", "byte", "pixel", + "core"; assigned-clocks = <&mmcc DSI1_BYTE_SRC>, <&mmcc DSI1_ESC_SRC>,
arch/arm/boot/dts/stm32mp15xx-dhcom-pdk2.dtsi +4 -4
@@ -172,15 +172,15 @@ sgtl5000_port: port { sgtl5000_tx_endpoint: endpoint@0 { reg = <0>; remote-endpoint = <&sai2a_endpoint>; - frame-master; - bitclock-master; + frame-master = <&sgtl5000_tx_endpoint>; + bitclock-master = <&sgtl5000_tx_endpoint>; }; sgtl5000_rx_endpoint: endpoint@1 { reg = <1>; remote-endpoint = <&sai2b_endpoint>; - frame-master; - bitclock-master; + frame-master = <&sgtl5000_rx_endpoint>; + bitclock-master = <&sgtl5000_rx_endpoint>; }; };
arch/arm/boot/dts/stm32mp15xx-dhcor-avenger96.dtsi +2 -4
@@ -185,8 +185,8 @@ &i2c2 { /* X6 I2C2 */ &i2c4 { hdmi-transmitter@3d { compatible = "adi,adv7513"; - reg = <0x3d>, <0x2d>, <0x4d>, <0x5d>; - reg-names = "main", "cec", "edid", "packet"; + reg = <0x3d>, <0x4d>, <0x2d>, <0x5d>; + reg-names = "main", "edid", "cec", "packet"; clocks = <&cec_clock>; clock-names = "cec";
@@ -204,8 +204,6 @@ hdmi-transmitter@3d { adi,input-depth = <8>; adi,input-colorspace = "rgb"; adi,input-clock = "1x"; - adi,input-style = <1>; - adi,input-justification = "evenly"; ports { #address-cells = <1>;
arch/arm/boot/dts/stm32mp15xx-dkx.dtsi +4 -4
@@ -212,15 +212,15 @@ cs42l51_port: port { cs42l51_tx_endpoint: endpoint@0 { reg = <0>; remote-endpoint = <&sai2a_endpoint>; - frame-master; - bitclock-master; + frame-master = <&cs42l51_tx_endpoint>; + bitclock-master = <&cs42l51_tx_endpoint>; }; cs42l51_rx_endpoint: endpoint@1 { reg = <1>; remote-endpoint = <&sai2b_endpoint>; - frame-master; - bitclock-master; + frame-master = <&cs42l51_rx_endpoint>; + bitclock-master = <&cs42l51_rx_endpoint>; }; }; };
arch/arm/boot/dts/tegra20-acer-a500-picasso.dts +1 -24
@@ -704,7 +704,6 @@ usb-phy@c5000000 { nvidia,xcvr-setup-use-fuses; nvidia,xcvr-lsfslew = <2>; nvidia,xcvr-lsrslew = <2>; - vbus-supply = <&vdd_vbus1>; }; usb@c5008000 {
@@ -716,7 +715,7 @@ usb-phy@c5008000 { nvidia,xcvr-setup-use-fuses; nvidia,xcvr-lsfslew = <2>; nvidia,xcvr-lsrslew = <2>; - vbus-supply = <&vdd_vbus3>; + vbus-supply = <&vdd_5v0_sys>; }; brcm_wifi_pwrseq: wifi-pwrseq {
@@ -967,28 +966,6 @@ vdd_pnl: regulator@3 { vin-supply = <&vdd_5v0_sys>; }; - vdd_vbus1: regulator@4 { - compatible = "regulator-fixed"; - regulator-name = "vdd_usb1_vbus"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - regulator-always-on; - gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>; - enable-active-high; - vin-supply = <&vdd_5v0_sys>; - }; - - vdd_vbus3: regulator@5 { - compatible = "regulator-fixed"; - regulator-name = "vdd_usb3_vbus"; - regulator-min-microvolt = <5000000>; - regulator-max-microvolt = <5000000>; - regulator-always-on; - gpio = <&gpio TEGRA_GPIO(D, 3) GPIO_ACTIVE_HIGH>; - enable-active-high; - vin-supply = <&vdd_5v0_sys>; - }; - sound { compatible = "nvidia,tegra-audio-wm8903-picasso", "nvidia,tegra-audio-wm8903";
arch/arm/boot/dts/tegra20-tamonten.dtsi +7 -7
@@ -185,8 +185,9 @@ conf_ata { nvidia,pins = "ata", "atb", "atc", "atd", "ate", "cdev1", "cdev2", "dap1", "dtb", "gma", "gmb", "gmc", "gmd", "gme", "gpu7", - "gpv", "i2cp", "pta", "rm", "slxa", - "slxk", "spia", "spib", "uac"; + "gpv", "i2cp", "irrx", "irtx", "pta", + "rm", "slxa", "slxk", "spia", "spib", + "uac"; nvidia,pull = <TEGRA_PIN_PULL_NONE>; nvidia,tristate = <TEGRA_PIN_DISABLE>; };
@@ -211,7 +212,7 @@ conf_crtp { conf_ddc { nvidia,pins = "ddc", "dta", "dtd", "kbca", "kbcb", "kbcc", "kbcd", "kbce", "kbcf", - "sdc"; + "sdc", "uad", "uca"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_DISABLE>; };
@@ -221,10 +222,9 @@ conf_hdint { "lvp0", "owc", "sdb"; nvidia,tristate = <TEGRA_PIN_ENABLE>; }; - conf_irrx { - nvidia,pins = "irrx", "irtx", "sdd", "spic", - "spie", "spih", "uaa", "uab", "uad", - "uca", "ucb"; + conf_sdd { + nvidia,pins = "sdd", "spic", "spie", "spih", + "uaa", "uab", "ucb"; nvidia,pull = <TEGRA_PIN_PULL_UP>; nvidia,tristate = <TEGRA_PIN_ENABLE>; };
arch/arm64/boot/dts/allwinner/sun50i-h6-tanix-tx6.dts +2 -2
@@ -32,14 +32,14 @@ hdmi_con_in: endpoint { }; }; - reg_vcc3v3: vcc3v3 { + reg_vcc3v3: regulator-vcc3v3 { compatible = "regulator-fixed"; regulator-name = "vcc3v3"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; }; - reg_vdd_cpu_gpu: vdd-cpu-gpu { + reg_vdd_cpu_gpu: regulator-vdd-cpu-gpu { compatible = "regulator-fixed"; regulator-name = "vdd-cpu-gpu"; regulator-min-microvolt = <1135000>;
arch/arm64/boot/dts/freescale/fsl-ls1046a-frwy.dts +1 -7
@@ -83,15 +83,9 @@ rtc@51 { }; eeprom@52 { - compatible = "atmel,24c512"; + compatible = "onnn,cat24c04", "atmel,24c04"; reg = <0x52>; }; - - eeprom@53 { - compatible = "atmel,24c512"; - reg = <0x53>; - }; - }; }; };
arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts +1 -6
@@ -58,14 +58,9 @@ temp-sensor@4c { }; eeprom@52 { - compatible = "atmel,24c512"; + compatible = "onnn,cat24c05", "atmel,24c04"; reg = <0x52>; }; - - eeprom@53 { - compatible = "atmel,24c512"; - reg = <0x53>; - }; }; &i2c3 {
arch/arm64/boot/dts/nvidia/tegra132.dtsi +2 -2
@@ -1215,13 +1215,13 @@ cpus { cpu@0 { device_type = "cpu"; - compatible = "nvidia,denver"; + compatible = "nvidia,tegra132-denver"; reg = <0>; }; cpu@1 { device_type = "cpu"; - compatible = "nvidia,denver"; + compatible = "nvidia,tegra132-denver"; reg = <1>; }; };
arch/arm64/boot/dts/nvidia/tegra194.dtsi +3 -3
@@ -1976,7 +1976,7 @@ pcie@141a0000 { }; pcie_ep@14160000 { - compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep"; + compatible = "nvidia,tegra194-pcie-ep"; power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX4A>; reg = <0x00 0x14160000 0x0 0x00020000>, /* appl registers (128K) */ <0x00 0x36040000 0x0 0x00040000>, /* iATU_DMA reg space (256K) */
@@ -2008,7 +2008,7 @@ pcie_ep@14160000 { }; pcie_ep@14180000 { - compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep"; + compatible = "nvidia,tegra194-pcie-ep"; power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8B>; reg = <0x00 0x14180000 0x0 0x00020000>, /* appl registers (128K) */ <0x00 0x38040000 0x0 0x00040000>, /* iATU_DMA reg space (256K) */
@@ -2040,7 +2040,7 @@ pcie_ep@14180000 { }; pcie_ep@141a0000 { - compatible = "nvidia,tegra194-pcie-ep", "snps,dw-pcie-ep"; + compatible = "nvidia,tegra194-pcie-ep"; power-domains = <&bpmp TEGRA194_POWER_DOMAIN_PCIEX8A>; reg = <0x00 0x141a0000 0x0 0x00020000>, /* appl registers (128K) */ <0x00 0x3a040000 0x0 0x00040000>, /* iATU_DMA reg space (256K) */
arch/arm64/boot/dts/qcom/ipq6018.dtsi +1 -1
@@ -151,7 +151,7 @@ reserved-memory { #size-cells = <2>; ranges; - rpm_msg_ram: memory@0x60000 { + rpm_msg_ram: memory@60000 { reg = <0x0 0x60000 0x0 0x6000>; no-map; };
arch/arm64/boot/dts/qcom/ipq8074-hk01.dts +1 -1
@@ -20,7 +20,7 @@ chosen { stdout-path = "serial0"; }; - memory { + memory@40000000 { device_type = "memory"; reg = <0x0 0x40000000 0x0 0x20000000>; };
arch/arm64/boot/dts/qcom/ipq8074.dtsi +8 -8
@@ -567,10 +567,10 @@ frame@b128000 { pcie1: pci@10000000 { compatible = "qcom,pcie-ipq8074"; - reg = <0x10000000 0xf1d - 0x10000f20 0xa8 - 0x00088000 0x2000 - 0x10100000 0x1000>; + reg = <0x10000000 0xf1d>, + <0x10000f20 0xa8>, + <0x00088000 0x2000>, + <0x10100000 0x1000>; reg-names = "dbi", "elbi", "parf", "config"; device_type = "pci"; linux,pci-domain = <1>;
@@ -629,10 +629,10 @@ IRQ_TYPE_LEVEL_HIGH>, /* int_c */ pcie0: pci@20000000 { compatible = "qcom,pcie-ipq8074"; - reg = <0x20000000 0xf1d - 0x20000f20 0xa8 - 0x00080000 0x2000 - 0x20100000 0x1000>; + reg = <0x20000000 0xf1d>, + <0x20000f20 0xa8>, + <0x00080000 0x2000>, + <0x20100000 0x1000>; reg-names = "dbi", "elbi", "parf", "config"; device_type = "pci"; linux,pci-domain = <0>;
arch/arm64/boot/dts/qcom/msm8994.dtsi +4 -2
@@ -14,16 +14,18 @@ / { chosen { }; clocks { - xo_board: xo_board { + xo_board: xo-board { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <19200000>; + clock-output-names = "xo_board"; }; - sleep_clk: sleep_clk { + sleep_clk: sleep-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32768>; + clock-output-names = "sleep_clk"; }; };
arch/arm64/boot/dts/qcom/msm8996.dtsi +2 -2
@@ -17,14 +17,14 @@ / { chosen { }; clocks { - xo_board: xo_board { + xo_board: xo-board { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <19200000>; clock-output-names = "xo_board"; }; - sleep_clk: sleep_clk { + sleep_clk: sleep-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <32764>;
arch/arm64/boot/dts/qcom/sdm630.dtsi +159 -98
363 lines not on this page · raw message
arch/arm64/boot/dts/qcom/sm8250.dtsi +1 -1
@@ -2346,7 +2346,7 @@ apps_bcm_voter: bcm_voter { }; }; - epss_l3: interconnect@18591000 { + epss_l3: interconnect@18590000 { compatible = "qcom,sm8250-epss-l3"; reg = <0 0x18590000 0 0x1000>;
arch/arm64/include/asm/kernel-pgtable.h +2 -2
@@ -65,8 +65,8 @@#define EARLY_KASLR (0)#endif -#define EARLY_ENTRIES (vstart, vend, shift) (((vend) >> (shift)) \ - - ((vstart) >> (shift)) + 1 + EARLY_KASLR) +#define EARLY_ENTRIES (vstart, vend, shift) \ + ((((vend) - 1) >> (shift)) - ((vstart) >> (shift)) + 1 + EARLY_KASLR)#define EARLY_PGDS (vstart, vend) (EARLY_ENTRIES(vstart, vend, PGDIR_SHIFT))
arch/arm64/include/asm/mmu.h +25 -4
@@ -30,11 +30,32 @@ typedef struct { } mm_context_t;/* -* This macro is only used by the TLBI and low-level switch_mm() code, -* neither of which can race with an ASID change. We therefore don't -* need to reload the counter using atomic64_read(). +* We use atomic64_read() here because the ASID for an 'mm_struct' can +* be reallocated when scheduling one of its threads following a +* rollover event (see new_context() and flush_context()). In this case, +* a concurrent TLBI (e.g. via try_to_unmap_one() and ptep_clear_flush()) +* may use a stale ASID. This is fine in principle as the new ASID is +* guaranteed to be clean in the TLB, but the TLBI routines have to take +* care to handle the following race: +* +* CPU 0 CPU 1 CPU 2 +* +* // ptep_clear_flush(mm) +* xchg_relaxed(pte, 0) +* DSB ISHST +* old = ASID(mm) +* | <rollover> +* | new = new_context(mm) +* \-----------------> atomic_set(mm->context.id, new) +* cpu_switch_mm(mm) +* // Hardware walk of pte using new ASID +* TLBI(old) +* +* In this scenario, the barrier on CPU 0 and the dependency on CPU 1 +* ensure that the page-table walker on CPU 1 *must* see the invalid PTE +* written by CPU 0. */ -#define ASID (mm) ((mm)->context.id.counter & 0xffff) +#define ASID (mm) (atomic64_read(&(mm)->context.id) & 0xffff)static inline bool arm64_kernel_unmapped_at_el0 (void ) {
arch/arm64/include/asm/tlbflush.h +6 -5
@@ -245,9 +245,10 @@ static inline void flush_tlb_all(void)static inline void flush_tlb_mm (struct mm_struct *mm) { -unsigned long asid =__TLBI_VADDR (0 ,ASID (mm)); +unsigned long asid;dsb (ishst); + asid =__TLBI_VADDR (0 ,ASID (mm));__tlbi (aside1is, asid);__tlbi_user (aside1is, asid);dsb (ish);
@@ -256,9 +257,10 @@ static inline void flush_tlb_mm(struct mm_struct *mm)static inline void flush_tlb_page_nosync (struct vm_area_struct *vma,unsigned long uaddr) { -unsigned long addr =__TLBI_VADDR (uaddr,ASID (vma->vm_mm)); +unsigned long addr;dsb (ishst); + addr =__TLBI_VADDR (uaddr,ASID (vma->vm_mm));__tlbi (vale1is, addr);__tlbi_user (vale1is, addr); }
@@ -283,9 +285,7 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, {int num =0 ;int scale =0 ; -unsigned long asid =ASID (vma->vm_mm); -unsigned long addr; -unsigned long pages; +unsigned long asid, addr, pages; start =round_down (start, stride); end =round_up (end, stride);
@@ -305,6 +305,7 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, }dsb (ishst); + asid =ASID (vma->vm_mm);/* * When the CPU does not support TLB range operations, flush the TLB
arch/arm64/kernel/head.S +6 -5
@@ -191,7 +191,7 @@ SYM_CODE_END(preserve_boot_args) * to be composed of multiple pages. (This effectively scales the end index). * * vstart: virtual address of start of range - * vend: virtual address of end of range + * vend: virtual address of end of range - we map [vstart, vend] * shift: shift used to transform virtual address into index * ptrs: number of entries in page table * istart: index in table corresponding to vstart
@@ -228,17 +228,18 @@ SYM_CODE_END(preserve_boot_args) * * tbl: location of page table * rtbl: address to be used for first level page table entry (typically tbl + PAGE_SIZE) - * vstart: start address to map - * vend: end address to map - we map [vstart, vend] + * vstart: virtual address of start of range + * vend: virtual address of end of range - we map [vstart, vend - 1] * flags: flags to use to map last level entries * phys: physical address corresponding to vstart - physical memory is contiguous * pgds: the number of pgd entries * * Temporaries: istart, iend, tmp, count, sv - these need to be different registers - * Preserves: vstart, vend, flags - * Corrupts: tbl, rtbl, istart, iend, tmp, count, sv + * Preserves: vstart, flags + * Corrupts: tbl, rtbl, vend, istart, iend, tmp, count, sv */ .macro map_memory, tbl, rtbl, vstart, vend, flags, phys, pgds, istart, iend, tmp, count, sv + sub \vend, \vend, #1 add \rtbl, \tbl, #PAGE_SIZE mov \sv, \rtbl mov \count, #0
arch/m68k/Kconfig.bus +1 -1
@@ -63,7 +63,7 @@ source "drivers/zorro/Kconfig" endif -if !MMU +if COLDFIRE config ISA_DMA_API def_bool !M5272
arch/mips/mti-malta/malta-dtshim.c +1 -1
@@ -22,7 +22,7 @@#define ROCIT_CONFIG_GEN1_MEMMAP_SHIFT 8#define ROCIT_CONFIG_GEN1_MEMMAP_MASK (0xf << 8) -static unsigned char fdt_buf[16 <<10 ]__initdata ; +static unsigned char fdt_buf[16 <<10 ]__initdata __aligned(8) ;/* determined physical memory size, not overridden by command line args */ extern unsigned long physical_memsize;
arch/openrisc/kernel/entry.S +2 -0
@@ -547,6 +547,7 @@ EXCEPTION_ENTRY(_external_irq_handler) l.bnf 1f // ext irq enabled, all ok. l.nop +#ifdef CONFIG_PRINTK l.addi r1,r1,-0x8 l.movhi r3,hi(42f) l.ori r3,r3,lo(42f)
@@ -560,6 +561,7 @@ EXCEPTION_ENTRY(_external_irq_handler) .string "\n\rESR interrupt bug: in _external_irq_handler (ESR %x)\n\r" .align 4 .previous +#endif l.ori r4,r4,SPR_SR_IEE // fix the bug // l.sw PT_SR(r1),r4
arch/parisc/kernel/signal.c +6 -0
@@ -237,6 +237,12 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,#endif usp = (regs->gr[30 ] & ~(0x01UL )); +#ifdef CONFIG_64BIT +if (is_compat_task ()) { +/* The gcc alloca implementation leaves garbage in the upper 32 bits of sp */ + usp = (compat_uint_t )usp; + } +#endif /*FIXME: frame_size parameter is unused, remove it. */ frame =get_sigframe (&ksig->ka, usp,sizeof (*frame));
arch/powerpc/configs/mpc885_ads_defconfig +1 -0
@@ -34,6 +34,7 @@ CONFIG_MTD_CFI_GEOMETRY=y # CONFIG_MTD_CFI_I2 is not set CONFIG_MTD_CFI_I4=y CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_PHYSMAP=y CONFIG_MTD_PHYSMAP_OF=y # CONFIG_BLK_DEV is not set CONFIG_NETDEVICES=y
arch/powerpc/include/asm/pmc.h +7 -0
@@ -34,6 +34,13 @@ static inline void ppc_set_pmu_inuse(int inuse)#endif } +#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE +static inline int ppc_get_pmu_inuse (void ) +{ +return get_paca ()->pmcregs_in_use; +} +#endif +extern void power4_enable_pmcs (void );#else /* CONFIG_PPC64 */
arch/powerpc/kernel/smp.c +5 -6
@@ -1385,6 +1385,7 @@ static void add_cpu_to_masks(int cpu)* add it to it's own thread sibling mask. */ cpumask_set_cpu (cpu,cpu_sibling_mask (cpu)); +cpumask_set_cpu (cpu,cpu_core_mask (cpu));for (i = first_thread; i < first_thread + threads_per_core; i++)if (cpu_online (i))
@@ -1399,11 +1400,6 @@ static void add_cpu_to_masks(int cpu)if (has_coregroup_support ())update_coregroup_mask (cpu, &mask); -if (chip_id ==-1 || !ret) { -cpumask_copy (per_cpu (cpu_core_map, cpu),cpu_cpu_mask (cpu)); - goto out; - } -if (shared_caches) submask_fn = cpu_l2_cache_mask;
@@ -1413,6 +1409,10 @@ static void add_cpu_to_masks(int cpu)/* Skip all CPUs already part of current CPU core mask */ cpumask_andnot (mask, cpu_online_mask,cpu_core_mask (cpu)); +/* If chip_id is -1; limit the cpu_core_mask to within DIE*/ +if (chip_id ==-1 ) +cpumask_and (mask, mask,cpu_cpu_mask (cpu)); +for_each_cpu (i, mask) {if (chip_id ==cpu_to_chip_id (i)) {or_cpumasks_related (cpu, i, submask_fn, cpu_core_mask);
@@ -1422,7 +1422,6 @@ static void add_cpu_to_masks(int cpu) } } -out:free_cpumask_var (mask); }
arch/powerpc/kernel/stacktrace.c +1 -0
@@ -8,6 +8,7 @@* Copyright 2018 Nick Piggin, Michael Ellerman, IBM Corp. */ +#include <linux/delay.h> #include <linux/export.h> #include <linux/kallsyms.h> #include <linux/module.h>
arch/powerpc/kvm/book3s_64_mmu_radix.c +4 -2
@@ -64,10 +64,12 @@ unsigned long __kvmhv_copy_tofrom_guest_radix(int lpid, int pid, }isync (); +pagefault_disable ();if (is_load) - ret =copy_from_user_nofault (to, (const void __user *)from, n); + ret =__copy_from_user_inatomic (to, (const void __user *)from, n);else - ret =copy_to_user_nofault ((void __user *)to, from, n); + ret =__copy_to_user_inatomic ((void __user *)to, from, n); +pagefault_enable ();/* switch the pid first to avoid running host with unallocated pid */ if (quadrant ==1 && pid != old_pid)
arch/powerpc/kvm/book3s_64_vio_hv.c +6 -3
@@ -173,10 +173,13 @@ static void kvmppc_rm_tce_put(struct kvmppc_spapr_tce_table *stt, idx -= stt->offset; page = stt->pages[idx /TCES_PER_PAGE ];/* -* page must not be NULL in real mode, -* kvmppc_rm_ioba_validate() must have taken care of this. +* kvmppc_rm_ioba_validate() allows pages not be allocated if TCE is +* being cleared, otherwise it returns H_TOO_HARD and we skip this. */ -WARN_ON_ONCE_RM (!page); +if (!page) { +WARN_ON_ONCE_RM (tce !=0 ); +return ; + } tbl =kvmppc_page_address (page); tbl[idx %TCES_PER_PAGE ] = tce;
arch/powerpc/kvm/book3s_hv.c +20 -0
@@ -58,6 +58,7 @@#include <asm/kvm_book3s.h> #include <asm/mmu_context.h> #include <asm/lppaca.h> +#include <asm/pmc.h> #include <asm/processor.h> #include <asm/cputhreads.h> #include <asm/page.h>
@@ -3619,6 +3620,18 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit, cpu_has_feature(CPU_FTR_P9_TM_HV_ASSIST))kvmppc_restore_tm_hv (vcpu, vcpu->arch.shregs.msr, true); +#ifdef CONFIG_PPC_PSERIES +if (kvmhv_on_pseries ()) { +barrier (); +if (vcpu->arch.vpa.pinned_addr) { +struct lppaca *lp = vcpu->arch.vpa.pinned_addr; +get_lppaca ()->pmcregs_in_use = lp->pmcregs_in_use; + }else { +get_lppaca ()->pmcregs_in_use =1 ; + } +barrier (); + } +#endif kvmhv_load_guest_pmu (vcpu);msr_check_and_set (MSR_FP |MSR_VEC |MSR_VSX );
@@ -3756,6 +3769,13 @@ static int kvmhv_p9_guest_entry(struct kvm_vcpu *vcpu, u64 time_limit, save_pmu |=nesting_enabled (vcpu->kvm);kvmhv_save_guest_pmu (vcpu, save_pmu); +#ifdef CONFIG_PPC_PSERIES +if (kvmhv_on_pseries ()) { +barrier (); +get_lppaca ()->pmcregs_in_use =ppc_get_pmu_inuse (); +barrier (); + } +#endif vc->entry_exit_map =0x101 ; vc->in_guest =0 ;
arch/powerpc/mm/numa.c +10 -3
@@ -893,7 +893,7 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn)static void __init find_possible_nodes (void ) {struct device_node *rtas; -const __be32 *domains; +const __be32 *domains =NULL ;int prop_length, max_nodes;u32 i;
@@ -909,9 +909,14 @@ static void __init find_possible_nodes(void)* it doesn't exist, then fallback on ibm,max-associativity-domains. * Current denotes what the platform can support compared to max * which denotes what the Hypervisor can support. +* +* If the LPAR is migratable, new nodes might be activated after a LPM, +* so we should consider the max number in that case. */ - domains =of_get_property (rtas,"ibm,current-associativity-domains" , - &prop_length); +if (!of_get_property (of_root,"ibm,migratable-partition" ,NULL )) + domains =of_get_property (rtas, +"ibm,current-associativity-domains" , + &prop_length);if (!domains) { domains =of_get_property (rtas,"ibm,max-associativity-domains" , &prop_length);
@@ -920,6 +925,8 @@ static void __init find_possible_nodes(void) } max_nodes =of_read_number (&domains[min_common_depth],1 ); +pr_info ("Partition configured for %d NUMA nodes.\n" , max_nodes); +for (i =0 ; i < max_nodes; i++) {if (!node_possible (i))node_set (i, node_possible_map);
arch/powerpc/perf/hv-gpci.c +1 -1
@@ -175,7 +175,7 @@ static unsigned long single_gpci_request(u32 req, u32 starting_index,*/ count =0 ;for (i = offset; i < offset + length; i++) - count |= arg->bytes[i] << (i - offset); + count |= (u64)(arg->bytes[i]) << ((length -1 - (i - offset)) *8 ); *value = count; out:
arch/s390/include/asm/setup.h +2 -0
@@ -38,6 +38,7 @@#define MACHINE_FLAG_NX BIT(15)#define MACHINE_FLAG_GS BIT(16)#define MACHINE_FLAG_SCC BIT(17) +#define MACHINE_FLAG_PCI_MIO BIT(18)#define LPP_MAGIC BIT(31)#define LPP_PID_MASK _AC(0xffffffff, UL)
@@ -113,6 +114,7 @@ extern unsigned long mio_wb_bit_mask;#define MACHINE_HAS_NX (S390_lowcore.machine_flags & MACHINE_FLAG_NX)#define MACHINE_HAS_GS (S390_lowcore.machine_flags & MACHINE_FLAG_GS)#define MACHINE_HAS_SCC (S390_lowcore.machine_flags & MACHINE_FLAG_SCC) +#define MACHINE_HAS_PCI_MIO (S390_lowcore.machine_flags & MACHINE_FLAG_PCI_MIO)/* * Console mode. Override with conmode=
arch/s390/kernel/early.c +4 -0
@@ -238,6 +238,10 @@ static __init void detect_machine_facilities(void) clock_comparator_max =-1ULL >>1 ;__ctl_set_bit (0 ,53 ); } +if (IS_ENABLED (CONFIG_PCI ) &&test_facility (153 )) { + S390_lowcore.machine_flags |=MACHINE_FLAG_PCI_MIO ; +/* the control bit is set during PCI initialization */ + } }static inline void save_vector_registers (void )
arch/s390/kernel/jump_label.c +1 -1
@@ -36,7 +36,7 @@ static void jump_label_bug(struct jump_entry *entry, struct insn *expected,unsigned char *ipe = (unsigned char *)expected;unsigned char *ipn = (unsigned char *)new; -pr_emerg ("Jump label code mismatch at %pS [%p]\n" , ipc, ipc); +pr_emerg ("Jump label code mismatch at %pS [%px]\n" , ipc, ipc);pr_emerg ("Found: %6ph\n" , ipc);pr_emerg ("Expected: %6ph\n" , ipe);pr_emerg ("New: %6ph\n" , ipn);
arch/s390/mm/init.c +1 -1
@@ -180,9 +180,9 @@ static void pv_init(void)return ;/* make sure bounce buffers are shared */ + swiotlb_force =SWIOTLB_FORCE ;swiotlb_init (1 );swiotlb_update_mem_attributes (); - swiotlb_force =SWIOTLB_FORCE ; }void __init mem_init (void )
arch/s390/pci/pci.c +2 -3
@@ -866,7 +866,6 @@ static void zpci_mem_exit(void) }static unsigned int s390_pci_probe__initdata =1 ; -static unsigned int s390_pci_no_mio__initdata ;unsigned int s390_pci_force_floating__initdata ;static unsigned int s390_pci_initialized;
@@ -877,7 +876,7 @@ char * __init pcibios_setup(char *str)return NULL ; }if (!strcmp (str,"nomio" )) { - s390_pci_no_mio =1 ; + S390_lowcore.machine_flags &= ~MACHINE_FLAG_PCI_MIO ;return NULL ; }if (!strcmp (str,"force_floating" )) {
@@ -906,7 +905,7 @@ static int __init pci_base_init(void)if (!test_facility (69 ) || !test_facility (71 ))return 0 ; -if (test_facility (153 ) && !s390_pci_no_mio) { +if (MACHINE_HAS_PCI_MIO ) {static_branch_enable (&have_mio);ctl_set_bit (2 ,5 ); }
arch/x86/kernel/cpu/mshyperv.c +7 -2
@@ -322,8 +322,6 @@ static void __init ms_hyperv_init_platform(void)if (ms_hyperv.features &HV_ACCESS_TSC_INVARIANT ) {wrmsrl (HV_X64_MSR_TSC_INVARIANT_CONTROL ,0x1 );setup_force_cpu_cap (X86_FEATURE_TSC_RELIABLE ); - }else { -mark_tsc_unstable ("running on Hyper-V" ); }/*
@@ -382,6 +380,13 @@ static void __init ms_hyperv_init_platform(void)/* Register Hyper-V specific clocksource */ hv_init_clocksource ();#endif +/* +* TSC should be marked as unstable only after Hyper-V +* clocksource has been initialized. This ensures that the +* stability of the sched_clock is not altered. +*/ +if (!(ms_hyperv.features &HV_ACCESS_TSC_INVARIANT )) +mark_tsc_unstable ("running on Hyper-V" ); }const __initconst struct hypervisor_x86 x86_hyper_ms_hyperv = {
arch/x86/xen/p2m.c +2 -2
@@ -618,8 +618,8 @@ int xen_alloc_p2m_entry(unsigned long pfn) }/* Expanded the p2m? */ -if (pfn > xen_p2m_last_pfn) { - xen_p2m_last_pfn = pfn; +if (pfn >= xen_p2m_last_pfn) { + xen_p2m_last_pfn =ALIGN (pfn +1 ,P2M_PER_PAGE ); HYPERVISOR_shared_info->arch.max_pfn = xen_p2m_last_pfn; }
arch/xtensa/platforms/iss/console.c +14 -3
@@ -168,9 +168,13 @@ static const struct tty_operations serial_ops = {int __init rs_init (void ) { -tty_port_init (&serial_port); +int ret; serial_driver =alloc_tty_driver (SERIAL_MAX_NUM_LINES ); +if (!serial_driver) +return -ENOMEM ; + +tty_port_init (&serial_port);pr_info ("%s %s\n" , serial_name, serial_version);
@@ -190,8 +194,15 @@ int __init rs_init(void)tty_set_operations (serial_driver, &serial_ops);tty_port_link_device (&serial_port, serial_driver,0 ); -if (tty_register_driver (serial_driver)) -panic ("Couldn't register serial driver\n" ); + ret =tty_register_driver (serial_driver); +if (ret) { +pr_err ("Couldn't register serial driver\n" ); +tty_driver_kref_put (serial_driver); +tty_port_destroy (&serial_port); + +return ret; + } +return 0 ; }
block/bfq-iosched.c +1 -1
@@ -5011,7 +5011,7 @@ bfq_set_next_ioprio_data(struct bfq_queue *bfqq, struct bfq_io_cq *bic)if (bfqq->new_ioprio >=IOPRIO_BE_NR ) {pr_crit ("bfq_set_next_ioprio_data: new_ioprio %d\n" , bfqq->new_ioprio); - bfqq->new_ioprio =IOPRIO_BE_NR ; + bfqq->new_ioprio =IOPRIO_BE_NR -1 ; } bfqq->entity.new_weight =bfq_ioprio_to_weight (bfqq->new_ioprio);
block/blk-zoned.c +0 -6
@@ -296,9 +296,6 @@ int blkdev_report_zones_ioctl(struct block_device *bdev, fmode_t mode,if (!blk_queue_is_zoned (q))return -ENOTTY ; -if (!capable (CAP_SYS_ADMIN )) -return -EACCES ; -if (copy_from_user (&rep, argp,sizeof (struct blk_zone_report )))return -EFAULT ;
@@ -357,9 +354,6 @@ int blkdev_zone_mgmt_ioctl(struct block_device *bdev, fmode_t mode,if (!blk_queue_is_zoned (q))return -ENOTTY ; -if (!capable (CAP_SYS_ADMIN )) -return -EACCES ; -if (!(mode &FMODE_WRITE ))return -EBADF ;
block/bsg.c +4 -1
@@ -371,10 +371,13 @@ static long bsg_ioctl(struct file *file, unsigned int cmd, unsigned long arg)case SG_GET_RESERVED_SIZE :case SG_SET_RESERVED_SIZE :case SG_EMULATED_HOST : -case SCSI_IOCTL_SEND_COMMAND :return scsi_cmd_ioctl (bd->queue,NULL , file->f_mode, cmd, uarg);case SG_IO :return bsg_sg_io (bd->queue, file->f_mode, uarg); +case SCSI_IOCTL_SEND_COMMAND : +pr_warn_ratelimited ("%s: calling unsupported SCSI_IOCTL_SEND_COMMAND\n" , + current->comm); +return -EINVAL ;default :return -ENOTTY ; }
drivers/ata/libata-core.c +4 -0
@@ -3950,6 +3950,10 @@ static const struct ata_blacklist_entry ata_device_blacklist [] = { ATA_HORKAGE_ZERO_AFTER_TRIM, }, {"Samsung SSD 850*" ,NULL ,ATA_HORKAGE_NO_NCQ_TRIM | ATA_HORKAGE_ZERO_AFTER_TRIM, }, + { "Samsung SSD 860*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | + ATA_HORKAGE_ZERO_AFTER_TRIM, }, + { "Samsung SSD 870*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | + ATA_HORKAGE_ZERO_AFTER_TRIM, }, { "FCCT*M500*", NULL, ATA_HORKAGE_NO_NCQ_TRIM | ATA_HORKAGE_ZERO_AFTER_TRIM, },
drivers/ata/sata_dwc_460ex.c +4 -8
@@ -1249,24 +1249,20 @@ static int sata_dwc_probe(struct platform_device *ofdev) irq =irq_of_parse_and_map (np,0 );if (irq ==NO_IRQ ) {dev_err (&ofdev->dev,"no SATA DMA irq\n" ); - err = -ENODEV ; - goto error_out; +return -ENODEV ; }#ifdef CONFIG_SATA_DWC_OLD_DMA if (!of_find_property (np,"dmas" ,NULL )) { err =sata_dwc_dma_init_old (ofdev, hsdev);if (err) - goto error_out; +return err; }#endif hsdev->phy =devm_phy_optional_get (hsdev->dev,"sata-phy" ); -if (IS_ERR (hsdev->phy)) { - err =PTR_ERR (hsdev->phy); - hsdev->phy =NULL ; - goto error_out; - } +if (IS_ERR (hsdev->phy)) +return PTR_ERR (hsdev->phy); err =phy_init (hsdev->phy);if (err)
drivers/bus/fsl-mc/fsl-mc-bus.c +22 -2
@@ -64,6 +64,8 @@ struct fsl_mc_addr_translation_range {#define MC_FAPR_PL BIT(18)#define MC_FAPR_BMT BIT(17) +static phys_addr_t mc_portal_base_phys_addr; +/** * fsl_mc_bus_match - device to driver matching callback * @dev: the fsl-mc device to match against
@@ -597,14 +599,30 @@ static int fsl_mc_device_get_mmio_regions(struct fsl_mc_device *mc_dev,* If base address is in the region_desc use it otherwise * revert to old mechanism */ -if (region_desc.base_address) +if (region_desc.base_address) { regions[i].start = region_desc.base_address + region_desc.base_offset; -else + }else { error =translate_mc_addr (mc_dev, mc_region_type, region_desc.base_offset, ®ions[i].start); +/* +* Some versions of the MC firmware wrongly report +* 0 for register base address of the DPMCP associated +* with child DPRC objects thus rendering them unusable. +* This is particularly troublesome in ACPI boot +* scenarios where the legacy way of extracting this +* base address from the device tree does not apply. +* Given that DPMCPs share the same base address, +* workaround this by using the base address extracted +* from the root DPRC container. +*/ +if (is_fsl_mc_bus_dprc (mc_dev) && + regions[i].start == region_desc.base_offset) + regions[i].start += mc_portal_base_phys_addr; + } +if (error <0 ) { dev_err(parent_dev, "Invalid MC offset: %#x (for %s.%d\'s region %d)\n",
@@ -996,6 +1014,8 @@ static int fsl_mc_bus_probe(struct platform_device *pdev) plat_res =platform_get_resource (pdev,IORESOURCE_MEM ,0 ); mc_portal_phys_addr = plat_res->start; mc_portal_size =resource_size (plat_res); + mc_portal_base_phys_addr = mc_portal_phys_addr & ~0x3ffffff ; + error =fsl_create_mc_io (&pdev->dev, mc_portal_phys_addr, mc_portal_size,NULL ,FSL_MC_IO_ATOMIC_CONTEXT_PORTAL , &mc_io);
drivers/clk/at91/clk-generated.c +6 -0
@@ -128,6 +128,12 @@ static int clk_generated_determine_rate(struct clk_hw *hw,int i;u32 div; +/* do not look for a rate that is outside of our range */ +if (gck->range.max && req->rate > gck->range.max) + req->rate = gck->range.max; +if (gck->range.min && req->rate < gck->range.min) + req->rate = gck->range.min; +for (i =0 ; i <clk_hw_get_num_parents (hw); i++) {if (gck->chg_pid == i)continue ;
drivers/clk/imx/clk-composite-8m.c +2 -1
@@ -216,7 +216,8 @@ struct clk_hw *imx8m_clk_hw_composite_flags(const char *name, div->width =PCG_PREDIV_WIDTH ; divider_ops = &imx8m_clk_composite_divider_ops; mux_ops = &clk_mux_ops; - flags |=CLK_SET_PARENT_GATE ; +if (!(composite_flags &IMX_COMPOSITE_FW_MANAGED )) + flags |=CLK_SET_PARENT_GATE ; } div->lock = &imx_ccm_lock;
drivers/clk/imx/clk-imx8mm.c +4 -3
@@ -458,10 +458,11 @@ static int imx8mm_clocks_probe(struct platform_device *pdev)/* * DRAM clocks are manipulated from TF-A outside clock framework. -* Mark with GET_RATE_NOCACHE to always read div value from hardware +* The fw_managed helper sets GET_RATE_NOCACHE and clears SET_PARENT_GATE +* as div value should always be read from hardware */ - hws[IMX8MM_CLK_DRAM_ALT ] =__imx8m_clk_hw_composite ("dram_alt" , imx8mm_dram_alt_sels, base +0xa000 ,CLK_GET_RATE_NOCACHE ); - hws[IMX8MM_CLK_DRAM_APB ] =__imx8m_clk_hw_composite ("dram_apb" , imx8mm_dram_apb_sels, base +0xa080 ,CLK_IS_CRITICAL |CLK_GET_RATE_NOCACHE ); + hws[IMX8MM_CLK_DRAM_ALT ] =imx8m_clk_hw_fw_managed_composite ("dram_alt" , imx8mm_dram_alt_sels, base +0xa000 ); + hws[IMX8MM_CLK_DRAM_APB ] =imx8m_clk_hw_fw_managed_composite_critical ("dram_apb" , imx8mm_dram_apb_sels, base +0xa080 );/* IP */ hws[IMX8MM_CLK_VPU_G1 ] =imx8m_clk_hw_composite ("vpu_g1" , imx8mm_vpu_g1_sels, base +0xa100 );
drivers/clk/imx/clk-imx8mn.c +4 -3
@@ -441,10 +441,11 @@ static int imx8mn_clocks_probe(struct platform_device *pdev)/* * DRAM clocks are manipulated from TF-A outside clock framework. -* Mark with GET_RATE_NOCACHE to always read div value from hardware +* The fw_managed helper sets GET_RATE_NOCACHE and clears SET_PARENT_GATE +* as div value should always be read from hardware */ - hws[IMX8MN_CLK_DRAM_ALT ] =__imx8m_clk_hw_composite ("dram_alt" , imx8mn_dram_alt_sels, base +0xa000 ,CLK_GET_RATE_NOCACHE ); - hws[IMX8MN_CLK_DRAM_APB ] =__imx8m_clk_hw_composite ("dram_apb" , imx8mn_dram_apb_sels, base +0xa080 ,CLK_IS_CRITICAL |CLK_GET_RATE_NOCACHE ); + hws[IMX8MN_CLK_DRAM_ALT ] =imx8m_clk_hw_fw_managed_composite ("dram_alt" , imx8mn_dram_alt_sels, base +0xa000 ); + hws[IMX8MN_CLK_DRAM_APB ] =imx8m_clk_hw_fw_managed_composite_critical ("dram_apb" , imx8mn_dram_apb_sels, base +0xa080 ); hws[IMX8MN_CLK_DISP_PIXEL ] =imx8m_clk_hw_composite ("disp_pixel" , imx8mn_disp_pixel_sels, base +0xa500 ); hws[IMX8MN_CLK_SAI2 ] =imx8m_clk_hw_composite ("sai2" , imx8mn_sai2_sels, base +0xa600 );
drivers/clk/imx/clk-imx8mq.c +4 -3
@@ -427,11 +427,12 @@ static int imx8mq_clocks_probe(struct platform_device *pdev)/* * DRAM clocks are manipulated from TF-A outside clock framework. -* Mark with GET_RATE_NOCACHE to always read div value from hardware +* The fw_managed helper sets GET_RATE_NOCACHE and clears SET_PARENT_GATE +* as div value should always be read from hardware */ hws[IMX8MQ_CLK_DRAM_CORE ] =imx_clk_hw_mux2_flags ("dram_core_clk" , base +0x9800 ,24 ,1 , imx8mq_dram_core_sels,ARRAY_SIZE (imx8mq_dram_core_sels),CLK_IS_CRITICAL ); - hws[IMX8MQ_CLK_DRAM_ALT ] =__imx8m_clk_hw_composite ("dram_alt" , imx8mq_dram_alt_sels, base +0xa000 ,CLK_GET_RATE_NOCACHE ); - hws[IMX8MQ_CLK_DRAM_APB ] =__imx8m_clk_hw_composite ("dram_apb" , imx8mq_dram_apb_sels, base +0xa080 ,CLK_IS_CRITICAL |CLK_GET_RATE_NOCACHE ); + hws[IMX8MQ_CLK_DRAM_ALT ] =imx8m_clk_hw_fw_managed_composite ("dram_alt" , imx8mq_dram_alt_sels, base +0xa000 ); + hws[IMX8MQ_CLK_DRAM_APB ] =imx8m_clk_hw_fw_managed_composite_critical ("dram_apb" , imx8mq_dram_apb_sels, base +0xa080 );/* IP */ hws[IMX8MQ_CLK_VPU_G1 ] =imx8m_clk_hw_composite ("vpu_g1" , imx8mq_vpu_g1_sels, base +0xa100 );
drivers/clk/imx/clk.h +14 -2
@@ -533,8 +533,9 @@ struct clk_hw *imx_clk_hw_cpu(const char *name, const char *parent_name, struct clk *div, struct clk *mux, struct clk *pll, struct clk *step); -#define IMX_COMPOSITE_CORE BIT(0) -#define IMX_COMPOSITE_BUS BIT(1) +#define IMX_COMPOSITE_CORE BIT(0) +#define IMX_COMPOSITE_BUS BIT(1) +#define IMX_COMPOSITE_FW_MANAGED BIT(2) struct clk_hw *imx8m_clk_hw_composite_flags(const char *name, const char * const *parent_names,
@@ -570,6 +571,17 @@ struct clk_hw *imx8m_clk_hw_composite_flags(const char *name, ARRAY_SIZE(parent_names), reg, 0, \ flags | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE) +#define __imx8m_clk_hw_fw_managed_composite (name, parent_names, reg, flags) \ + imx8m_clk_hw_composite_flags(name, parent_names, \ + ARRAY_SIZE(parent_names), reg, IMX_COMPOSITE_FW_MANAGED, \ + flags | CLK_GET_RATE_NOCACHE | CLK_SET_RATE_NO_REPARENT | CLK_OPS_PARENT_ENABLE) + +#define imx8m_clk_hw_fw_managed_composite (name, parent_names, reg) \ + __imx8m_clk_hw_fw_managed_composite(name, parent_names, reg, 0) + +#define imx8m_clk_hw_fw_managed_composite_critical (name, parent_names, reg) \ + __imx8m_clk_hw_fw_managed_composite(name, parent_names, reg, CLK_IS_CRITICAL) +#define __imx8m_clk_composite (name, parent_names, reg, flags) \ to_clk(__imx8m_clk_hw_composite(name, parent_names, reg, flags))
drivers/clk/rockchip/clk-pll.c +1 -1
@@ -940,7 +940,7 @@ struct clk *rockchip_clk_register_pll(struct rockchip_clk_provider *ctx,switch (pll_type) {case pll_rk3036:case pll_rk3328: -if (!pll->rate_table ||IS_ERR (ctx->grf)) +if (!pll->rate_table) init.ops = &rockchip_rk3036_pll_clk_norate_ops;else init.ops = &rockchip_rk3036_pll_clk_ops;
drivers/clk/socfpga/clk-agilex.c +14 -5
@@ -107,10 +107,10 @@ static const struct clk_parent_data gpio_db_free_mux[] = { };static const struct clk_parent_data psi_ref_free_mux[] = { - { .fw_name ="main_pll_c3" , - .name ="main_pll_c3" , }, - { .fw_name ="peri_pll_c3" , - .name ="peri_pll_c3" , }, + { .fw_name ="main_pll_c2" , + .name ="main_pll_c2" , }, + { .fw_name ="peri_pll_c2" , + .name ="peri_pll_c2" , }, { .fw_name ="osc1" , .name ="osc1" , }, { .fw_name ="cb-intosc-hs-div2-clk" ,
@@ -193,6 +193,13 @@ static const struct clk_parent_data sdmmc_mux[] = { .name = "boot_clk", }, }; +static const struct clk_parent_data s2f_user0_mux[] = { + { .fw_name ="s2f_user0_free_clk" , + .name ="s2f_user0_free_clk" , }, + { .fw_name ="boot_clk" , + .name ="boot_clk" , }, +}; +static const struct clk_parent_data s2f_user1_mux[] = { { .fw_name ="s2f_user1_free_clk" , .name = "s2f_user1_free_clk", },
@@ -260,7 +267,7 @@ static const struct stratix10_perip_cnt_clock agilex_main_perip_cnt_clks[] = { {AGILEX_SDMMC_FREE_CLK ,"sdmmc_free_clk" ,NULL , sdmmc_free_mux, ARRAY_SIZE(sdmmc_free_mux), 0, 0xE4, 0, 0, 0}, { AGILEX_S2F_USER0_FREE_CLK, "s2f_user0_free_clk", NULL, s2f_usr0_free_mux, - ARRAY_SIZE(s2f_usr0_free_mux), 0, 0xE8, 0, 0, 0}, + ARRAY_SIZE(s2f_usr0_free_mux), 0, 0xE8, 0, 0x30, 2}, { AGILEX_S2F_USER1_FREE_CLK, "s2f_user1_free_clk", NULL, s2f_usr1_free_mux, ARRAY_SIZE(s2f_usr1_free_mux), 0, 0xEC, 0, 0x88, 5}, { AGILEX_PSI_REF_FREE_CLK, "psi_ref_free_clk", NULL, psi_ref_free_mux,
@@ -306,6 +313,8 @@ static const struct stratix10_gate_clock agilex_gate_clks[] = { 4, 0x98, 0, 16, 0x88, 3, 0}, {AGILEX_SDMMC_CLK ,"sdmmc_clk" ,NULL , sdmmc_mux,ARRAY_SIZE (sdmmc_mux),0 ,0x7C , 5, 0, 0, 0, 0x88, 4, 4}, + { AGILEX_S2F_USER0_CLK, "s2f_user0_clk", NULL, s2f_user0_mux, ARRAY_SIZE(s2f_user0_mux), 0, 0x24, + 6, 0, 0, 0, 0x30, 2, 0}, { AGILEX_S2F_USER1_CLK, "s2f_user1_clk", NULL, s2f_user1_mux, ARRAY_SIZE(s2f_user1_mux), 0, 0x7C, 6, 0, 0, 0, 0x88, 5, 0}, { AGILEX_PSI_REF_CLK, "psi_ref_clk", NULL, psi_mux, ARRAY_SIZE(psi_mux), 0, 0x7C,
drivers/cpufreq/powernv-cpufreq.c +14 -2
@@ -36,6 +36,7 @@#define MAX_PSTATE_SHIFT 32#define LPSTATE_SHIFT 48#define GPSTATE_SHIFT 56 +#define MAX_NR_CHIPS 32#define MAX_RAMP_DOWN_TIME 5120/*
@@ -1051,12 +1052,20 @@ static int init_chip_info(void)unsigned int *chip;unsigned int cpu, i;unsigned int prev_chip_id =UINT_MAX ; +cpumask_t *chip_cpu_mask;int ret =0 ; chip =kcalloc (num_possible_cpus (),sizeof (*chip),GFP_KERNEL );if (!chip)return -ENOMEM ; +/* Allocate a chip cpu mask large enough to fit mask for all chips */ + chip_cpu_mask =kcalloc (MAX_NR_CHIPS ,sizeof (cpumask_t),GFP_KERNEL ); +if (!chip_cpu_mask) { + ret = -ENOMEM ; + goto free_and_return; + } +for_each_possible_cpu (cpu) {unsigned int id =cpu_to_chip_id (cpu);
@@ -1064,22 +1073,25 @@ static int init_chip_info(void) prev_chip_id = id; chip[nr_chips++] = id; } +cpumask_set_cpu (cpu, &chip_cpu_mask[nr_chips-1 ]); } chips =kcalloc (nr_chips,sizeof (struct chip ),GFP_KERNEL );if (!chips) { ret = -ENOMEM ; - goto free_and_return; + goto out_free_chip_cpu_mask; }for (i =0 ; i < nr_chips; i++) { chips[i].id = chip[i]; -cpumask_copy (&chips[i].mask,cpumask_of_node (chip[i])); +cpumask_copy (&chips[i].mask, &chip_cpu_mask[i]);INIT_WORK (&chips[i].throttle, powernv_cpufreq_work_fn);for_each_cpu (cpu, &chips[i].mask)per_cpu (chip_info, cpu) = &chips[i]; } +out_free_chip_cpu_mask: +kfree (chip_cpu_mask); free_and_return:kfree (chip);return ret;
drivers/cpuidle/cpuidle-pseries.c +16 -2
@@ -402,7 +402,7 @@ static void __init fixup_cede0_latency(void)* pseries_idle_probe() * Choose state table for shared versus dedicated partition */ -static int pseries_idle_probe (void ) +static int __init pseries_idle_probe (void ) {if (cpuidle_disable !=IDLE_NO_OVERRIDE )
@@ -419,7 +419,21 @@ static int pseries_idle_probe(void) cpuidle_state_table = shared_states; max_idle_state =ARRAY_SIZE (shared_states); }else { -fixup_cede0_latency (); +/* +* Use firmware provided latency values +* starting with POWER10 platforms. In the +* case that we are running on a POWER10 +* platform but in an earlier compat mode, we +* can still use the firmware provided values. +* +* However, on platforms prior to POWER10, we +* cannot rely on the accuracy of the firmware +* provided latency values. On such platforms, +* go with the conservative default estimate +* of 10us. +*/ +if (cpu_has_feature (CPU_FTR_ARCH_31 ) ||pvr_version_is (PVR_POWER10 )) +fixup_cede0_latency (); cpuidle_state_table = dedicated_states; max_idle_state =NR_DEDICATED_STATES ; }
drivers/crypto/ccp/sev-dev.c +23 -26
79 lines not on this page · raw message
drivers/crypto/ccp/sp-pci.c +12 -0
@@ -241,6 +241,17 @@ static int sp_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id)return ret; } +static void sp_pci_shutdown (struct pci_dev *pdev) +{ +struct device *dev = &pdev->dev; +struct sp_device *sp =dev_get_drvdata (dev); + +if (!sp) +return ; + +sp_destroy (sp); +} +static void sp_pci_remove (struct pci_dev *pdev) {struct device *dev = &pdev->dev;
@@ -370,6 +381,7 @@ static struct pci_driver sp_pci_driver = { .id_table = sp_pci_table, .probe = sp_pci_probe, .remove = sp_pci_remove, + .shutdown = sp_pci_shutdown, .driver.pm = &sp_pci_pm_ops, };
drivers/crypto/mxs-dcp.c +9 -27
@@ -299,21 +299,20 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)struct scatterlist *dst = req->dst;struct scatterlist *src = req->src; -const int nents =sg_nents (req->src); +int dst_nents =sg_nents (dst);const int out_off =DCP_BUF_SZ ;uint8_t *in_buf = sdcp->coh->aes_in_buf;uint8_t *out_buf = sdcp->coh->aes_out_buf; -uint8_t *out_tmp, *src_buf, *dst_buf =NULL ;uint32_t dst_off =0 ; +uint8_t *src_buf =NULL ;uint32_t last_out_len =0 ;uint8_t *key = sdcp->coh->aes_key;int ret =0 ; -int split =0 ; -unsigned int i, len, clen, rem =0 , tlen =0 ; +unsigned int i, len, clen, tlen =0 ;int init =0 ;bool limit_hit = false;
@@ -331,7 +330,7 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)memset (key +AES_KEYSIZE_128 ,0 ,AES_KEYSIZE_128 ); } -for_each_sg (req->src, src, nents, i) { +for_each_sg (req->src, src,sg_nents (src), i) { src_buf =sg_virt (src); len =sg_dma_len (src); tlen += len;
@@ -356,34 +355,17 @@ static int mxs_dcp_aes_block_crypt(struct crypto_async_request *arq)* submit the buffer. */ if (actx->fill == out_off ||sg_is_last (src) || - limit_hit) { + limit_hit) { ret =mxs_dcp_run_aes (actx, req, init);if (ret)return ret; init =0 ; - out_tmp = out_buf; +sg_pcopy_from_buffer (dst, dst_nents, out_buf, + actx->fill, dst_off); + dst_off += actx->fill; last_out_len = actx->fill; -while (dst && actx->fill) { -if (!split) { - dst_buf =sg_virt (dst); - dst_off =0 ; - } - rem =min (sg_dma_len (dst) - dst_off, - actx->fill); - -memcpy (dst_buf + dst_off, out_tmp, rem); - out_tmp += rem; - dst_off += rem; - actx->fill -= rem; - -if (dst_off ==sg_dma_len (dst)) { - dst =sg_next (dst); - split =0 ; - }else { - split =1 ; - } - } + actx->fill =0 ; } }while (len);
drivers/dma/imx-sdma.c +1 -12
@@ -379,7 +379,6 @@ struct sdma_channel {unsigned long watermark_level;u32 shp_addr, per_addr;enum dma_status status; -bool context_loaded;struct imx_dma_data data;struct work_struct terminate_worker; };
@@ -985,9 +984,6 @@ static int sdma_load_context(struct sdma_channel *sdmac)int ret;unsigned long flags; -if (sdmac->context_loaded) -return 0 ; -if (sdmac->direction ==DMA_DEV_TO_MEM ) load_address = sdmac->pc_from_device;else if (sdmac->direction ==DMA_DEV_TO_DEV )
@@ -1030,8 +1026,6 @@ static int sdma_load_context(struct sdma_channel *sdmac)spin_unlock_irqrestore (&sdma->channel_0_lock, flags); - sdmac->context_loaded = true; -return ret; }
@@ -1070,7 +1064,6 @@ static void sdma_channel_terminate_work(struct work_struct *work)vchan_get_all_descriptors (&sdmac->vc, &head);spin_unlock_irqrestore (&sdmac->vc.lock, flags);vchan_dma_desc_free_list (&sdmac->vc, &head); - sdmac->context_loaded = false; }static int sdma_terminate_all (struct dma_chan *chan)
@@ -1145,7 +1138,6 @@ static void sdma_set_watermarklevel_for_p2p(struct sdma_channel *sdmac)static int sdma_config_channel (struct dma_chan *chan) {struct sdma_channel *sdmac =to_sdma_chan (chan); -int ret;sdma_disable_channel (chan);
@@ -1185,9 +1177,7 @@ static int sdma_config_channel(struct dma_chan *chan) sdmac->watermark_level =0 ;/* FIXME: M3_BASE_ADDRESS */ } - ret =sdma_load_context (sdmac); - -return ret; +return 0 ; } static int sdma_set_channel_priority(struct sdma_channel *sdmac,
@@ -1338,7 +1328,6 @@ static void sdma_free_chan_resources(struct dma_chan *chan) sdmac->event_id0 =0 ; sdmac->event_id1 =0 ; - sdmac->context_loaded = false;sdma_set_channel_priority (sdmac,0 );
drivers/gpu/drm/amd/amdgpu/amdgpu_i2c.c +1 -1
@@ -339,7 +339,7 @@ static void amdgpu_i2c_put_byte(struct amdgpu_i2c_chan *i2c_bus,void amdgpu_i2c_router_select_ddc_port (const struct amdgpu_connector *amdgpu_connector) { -u8 val; +u8 val =0 ;if (!amdgpu_connector->router.ddc_valid)return ;
drivers/gpu/drm/amd/amdgpu/amdgpu_object.c +1 -1
@@ -207,7 +207,7 @@ void amdgpu_bo_placement_from_domain(struct amdgpu_bo *abo, u32 domain) c++; } -BUG_ON (c >=AMDGPU_BO_MAX_PLACEMENTS ); +BUG_ON (c >AMDGPU_BO_MAX_PLACEMENTS ); placement->num_placement = c; placement->placement = places;
drivers/gpu/drm/amd/amdgpu/amdgpu_ras_eeprom.c +1 -1
@@ -305,7 +305,7 @@ int amdgpu_ras_eeprom_init(struct amdgpu_ras_eeprom_control *control,return ret; } -__decode_table_header_from_buff (hdr, &buff[2 ]); +__decode_table_header_from_buff (hdr, buff);if (hdr->header ==EEPROM_TABLE_HDR_VAL ) { control->num_recs = (hdr->tbl_size - EEPROM_TABLE_HEADER_SIZE) /
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c +1 -1
@@ -120,7 +120,7 @@ static int vcn_v1_0_sw_init(void *handle) adev->firmware.ucode[AMDGPU_UCODE_ID_VCN ].fw = adev->vcn.fw; adev->firmware.fw_size +=ALIGN (le32_to_cpu (hdr->ucode_size_bytes),PAGE_SIZE ); -DRM_INFO ("PSP loading VCN firmware\n" ); +dev_info (adev->dev,"Will use PSP to load VCN firmware\n" ); } r =amdgpu_vcn_resume (adev);
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c +1 -1
@@ -122,7 +122,7 @@ static int vcn_v2_0_sw_init(void *handle) adev->firmware.ucode[AMDGPU_UCODE_ID_VCN ].fw = adev->vcn.fw; adev->firmware.fw_size +=ALIGN (le32_to_cpu (hdr->ucode_size_bytes),PAGE_SIZE ); -DRM_INFO ("PSP loading VCN firmware\n" ); +dev_info (adev->dev,"Will use PSP to load VCN firmware\n" ); } r =amdgpu_vcn_resume (adev);
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c +1 -1
@@ -152,7 +152,7 @@ static int vcn_v2_5_sw_init(void *handle) adev->firmware.fw_size +=ALIGN (le32_to_cpu (hdr->ucode_size_bytes),PAGE_SIZE ); } -DRM_INFO ("PSP loading VCN firmware\n" ); +dev_info (adev->dev,"Will use PSP to load VCN firmware\n" ); } r =amdgpu_vcn_resume (adev);
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c +1 -1
@@ -148,7 +148,7 @@ static int vcn_v3_0_sw_init(void *handle) adev->firmware.fw_size +=ALIGN (le32_to_cpu (hdr->ucode_size_bytes),PAGE_SIZE ); } -DRM_INFO ("PSP loading VCN firmware\n" ); +dev_info (adev->dev,"Will use PSP to load VCN firmware\n" ); } r =amdgpu_vcn_resume (adev);
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.c +63 -21
99 lines not on this page · raw message
drivers/gpu/drm/amd/amdkfd/kfd_mqd_manager.h +1 -0
@@ -27,6 +27,7 @@#include "kfd_priv.h" #define KFD_MAX_NUM_SE 8 +#define KFD_MAX_NUM_SH_PER_SE 2/** * struct mqd_manager
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +8 -8
@@ -197,29 +197,29 @@ static ssize_t dp_link_settings_read(struct file *f, char __user *buf, rd_buf_ptr = rd_buf; - str_len =strlen ("Current: %d %d %d " ); -snprintf (rd_buf_ptr, str_len,"Current: %d %d %d " , + str_len =strlen ("Current: %d 0x%x %d " ); +snprintf (rd_buf_ptr, str_len,"Current: %d 0x%x %d " , link->cur_link_settings.lane_count, link->cur_link_settings.link_rate, link->cur_link_settings.link_spread); rd_buf_ptr += str_len; - str_len =strlen ("Verified: %d %d %d " ); -snprintf (rd_buf_ptr, str_len,"Verified: %d %d %d " , + str_len =strlen ("Verified: %d 0x%x %d " ); +snprintf (rd_buf_ptr, str_len,"Verified: %d 0x%x %d " , link->verified_link_cap.lane_count, link->verified_link_cap.link_rate, link->verified_link_cap.link_spread); rd_buf_ptr += str_len; - str_len =strlen ("Reported: %d %d %d " ); -snprintf (rd_buf_ptr, str_len,"Reported: %d %d %d " , + str_len =strlen ("Reported: %d 0x%x %d " ); +snprintf (rd_buf_ptr, str_len,"Reported: %d 0x%x %d " , link->reported_link_cap.lane_count, link->reported_link_cap.link_rate, link->reported_link_cap.link_spread); rd_buf_ptr += str_len; - str_len =strlen ("Preferred: %d %d %d " ); -snprintf (rd_buf_ptr, str_len,"Preferred: %d %d %d\n" , + str_len =strlen ("Preferred: %d 0x%x %d " ); +snprintf (rd_buf_ptr, str_len,"Preferred: %d 0x%x %d\n" , link->preferred_link_setting.lane_count, link->preferred_link_setting.link_rate, link->preferred_link_setting.link_spread);
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c +5 -6
@@ -3740,13 +3740,12 @@ enum dc_status dcn10_set_clock(struct dc *dc,struct dc_clock_config clock_cfg = {0 };struct dc_clocks *current_clocks = &context->bw_ctx.bw.dcn.clk; -if (dc->clk_mgr && dc->clk_mgr->funcs->get_clock) - dc->clk_mgr->funcs->get_clock (dc->clk_mgr, - context, clock_type, &clock_cfg); - -if (!dc->clk_mgr->funcs->get_clock) +if (!dc->clk_mgr || !dc->clk_mgr->funcs->get_clock)return DC_FAIL_UNSUPPORTED_1 ; + dc->clk_mgr->funcs->get_clock (dc->clk_mgr, + context, clock_type, &clock_cfg); +if (clk_khz > clock_cfg.max_clock_khz)return DC_FAIL_CLK_EXCEED_MAX ;
@@ -3764,7 +3763,7 @@ enum dc_status dcn10_set_clock(struct dc *dc,else return DC_ERROR_UNEXPECTED ; -if (dc->clk_mgr && dc->clk_mgr->funcs->update_clocks) +if (dc->clk_mgr->funcs->update_clocks) dc->clk_mgr->funcs->update_clocks (dc->clk_mgr, context, true);return DC_OK ;
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c +8 -6
@@ -1704,13 +1704,15 @@ void dcn20_program_front_end_for_ctx(dcn20_program_pipe (dc, pipe, context); pipe = pipe->bottom_pipe; } -/* Program secondary blending tree and writeback pipes */ - pipe = &context->res_ctx.pipe_ctx[i]; -if (!pipe->prev_odm_pipe && pipe->stream->num_wb_info >0 - && (pipe->update_flags.raw || pipe->plane_state->update_flags.raw || pipe->stream->update_flags.raw) - && hws->funcs.program_all_writeback_pipes_in_tree) - hws->funcs.program_all_writeback_pipes_in_tree (dc, pipe->stream, context); } +/* Program secondary blending tree and writeback pipes */ + pipe = &context->res_ctx.pipe_ctx[i]; +if (!pipe->top_pipe && !pipe->prev_odm_pipe + && pipe->stream && pipe->stream->num_wb_info >0 + && (pipe->update_flags.raw || (pipe->plane_state && pipe->plane_state->update_flags.raw) + || pipe->stream->update_flags.raw) + && hws->funcs.program_all_writeback_pipes_in_tree) + hws->funcs.program_all_writeback_pipes_in_tree (dc, pipe->stream, context); } }
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_resource.c +1 -1
@@ -2455,7 +2455,7 @@ void dcn20_set_mcif_arb_params( wb_arb_params->cli_watermark[k] =get_wm_writeback_urgent (&context->bw_ctx.dml, pipes, pipe_cnt) *1000 ; wb_arb_params->pstate_watermark[k] =get_wm_writeback_dram_clock_change (&context->bw_ctx.dml, pipes, pipe_cnt) *1000 ; } - wb_arb_params->time_per_pixel =16.0 / context->res_ctx.pipe_ctx[i].stream->phy_pix_clk;/* 4 bit fraction, ms */ + wb_arb_params->time_per_pixel =16.0 *1000 / (context->res_ctx.pipe_ctx[i].stream->phy_pix_clk /1000 );/* 4 bit fraction, ms */ wb_arb_params->slice_lines =32 ; wb_arb_params->arbitration_slice =2 ; wb_arb_params->max_scaled_time = dcn20_calc_max_scaled_time(wb_arb_params->time_per_pixel,
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_dwb_cm.c +64 -26
151 lines not on this page · raw message
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_hwseq.c +11 -1
@@ -396,12 +396,22 @@ void dcn30_program_all_writeback_pipes_in_tree(for (i_pipe =0 ; i_pipe < dc->res_pool->pipe_count; i_pipe++) {struct pipe_ctx *pipe_ctx = &context->res_ctx.pipe_ctx[i_pipe]; +if (!pipe_ctx->plane_state) +continue ; +if (pipe_ctx->plane_state == wb_info.writeback_source_plane) { wb_info.mpcc_inst = pipe_ctx->plane_res.mpcc_inst;break ; } } -ASSERT (wb_info.mpcc_inst !=-1 ); + +if (wb_info.mpcc_inst ==-1 ) { +/* Disable writeback pipe and disconnect from MPCC +* if source plane has been removed +*/ + dc->hwss.disable_writeback (dc, wb_info.dwb_pipe_inst); +continue ; + }ASSERT (wb_info.dwb_pipe_inst < dc->res_pool->res_cap->num_dwb); dwb = dc->res_pool->dwbc[wb_info.dwb_pipe_inst];
drivers/gpu/drm/amd/display/dc/dcn30/dcn30_resource.c +32 -10
75 lines not on this page · raw message
drivers/gpu/drm/bridge/nwl-dsi.c +1 -1
@@ -196,7 +196,7 @@ static u32 ps2bc(struct nwl_dsi *dsi, unsigned long long ps)u32 bpp =mipi_dsi_pixel_format_to_bpp (dsi->format);return DIV64_U64_ROUND_UP (ps * dsi->mode.clock * bpp, - dsi->lanes *8 *NSEC_PER_SEC ); + dsi->lanes *8ULL *NSEC_PER_SEC ); }/*
drivers/gpu/drm/drm_auth.c +36 -6
68 lines not on this page · raw message
drivers/gpu/drm/drm_debugfs.c +2 -1
@@ -91,6 +91,7 @@ static int drm_clients_info(struct seq_file *m, void *data)mutex_lock (&dev->filelist_mutex);list_for_each_entry_reverse (priv, &dev->filelist, lhead) {struct task_struct *task; +bool is_current_master =drm_is_current_master (priv);rcu_read_lock ();/* locks pid_task()->comm */ task =pid_task (priv->pid,PIDTYPE_PID );
@@ -99,7 +100,7 @@ static int drm_clients_info(struct seq_file *m, void *data) task ? task->comm :"<unknown>" ,pid_vnr (priv->pid), priv->minor->index, -drm_is_current_master (priv) ?'y' :'n' , + is_current_master ?'y' :'n' , priv->authenticated ?'y' :'n' ,from_kuid_munged (seq_user_ns (m), uid), priv->magic);
drivers/gpu/drm/drm_dp_mst_topology.c +6 -4
@@ -2869,11 +2869,13 @@ static int process_single_tx_qlock(struct drm_dp_mst_topology_mgr *mgr, idx += tosend +1 ; ret =drm_dp_send_sideband_msg (mgr, up, chunk, idx); -if (unlikely (ret) &&drm_debug_enabled (DRM_UT_DP )) { -struct drm_printer p =drm_debug_printer (DBG_PREFIX ); +if (ret) { +if (drm_debug_enabled (DRM_UT_DP )) { +struct drm_printer p =drm_debug_printer (DBG_PREFIX ); -drm_printf (&p,"sideband msg failed to send\n" ); -drm_dp_mst_dump_sideband_msg_tx (&p, txmsg); +drm_printf (&p,"sideband msg failed to send\n" ); +drm_dp_mst_dump_sideband_msg_tx (&p, txmsg); + }return ret; }
drivers/gpu/drm/drm_file.c +1 -0
@@ -177,6 +177,7 @@ struct drm_file *drm_file_alloc(struct drm_minor *minor)init_waitqueue_head (&file->event_wait); file->event_space =4096 ;/* set aside 4k for event buffer */ +spin_lock_init (&file->master_lookup_lock);mutex_init (&file->event_read_lock);if (drm_core_check_feature (dev,DRIVER_GEM ))
drivers/gpu/drm/drm_lease.c +61 -20
214 lines not on this page · raw message
drivers/gpu/drm/exynos/exynos_drm_dma.c +2 -0
@@ -115,6 +115,8 @@ int exynos_drm_register_dma(struct drm_device *drm, struct device *dev, EXYNOS_DEV_ADDR_START, EXYNOS_DEV_ADDR_SIZE); else if (IS_ENABLED(CONFIG_IOMMU_DMA)) mapping =iommu_get_domain_for_dev (priv->dma_dev); + else + mapping =ERR_PTR (-ENODEV );if (IS_ERR (mapping))return PTR_ERR (mapping);
drivers/gpu/drm/mgag200/mgag200_drv.h +16 -0
@@ -43,6 +43,22 @@#define ATTR_INDEX 0x1fc0#define ATTR_DATA 0x1fc1 +#define WREG_MISC (v) \ + WREG8(MGA_MISC_OUT, v) + +#define RREG_MISC (v) \ + ((v) = RREG8(MGA_MISC_IN)) + +#define WREG_MISC_MASKED (v, mask) \ + do { \ + u8 misc_; \ + u8 mask_ = (mask); \ + RREG_MISC(misc_); \ + misc_ &= ~mask_; \ + misc_ |= ((v) & mask_); \ + WREG_MISC(misc_); \ + } while (0) +#define WREG_ATTR (reg, v) \ do { \ RREG8(0x1fda); \
drivers/gpu/drm/mgag200/mgag200_mode.c +13 -7
@@ -172,6 +172,8 @@ static int mgag200_g200_set_plls(struct mga_device *mdev, long clock)drm_dbg_kms (dev,"clock: %ld vco: %ld m: %d n: %d p: %d s: %d\n" , clock, f_vco, m, n, p, s); +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +WREG_DAC (MGA1064_PIX_PLLC_M , m);WREG_DAC (MGA1064_PIX_PLLC_N , n);WREG_DAC (MGA1064_PIX_PLLC_P , (p | (s <<3 )));
@@ -287,6 +289,8 @@ static int mga_g200se_set_plls(struct mga_device *mdev, long clock)return 1 ; } +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +WREG_DAC (MGA1064_PIX_PLLC_M , m);WREG_DAC (MGA1064_PIX_PLLC_N , n);WREG_DAC (MGA1064_PIX_PLLC_P , p);
@@ -383,6 +387,8 @@ static int mga_g200wb_set_plls(struct mga_device *mdev, long clock) } } +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +for (i =0 ; i <=32 && pll_locked == false; i++) {if (i >0 ) {WREG8 (MGAREG_CRTC_INDEX ,0x1e );
@@ -520,6 +526,8 @@ static int mga_g200ev_set_plls(struct mga_device *mdev, long clock) } } +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +WREG8 (DAC_INDEX ,MGA1064_PIX_CLK_CTL ); tmp =RREG8 (DAC_DATA ); tmp |=MGA1064_PIX_CLK_CTL_CLK_DIS ;
@@ -652,6 +660,9 @@ static int mga_g200eh_set_plls(struct mga_device *mdev, long clock) } } } + +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +for (i =0 ; i <=32 && pll_locked == false; i++) {WREG8 (DAC_INDEX ,MGA1064_PIX_CLK_CTL ); tmp =RREG8 (DAC_DATA );
@@ -752,6 +763,8 @@ static int mga_g200er_set_plls(struct mga_device *mdev, long clock) } } +WREG_MISC_MASKED (MGAREG_MISC_CLKSEL_MGA ,MGAREG_MISC_CLKSEL_MASK ); +WREG8 (DAC_INDEX ,MGA1064_PIX_CLK_CTL ); tmp =RREG8 (DAC_DATA ); tmp |=MGA1064_PIX_CLK_CTL_CLK_DIS ;
@@ -785,8 +798,6 @@ static int mga_g200er_set_plls(struct mga_device *mdev, long clock)static int mgag200_crtc_set_plls (struct mga_device *mdev,long clock) { -u8 misc; -switch (mdev->type) {case G200_PCI :case G200_AGP :
@@ -811,11 +822,6 @@ static int mgag200_crtc_set_plls(struct mga_device *mdev, long clock)break ; } - misc =RREG8 (MGA_MISC_IN ); - misc &= ~MGAREG_MISC_CLK_SEL_MASK ; - misc |=MGAREG_MISC_CLK_SEL_MGA_MSK ; -WREG8 (MGA_MISC_OUT , misc); -return 0 ; }
drivers/gpu/drm/mgag200/mgag200_reg.h +4 -5
@@ -222,11 +222,10 @@#define MGAREG_MISC_IOADSEL (0x1 << 0)#define MGAREG_MISC_RAMMAPEN (0x1 << 1) -#define MGAREG_MISC_CLK_SEL_MASK GENMASK(3, 2) -#define MGAREG_MISC_CLK_SEL_VGA25 (0x0 << 2) -#define MGAREG_MISC_CLK_SEL_VGA28 (0x1 << 2) -#define MGAREG_MISC_CLK_SEL_MGA_PIX (0x2 << 2) -#define MGAREG_MISC_CLK_SEL_MGA_MSK (0x3 << 2) +#define MGAREG_MISC_CLKSEL_MASK GENMASK(3, 2) +#define MGAREG_MISC_CLKSEL_VGA25 (0x0 << 2) +#define MGAREG_MISC_CLKSEL_VGA28 (0x1 << 2) +#define MGAREG_MISC_CLKSEL_MGA (0x3 << 2)#define MGAREG_MISC_VIDEO_DIS (0x1 << 4)#define MGAREG_MISC_HIGH_PG_SEL (0x1 << 5)#define MGAREG_MISC_HSYNCPOL BIT(6)
drivers/gpu/drm/msm/disp/mdp4/mdp4_kms.c +3 -14
@@ -89,13 +89,6 @@ static void mdp4_disable_commit(struct msm_kms *kms)static void mdp4_prepare_commit (struct msm_kms *kms,struct drm_atomic_state *state) { -int i; -struct drm_crtc *crtc; -struct drm_crtc_state *crtc_state; - -/* see 119ecb7fd */ -for_each_new_crtc_in_state (state, crtc, crtc_state, i) -drm_crtc_vblank_get (crtc); }static void mdp4_flush_commit (struct msm_kms *kms,unsigned crtc_mask)
@@ -114,12 +107,6 @@ static void mdp4_wait_flush(struct msm_kms *kms, unsigned crtc_mask)static void mdp4_complete_commit (struct msm_kms *kms,unsigned crtc_mask) { -struct mdp4_kms *mdp4_kms =to_mdp4_kms (to_mdp_kms (kms)); -struct drm_crtc *crtc; - -/* see 119ecb7fd */ -for_each_crtc_mask (mdp4_kms->dev, crtc, crtc_mask) -drm_crtc_vblank_put (crtc); } static long mdp4_round_pixclk(struct msm_kms *kms, unsigned long rate,
@@ -410,6 +397,7 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev) {struct platform_device *pdev =to_platform_device (dev->dev);struct mdp4_platform_config *config =mdp4_get_config (pdev); +struct msm_drm_private *priv = dev->dev_private;struct mdp4_kms *mdp4_kms;struct msm_kms *kms =NULL ;struct msm_gem_address_space *aspace;
@@ -425,7 +413,8 @@ struct msm_kms *mdp4_kms_init(struct drm_device *dev)mdp_kms_init (&mdp4_kms->base, &kms_funcs); - kms = &mdp4_kms->base.base; + priv->kms = &mdp4_kms->base.base; + kms = priv->kms; mdp4_kms->dev = dev;
drivers/gpu/drm/msm/dp/dp_panel.c +7 -2
@@ -261,7 +261,7 @@ static u8 dp_panel_get_edid_checksum(struct edid *edid) {struct edid *last_block;u8 *raw_edid; -bool is_edid_corrupt; +bool is_edid_corrupt = false;if (!edid) {DRM_ERROR ("invalid edid input\n" );
@@ -293,7 +293,12 @@ void dp_panel_handle_sink_request(struct dp_panel *dp_panel) panel = container_of(dp_panel, struct dp_panel_private, dp_panel);if (panel->link->sink_request &DP_TEST_LINK_EDID_READ ) { -u8 checksum =dp_panel_get_edid_checksum (dp_panel->edid); +u8 checksum; + +if (dp_panel->edid) + checksum =dp_panel_get_edid_checksum (dp_panel->edid); +else + checksum = dp_panel->connector->real_edid_checksum;dp_link_send_edid_checksum (panel->link, checksum);dp_link_send_test_response (panel->link);
drivers/gpu/drm/msm/dsi/dsi_cfg.c +0 -1
@@ -158,7 +158,6 @@ static const struct msm_dsi_config sdm660_dsi_cfg = { .reg_cfg = { .num = 2, .regs = { - {"vdd", 73400, 32 }, /* 0.9 V */ {"vdda", 12560, 4 }, /* 1.2 V */ }, },
drivers/gpu/drm/msm/dsi/phy/dsi_phy_14nm.c +1 -1
@@ -168,7 +168,7 @@ const struct msm_dsi_phy_cfg dsi_phy_14nm_660_cfgs = { .reg_cfg = { .num = 1, .regs = { - {"vcca", 17000, 32}, + {"vcca", 73400, 32}, }, }, .ops = {
drivers/gpu/drm/panfrost/panfrost_device.h +5 -3
@@ -120,8 +120,12 @@ struct panfrost_device { };struct panfrost_mmu { +struct panfrost_device *pfdev; +struct kref refcount;struct io_pgtable_cfg pgtbl_cfg;struct io_pgtable_ops *pgtbl_ops; +struct drm_mm mm; +spinlock_t mm_lock;int as;atomic_t as_count;struct list_head list;
@@ -132,9 +136,7 @@ struct panfrost_file_priv {struct drm_sched_entity sched_entity[NUM_JOB_SLOTS ]; -struct panfrost_mmu mmu; -struct drm_mm mm; -spinlock_t mm_lock; +struct panfrost_mmu *mmu; };static inline struct panfrost_device *to_panfrost_device (struct drm_device *ddev)
drivers/gpu/drm/panfrost/panfrost_drv.c +9 -41
80 lines not on this page · raw message
drivers/gpu/drm/panfrost/panfrost_gem.c +9 -11
@@ -60,7 +60,7 @@ panfrost_gem_mapping_get(struct panfrost_gem_object *bo,mutex_lock (&bo->mappings.lock);list_for_each_entry (iter, &bo->mappings.list, node) { -if (iter->mmu == &priv->mmu) { +if (iter->mmu == priv->mmu) {kref_get (&iter->refcount); mapping = iter;break ;
@@ -74,16 +74,13 @@ panfrost_gem_mapping_get(struct panfrost_gem_object *bo,static void panfrost_gem_teardown_mapping (struct panfrost_gem_mapping *mapping) { -struct panfrost_file_priv *priv; -if (mapping->active)panfrost_mmu_unmap (mapping); - priv = container_of(mapping->mmu, struct panfrost_file_priv, mmu); -spin_lock (&priv->mm_lock);
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panfrost/panfrost_job.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panfrost/panfrost_mmu.c +119 -72
191 lines not on this page · raw message
drivers/gpu/drm/panfrost/panfrost_mmu.h +3 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/panfrost/panfrost_regs.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/infiniband/hw/hns/hns_roce_qp.c +1 -2
Lines of this file are not shown. View the raw message.
drivers/media/cec/platform/stm32/stm32-cec.c +18 -8
Lines of this file are not shown. View the raw message.
drivers/media/cec/platform/tegra/tegra_cec.c +6 -4
Lines of this file are not shown. View the raw message.
drivers/media/dvb-frontends/dib8000.c +41 -17
58 lines not on this page · raw message
drivers/media/v4l2-core/v4l2-dv-timings.c +2 -2
Lines of this file are not shown. View the raw message.
drivers/misc/vmw_vmci/vmci_queue_pair.c +4 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/iavf/iavf_main.c +50 -8
58 lines not on this page · raw message
drivers/net/ethernet/intel/igc/igc_main.c +8 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.c +15 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/cmd.c +4 -4
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_rule.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/mellanox/mlx5/core/steering/dr_send.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/netronome/nfp/nfp_net_common.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/stmicro/stmmac/dwmac-ipq806x.c +8 -10
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/ath9k/ar9003_eeprom.c +2 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/main.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/txrx.c +4 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/ath/wcn36xx/wcn36xx.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/fw/dbg.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac-ctxt.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/ops.c +20 -4
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/scan.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/mvm/sta.c +18 -12
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/rx.c +4 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/intel/iwlwifi/pcie/trans.c +3 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h +2 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c +24 -9
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/Makefile +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/fw.c +6 -2
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/fw.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtw88/wow.c +16 -5
Lines of this file are not shown. View the raw message.
drivers/nvme/host/nvme.h +46 -1
47 lines not on this page · raw message
drivers/pci/controller/pci-aardvark.c +257 -9
266 lines not on this page · raw message
drivers/pci/controller/pcie-xilinx-nwl.c +12 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/freescale/pinctrl-imx1-core.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c +8 -9
Lines of this file are not shown. View the raw message.
drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c +0 -1
Lines of this file are not shown. View the raw message.
drivers/pinctrl/samsung/pinctrl-samsung.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/platform/chrome/cros_ec_proto.c +9 -0
Lines of this file are not shown. View the raw message.
drivers/power/supply/max17042_battery.c +5 -1
Lines of this file are not shown. View the raw message.
drivers/s390/cio/qdio_main.c +49 -33
82 lines not on this page · raw message
drivers/staging/media/atomisp/pci/atomisp_v4l2.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/staging/media/hantro/hantro_g1_vp8_dec.c +10 -3
Lines of this file are not shown. View the raw message.
drivers/staging/media/hantro/rk3399_vpu_hw_vp8_dec.c +10 -3
Lines of this file are not shown. View the raw message.
drivers/usb/host/fotg210-hcd.c +19 -22
41 lines not on this page · raw message
fs/f2fs/super.c +66 -40
106 lines not on this page · raw message
fs/io_uring.c +39 -31
70 lines not on this page · raw message
fs/userfaultfd.c +44 -47
91 lines not on this page · raw message
net/bluetooth/hci_event.c +77 -31
108 lines not on this page · raw message
net/bluetooth/sco.c +45 -29
74 lines not on this page · raw message
net/core/flow_offload.c +88 -1
89 lines not on this page · raw message
net/ethtool/ioctl.c +120 -16
136 lines not on this page · raw message
net/socket.c +1 -124
125 lines not on this page · raw message
tools/lib/bpf/libbpf.c +59 -4
63 lines not on this page · raw message
tools/testing/selftests/arm64/mte/mte_common_util.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/arm64/pauth/pac.c +6 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/send_signal.c +16 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/sockopt_inherit.c +3 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/progs/xdp_tx.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_maps.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/test_xdp_veth.sh +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/firmware/fw_namespace.c +2 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/ftrace/test.d/functions +1 -1
Lines of this file are not shown. View the raw message.
The rest of this diff is not shown. View the raw message.
Part of the diff is not shown here. View the raw message.