Skip to contentSkip to conversation

Linux 5.4.22

DISCUSSION Greg KH 1 participant 2 messages Feb 24, 2020 Stable branch

lore
Share & tools
lore

Greg KH

author maintainer
#0 lore raw

I'm announcing the release of the 5.4.22 kernel.

All users of the 5.4 kernel series must upgrade.

The updated 5.4.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.4.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/fb/fbcon.rst                              |    8 -
 Makefile                                                |    2 
 arch/Kconfig                                            |    3 
 arch/arm/Kconfig                                        |    4 
 arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi                 |    7 
 arch/arm/boot/dts/r8a7779.dtsi                          |    8 +
 arch/arm/boot/dts/rk3188-bqedison2qc.dts                |    3 
 arch/arm/boot/dts/stm32f469-disco.dts                   |    8 +
 arch/arm/boot/dts/sun8i-h3.dtsi                         |   15 +
 arch/arm/configs/exynos_defconfig                       |    6 
 arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi            |   16 +-
 arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi            |   10 +
 arch/arm64/boot/dts/qcom/msm8996.dtsi                   |    4 
 arch/arm64/boot/dts/qcom/sdm845-db845c.dts              |    2 
 arch/arm64/boot/dts/rockchip/px30.dtsi                  |    6 
 arch/arm64/boot/dts/rockchip/rk3399-firefly.dts         |    3 
 arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi    |    3 
 arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts       |   27 ---
 arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts        |    3 
 arch/arm64/boot/dts/ti/k3-j721e-main.dtsi               |    1 
 arch/arm64/include/asm/alternative.h                    |   32 ++--
 arch/arm64/include/asm/atomic_lse.h                     |   19 ++
 arch/arm64/include/asm/lse.h                            |    6 
 arch/microblaze/kernel/cpu/cache.c                      |    3 
 arch/mips/loongson64/loongson-3/platform.c              |    3 
 arch/powerpc/Makefile.postlink                          |    4 
 arch/powerpc/kernel/eeh_driver.c                        |    6 
 arch/powerpc/kernel/pci_dn.c                            |   15 +
 arch/powerpc/kvm/emulate_loadstore.c                    |    5 
 arch/powerpc/mm/fault.c                                 |    3 
 arch/powerpc/platforms/powernv/pci-ioda.c               |   48 +++++-
 arch/powerpc/platforms/powernv/pci.c                    |   18 --
 arch/powerpc/platforms/pseries/lparcfg.c                |    4 
 arch/powerpc/tools/relocs_check.sh                      |   20 +-
 arch/s390/Makefile                                      |    2 
 arch/s390/include/asm/pci.h                             |    2 
 arch/s390/kernel/mcount.S                               |   15 +
 arch/s390/kvm/interrupt.c                               |    6 
 arch/s390/pci/pci.c                                     |    2 
 arch/s390/pci/pci_clp.c                                 |   48 +++---
 arch/s390/pci/pci_sysfs.c                               |   63 +++++---
 arch/sh/include/cpu-sh2a/cpu/sh7269.h                   |   11 +
 arch/sparc/kernel/vmlinux.lds.S                         |    6 
 arch/x86/entry/vdso/vdso32-setup.c                      |    1 
 arch/x86/events/amd/core.c                              |   91 ++++++++----
 arch/x86/events/perf_event.h                            |    2 
 arch/x86/include/asm/nmi.h                              |    1 
 arch/x86/kernel/fpu/signal.c                            |    3 
 arch/x86/kernel/nmi.c                                   |   20 +-
 arch/x86/kernel/sysfb_simplefb.c                        |    2 
 arch/x86/lib/x86-opcode-map.txt                         |    2 
 arch/x86/mm/pageattr.c                                  |    8 -
 arch/x86/platform/efi/efi.c                             |   41 ++---
 arch/x86/platform/efi/efi_64.c                          |    9 -
 block/bfq-iosched.c                                     |   12 +
 crypto/Kconfig                                          |    4 
 drivers/acpi/acpica/dsfield.c                           |    2 
 drivers/acpi/acpica/dswload.c                           |   21 ++
 drivers/acpi/button.c                                   |   11 +
 drivers/atm/fore200e.c                                  |   25 ++-
 drivers/base/dd.c                                       |    5 
 drivers/base/platform.c                                 |   12 -
 drivers/block/brd.c                                     |   22 ++
 drivers/block/nbd.c                                     |   10 +
 drivers/block/rbd.c                                     |    2 
 drivers/block/zram/zram_drv.c                           |    3 
 drivers/bus/ti-sysc.c                                   |   10 +
 drivers/char/hpet.c                                     |    2 
 drivers/char/random.c                                   |    5 
 drivers/clk/at91/sam9x60.c                              |    1 
 drivers/clk/clk.c                                       |   53 +++++--
 drivers/clk/imx/clk.h                                   |   37 ++--
 drivers/clk/meson/clk-pll.c                             |    9 +
 drivers/clk/meson/meson8b.c                             |   11 -
 drivers/clk/qcom/clk-rcg2.c                             |   11 -
 drivers/clk/qcom/clk-smd-rpm.c                          |    3 
 drivers/clk/renesas/rcar-gen3-cpg.c                     |    6 
 drivers/clk/sunxi-ng/ccu-sun50i-a64.c                   |   28 +++
 drivers/clk/ti/clk-7xx.c                                |    2 
 drivers/clk/uniphier/clk-uniphier-peri.c                |   13 +
 drivers/clocksource/bcm2835_timer.c                     |    5 
 drivers/clocksource/timer-davinci.c                     |    8 -
 drivers/crypto/Kconfig                                  |    2 
 drivers/crypto/chelsio/chtls/chtls_cm.c                 |   27 +--
 drivers/crypto/chelsio/chtls/chtls_cm.h                 |   21 ++
 drivers/crypto/chelsio/chtls/chtls_hw.c                 |    3 
 drivers/devfreq/Kconfig                                 |    3 
 drivers/devfreq/event/Kconfig                           |    2 
 drivers/devfreq/event/exynos-ppmu.c                     |   13 +
 drivers/dma/dmaengine.c                                 |    4 
 drivers/dma/fsl-qdma.c                                  |    2 
 drivers/dma/imx-sdma.c                                  |   19 +-
 drivers/edac/sifive_edac.c                              |    4 
 drivers/gpio/gpio-grgpio.c                              |   10 -
 drivers/gpio/gpiolib.c                                  |    1 
 drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c            |   19 --
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c              |    2 
 drivers/gpu/drm/amd/amdgpu/nv.c                         |    6 
 drivers/gpu/drm/amd/amdgpu/soc15_common.h               |    1 
 drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c                |    2 
 drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c   |   10 -
 drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h    |   43 -----
 drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c        |   34 +++-
 drivers/gpu/drm/amd/display/dc/core/dc.c                |   17 +-
 drivers/gpu/drm/amd/display/dc/core/dc_link.c           |    3 
 drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c       |   16 +-
 drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c    |    2 
 drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h    |    2 
 drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h      |   43 +++++
 drivers/gpu/drm/amd/display/modules/freesync/freesync.c |    2 
 drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c       |   23 +--
 drivers/gpu/drm/drm_client_modeset.c                    |   72 +++++++++
 drivers/gpu/drm/drm_debugfs_crc.c                       |    4 
 drivers/gpu/drm/drm_mipi_dbi.c                          |    4 
 drivers/gpu/drm/gma500/framebuffer.c                    |    8 -
 drivers/gpu/drm/ingenic/ingenic-drm.c                   |   16 +-
 drivers/gpu/drm/mediatek/mtk_drm_crtc.c                 |   18 ++
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c                   |   11 +
 drivers/gpu/drm/msm/adreno/a6xx_gpu.c                   |   11 +
 drivers/gpu/drm/nouveau/nouveau_dmem.c                  |    4 
 drivers/gpu/drm/nouveau/nouveau_fence.c                 |    2 
 drivers/gpu/drm/nouveau/nouveau_ttm.c                   |    4 
 drivers/gpu/drm/nouveau/nvkm/core/memory.c              |    2 
 drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c     |    2 
 drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c          |   21 +-
 drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c        |    1 
 drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c     |    5 
 drivers/gpu/drm/panel/panel-simple.c                    |   37 ++++
 drivers/gpu/drm/qxl/qxl_kms.c                           |    2 
 drivers/gpu/drm/radeon/radeon_display.c                 |    2 
 drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c              |    4 
 drivers/ide/cmd64x.c                                    |    3 
 drivers/ide/serverworks.c                               |    6 
 drivers/infiniband/core/cache.c                         |  121 +++++++++-------
 drivers/infiniband/core/core_priv.h                     |    1 
 drivers/infiniband/core/device.c                        |   33 +---
 drivers/infiniband/hw/hfi1/chip.c                       |   11 +
 drivers/infiniband/hw/hfi1/chip.h                       |    2 
 drivers/infiniband/hw/hfi1/chip_registers.h             |    1 
 drivers/infiniband/hw/hfi1/driver.c                     |    1 
 drivers/infiniband/hw/hfi1/hfi.h                        |    2 
 drivers/infiniband/hw/hns/hns_roce_mr.c                 |    4 
 drivers/infiniband/hw/mlx5/main.c                       |   34 ++--
 drivers/infiniband/sw/rxe/rxe_verbs.h                   |    2 
 drivers/input/touchscreen/edt-ft5x06.c                  |    7 
 drivers/iommu/amd_iommu.c                               |    7 
 drivers/iommu/amd_iommu_init.c                          |   19 +-
 drivers/iommu/amd_iommu_types.h                         |    2 
 drivers/iommu/arm-smmu-v3.c                             |    3 
 drivers/iommu/dmar.c                                    |    1 
 drivers/iommu/intel-iommu.c                             |    3 
 drivers/iommu/intel-pasid.c                             |   12 +
 drivers/iommu/intel-svm.c                               |    9 -
 drivers/iommu/iova.c                                    |    2 
 drivers/irqchip/irq-gic-v3-its.c                        |    2 
 drivers/irqchip/irq-gic-v3.c                            |    9 -
 drivers/irqchip/irq-mbigen.c                            |    1 
 drivers/leds/leds-pca963x.c                             |    8 -
 drivers/md/bcache/bset.h                                |    3 
 drivers/md/bcache/journal.c                             |    3 
 drivers/md/bcache/stats.c                               |   10 -
 drivers/md/bcache/super.c                               |   79 ++++++----
 drivers/md/dm-thin.c                                    |   18 +-
 drivers/media/i2c/mt9v032.c                             |   10 +
 drivers/media/i2c/ov5640.c                              |    2 
 drivers/media/pci/cx23885/cx23885-cards.c               |   24 +++
 drivers/media/pci/cx23885/cx23885-video.c               |    3 
 drivers/media/pci/cx23885/cx23885.h                     |    1 
 drivers/media/platform/sti/bdisp/bdisp-hw.c             |    6 
 drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c      |   22 ++
 drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.h      |    4 
 drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c      |   20 +-
 drivers/media/usb/uvc/uvc_driver.c                      |   25 +++
 drivers/media/usb/uvc/uvcvideo.h                        |    1 
 drivers/misc/xilinx_sdfec.c                             |   10 -
 drivers/net/ethernet/broadcom/bnxt/bnxt.c               |    1 
 drivers/net/ethernet/cisco/enic/enic_main.c             |    2 
 drivers/net/ethernet/freescale/gianfar.c                |   10 -
 drivers/net/ethernet/intel/i40e/i40e_xsk.c              |    2 
 drivers/net/ethernet/mellanox/mlx5/core/en_stats.c      |    3 
 drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c    |    3 
 drivers/net/ethernet/netronome/nfp/abm/cls.c            |   14 -
 drivers/net/ethernet/realtek/r8169_main.c               |    9 +
 drivers/net/ethernet/xscale/ixp4xx_eth.c                |   96 +++++-------
 drivers/net/phy/fixed_phy.c                             |    7 
 drivers/net/phy/realtek.c                               |   19 ++
 drivers/net/wan/fsl_ucc_hdlc.c                          |    5 
 drivers/net/wan/hdlc_x25.c                              |   13 +
 drivers/net/wan/ixp4xx_hss.c                            |    4 
 drivers/net/wireless/ath/ath10k/snoc.c                  |    5 
 drivers/net/wireless/ath/ath10k/wmi-tlv.c               |    5 
 drivers/net/wireless/ath/ath10k/wmi.c                   |    2 
 drivers/net/wireless/ath/wil6210/txrx_edma.c            |    3 
 drivers/net/wireless/broadcom/b43legacy/main.c          |    5 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c  |    3 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c |   13 -
 drivers/net/wireless/intel/ipw2x00/ipw2100.c            |    7 
 drivers/net/wireless/intel/ipw2x00/ipw2200.c            |    5 
 drivers/net/wireless/intel/iwlegacy/3945-mac.c          |    5 
 drivers/net/wireless/intel/iwlegacy/4965-mac.c          |    5 
 drivers/net/wireless/intel/iwlegacy/common.c            |    2 
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c       |    8 -
 drivers/net/wireless/intel/iwlwifi/mvm/tt.c             |    4 
 drivers/net/wireless/intersil/hostap/hostap_ap.c        |    2 
 drivers/net/wireless/intersil/orinoco/orinoco_usb.c     |    3 
 drivers/net/wireless/realtek/rtlwifi/pci.c              |   10 -
 drivers/net/wireless/realtek/rtw88/main.c               |   12 -
 drivers/net/wireless/realtek/rtw88/pci.c                |    5 
 drivers/nfc/port100.c                                   |    2 
 drivers/nvme/host/pci.c                                 |   23 +--
 drivers/nvme/target/core.c                              |    6 
 drivers/opp/of.c                                        |   17 +-
 drivers/pci/controller/pcie-iproc.c                     |   24 +++
 drivers/pci/pci.c                                       |   24 ++-
 drivers/pci/pci.h                                       |    3 
 drivers/pci/quirks.c                                    |   99 ++++++-------
 drivers/pci/search.c                                    |    4 
 drivers/perf/fsl_imx8_ddr_perf.c                        |   16 +-
 drivers/pinctrl/intel/pinctrl-baytrail.c                |    8 -
 drivers/pinctrl/sh-pfc/pfc-sh7264.c                     |    9 -
 drivers/pinctrl/sh-pfc/pfc-sh7269.c                     |   39 +++--
 drivers/pwm/pwm-omap-dmtimer.c                          |   35 +++-
 drivers/pwm/pwm-pca9685.c                               |    4 
 drivers/regulator/core.c                                |    2 
 drivers/regulator/rk808-regulator.c                     |    2 
 drivers/regulator/vctrl-regulator.c                     |   38 +++--
 drivers/remoteproc/remoteproc_core.c                    |    2 
 drivers/reset/reset-uniphier.c                          |   13 +
 drivers/rtc/Kconfig                                     |   12 +
 drivers/scsi/aic7xxx/aic7xxx_core.c                     |    2 
 drivers/scsi/iscsi_tcp.c                                |    4 
 drivers/scsi/lpfc/lpfc_ct.c                             |   42 ++---
 drivers/scsi/scsi_transport_iscsi.c                     |   26 +++
 drivers/scsi/ufs/ufs-mediatek.c                         |   11 +
 drivers/scsi/ufs/ufs-qcom.c                             |    3 
 drivers/scsi/ufs/ufshcd.c                               |   32 +---
 drivers/scsi/ufs/ufshcd.h                               |    9 -
 drivers/soc/tegra/fuse/tegra-apbmisc.c                  |    2 
 drivers/spi/spi-fsl-lpspi.c                             |   32 ++--
 drivers/spi/spi-fsl-qspi.c                              |    2 
 drivers/staging/media/meson/vdec/vdec.c                 |    2 
 drivers/staging/rtl8188eu/os_dep/ioctl_linux.c          |    9 -
 drivers/tty/synclink_gt.c                               |   18 +-
 drivers/tty/synclinkmp.c                                |   24 +--
 drivers/uio/uio_dmem_genirq.c                           |    6 
 drivers/usb/dwc2/gadget.c                               |    3 
 drivers/usb/dwc3/host.c                                 |    6 
 drivers/usb/gadget/udc/gr_udc.c                         |   16 +-
 drivers/usb/musb/omap2430.c                             |    2 
 drivers/vfio/pci/vfio_pci_nvlink2.c                     |    6 
 drivers/video/fbdev/pxa168fb.c                          |    6 
 drivers/virtio/virtio_balloon.c                         |    2 
 drivers/visorbus/visorchipset.c                         |   11 -
 drivers/vme/bridges/vme_fake.c                          |   30 ++-
 fs/btrfs/check-integrity.c                              |    3 
 fs/btrfs/ctree.h                                        |   20 +-
 fs/btrfs/file-item.c                                    |    3 
 fs/btrfs/inode.c                                        |  121 ++++++++++++----
 fs/btrfs/volumes.c                                      |   44 +++++
 fs/ceph/mds_client.c                                    |    3 
 fs/ceph/super.c                                         |    5 
 fs/cifs/cifs_dfs_ref.c                                  |   97 +++++-------
 fs/cifs/connect.c                                       |    6 
 fs/cifs/dfs_cache.c                                     |    2 
 fs/cifs/smb2pdu.c                                       |    3 
 fs/ext4/file.c                                          |   10 -
 fs/ext4/readpage.c                                      |   17 +-
 fs/f2fs/data.c                                          |   13 -
 fs/f2fs/file.c                                          |   50 ++++--
 fs/f2fs/namei.c                                         |   27 +--
 fs/f2fs/sysfs.c                                         |   12 +
 fs/fuse/file.c                                          |   12 +
 fs/jbd2/checkpoint.c                                    |    2 
 fs/jbd2/commit.c                                        |    4 
 fs/jbd2/journal.c                                       |   24 +--
 fs/nfs/nfs42proc.c                                      |    4 
 fs/nfsd/vfs.c                                           |   19 +-
 fs/ocfs2/dlm/Makefile                                   |    2 
 fs/ocfs2/dlm/dlmast.c                                   |    8 -
 fs/ocfs2/dlm/dlmconvert.c                               |    8 -
 fs/ocfs2/dlm/dlmdebug.c                                 |    8 -
 fs/ocfs2/dlm/dlmdomain.c                                |    8 -
 fs/ocfs2/dlm/dlmlock.c                                  |    8 -
 fs/ocfs2/dlm/dlmmaster.c                                |    8 -
 fs/ocfs2/dlm/dlmrecovery.c                              |    8 -
 fs/ocfs2/dlm/dlmthread.c                                |    8 -
 fs/ocfs2/dlm/dlmunlock.c                                |    8 -
 fs/ocfs2/dlmfs/Makefile                                 |    2 
 fs/ocfs2/dlmfs/dlmfs.c                                  |    4 
 fs/ocfs2/dlmfs/userdlm.c                                |    6 
 fs/ocfs2/journal.h                                      |    8 -
 fs/orangefs/orangefs-debugfs.c                          |    1 
 fs/reiserfs/stree.c                                     |    3 
 fs/reiserfs/super.c                                     |    2 
 fs/udf/super.c                                          |   23 ++-
 include/linux/cpuhotplug.h                              |    1 
 include/linux/dmaengine.h                               |    2 
 include/linux/list_nulls.h                              |    8 -
 include/linux/pci.h                                     |    2 
 include/linux/platform_data/ti-sysc.h                   |    1 
 include/linux/raid/pq.h                                 |    3 
 include/linux/rculist_nulls.h                           |    8 -
 include/media/v4l2-device.h                             |   12 -
 include/rdma/ib_verbs.h                                 |    9 -
 include/trace/events/rcu.h                              |    4 
 kernel/bpf/inode.c                                      |    3 
 kernel/cpu.c                                            |   13 +
 kernel/module.c                                         |   20 +-
 kernel/padata.c                                         |   30 ++-
 kernel/printk/printk.c                                  |    4 
 kernel/rcu/tree.c                                       |   11 -
 kernel/rcu/tree_exp.h                                   |    2 
 kernel/rcu/tree_plugin.h                                |   22 ++
 kernel/sched/core.c                                     |    3 
 kernel/sched/topology.c                                 |   39 +++++
 kernel/time/alarmtimer.c                                |   20 +-
 kernel/trace/ftrace.c                                   |    5 
 kernel/trace/trace_events_hist.c                        |   70 +++------
 kernel/trace/trace_events_trigger.c                     |    5 
 kernel/trace/trace_stat.c                               |   31 ++--
 kernel/watchdog.c                                       |   10 -
 lib/debugobjects.c                                      |   46 +++---
 lib/raid6/mktables.c                                    |    2 
 lib/scatterlist.c                                       |    2 
 net/core/dev.c                                          |    4 
 net/core/filter.c                                       |    2 
 net/core/sock_map.c                                     |    3 
 net/dsa/tag_qca.c                                       |    2 
 net/netfilter/nft_tunnel.c                              |    3 
 net/sched/cls_flower.c                                  |    1 
 net/sched/cls_matchall.c                                |    1 
 net/smc/smc_diag.c                                      |    5 
 net/sunrpc/cache.c                                      |    2 
 samples/bpf/Makefile                                    |    1 
 scripts/Kbuild.include                                  |   15 -
 scripts/Kconfig.include                                 |    2 
 scripts/kconfig/confdata.c                              |    2 
 scripts/link-vmlinux.sh                                 |    4 
 security/selinux/avc.c                                  |   53 +++----
 sound/core/control.c                                    |    5 
 sound/pci/hda/patch_conexant.c                          |    1 
 sound/pci/hda/patch_hdmi.c                              |    7 
 sound/pci/hda/patch_realtek.c                           |   10 +
 sound/sh/aica.c                                         |    4 
 sound/sh/sh_dac_audio.c                                 |    3 
 sound/soc/atmel/Kconfig                                 |    2 
 sound/soc/intel/boards/sof_rt5682.c                     |   43 +++++
 sound/soc/soc-topology.c                                |   42 ++---
 sound/soc/sof/intel/hda-dai.c                           |    3 
 sound/soc/sof/intel/hda.h                               |    2 
 sound/usb/card.c                                        |    4 
 sound/usb/format.c                                      |    3 
 sound/usb/pcm.c                                         |    4 
 sound/usb/quirks.c                                      |   38 +++++
 sound/usb/quirks.h                                      |    5 
 sound/usb/usx2y/usX2Yhwdep.c                            |    2 
 tools/arch/x86/lib/x86-opcode-map.txt                   |    2 
 tools/bpf/bpftool/cgroup.c                              |   56 +++++--
 tools/lib/api/fs/fs.c                                   |    4 
 tools/objtool/Makefile                                  |    6 
 tools/testing/selftests/bpf/test_select_reuseport.c     |   16 +-
 tools/testing/selftests/kselftest/runner.sh             |    2 
 tools/testing/selftests/net/so_txtime.c                 |   84 ++++++++++-
 tools/testing/selftests/net/so_txtime.sh                |    9 -
 tools/testing/selftests/powerpc/eeh/eeh-functions.sh    |   10 -
 tools/testing/selftests/size/get_size.c                 |   24 ++-
 tools/usb/usbip/src/usbip_network.c                     |   40 +++--
 tools/usb/usbip/src/usbip_network.h                     |   12 -
 368 files changed, 3044 insertions(+), 1597 deletions(-)

Abel Vesa (1):
clk: imx: Add correct failure handling for clk based helpers

Adam Ford (2):
media: ov5640: Fix check for PLL1 exceeding max allowed rate drm/panel: simple: Add Logic PD Type 28 display support

Aditya Pakki (2):
fore200e: Fix incorrect checks of NULL pointer dereference
orinoco: avoid assertion in case of NULL pointer

Alex Deucher (3):
drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_latency drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_voltage drm/amdgpu/display: handle multiple numbers of fclks in dcn_calcs.c (v2)

Alexander Tsoy (2):
ALSA: usb-audio: Add boot quirk for MOTU M Series
ALSA: usb-audio: add implicit fb quirk for MOTU M Series

Alexandre Belloni (1):
rtc: Kconfig: select REGMAP_I2C when necessary

Alexandre Ghiti (1):
powerpc: Do not consider weak unresolved symbol relocations as bad

Alexey Kardashevskiy (1):
vfio/spapr/nvlink2: Skip unpinning pages on error exit

Amanda Liu (1):
drm/amd/display: Clear state after exiting fixed active VRR state

Amol Grover (1):
nvmet: Pass lockdep expression to RCU lists

Anand Jain (1):
btrfs: device stats, log when stats are zeroed

Andre Przywara (3):
arm64: dts: allwinner: H6: Add PMU mode
arm64: dts: allwinner: H5: Add PMU node
arm: dts: allwinner: H3: Add PMU node

Andrei Otcheretianski (2):
iwlwifi: mvm: Fix thermal zone registration
iwlwifi: mvm: Check the sta is not NULL in iwl_mvm_cfg_he_sta()

Andrey Smirnov (2):
ARM: dts: imx6: rdu2: Disable WP for USDHC2 and USDHC3
ARM: dts: imx6: rdu2: Limit USBH1 to Full Speed

Andrey Zhizhikin (1):
tools lib api fs: Fix gcc9 stringop-truncation compilation error

Ard Biesheuvel (3):
efi/x86: Map the entire EFI vendor string before copying it efi/x86: Don't panic or BUG() on non-critical error conditions x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd

Arnd Bergmann (7):
PM / devfreq: exynos-ppmu: Fix excessive stack usage
mlx5: work around high stack usage with gcc
staging: rtl8188: avoid excessive stack usage
wan: ixp4xx_hss: fix compile-testing on 64-bit
visorbus: fix uninitialized variable access
vme: bridges: reduce stack usage
rbd: work around -Wuninitialized warning

Arvind Sankar (1):
x86/sysfb: Fix check for bad VRAM size

Bartosz Golaszewski (1):
clocksource: davinci: only enable clockevents once tim34 is initialized

Ben Skeggs (4):
drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fw drm/nouveau/fault/gv100-: fix memory leak on module unload drm/nouveau/mmu: fix comptag memory leak drm/nouveau/disp/nv50-: prevent oops when no channel method map provided

Benjamin Gaignard (1):
ARM: dts: stm32: Add power-supply for DSI panel on stm32f469-disco

Bibby Hsieh (1):
drm/mediatek: handle events when enabling/disabling crtc

Bjorn Andersson (1):
arm64: dts: qcom: db845c: Enable ath10k 8bit host-cap quirk

Brandon Maier (1):
remoteproc: Initialize rproc_class before use

Brendan Higgins (1):
crypto: inside-secure - add unspecified HAS_IOMEM dependency

Can Guo (1):
scsi: ufs: Complete pending requests in host reset and restore path

Cezary Rojewski (1):
ASoC: SOF: Intel: hda: Fix SKL dai count

Changbin Du (1):
x86/nmi: Remove irq_work from the long duration NMI handler

Chanwoo Choi (1):
PM / devfreq: rk3399_dmc: Add COMPILE_TEST and HAVE_ARM_SMCCC dependency

Chao Yu (1):
f2fs: fix memleak of kobject

Chen Zhou (2):
dmaengine: fsl-qdma: fix duplicated argument to &&
ASoC: atmel: fix build error with CONFIG_SND_ATMEL_SOC_DMA=m

Chen-Yu Tsai (3):
media: sun4i-csi: Deal with DRAM offset
media: sun4i-csi: Fix data sampling polarity handling
media: sun4i-csi: Fix [HV]sync polarity handling

Chris Down (1):
bpf, btf: Always output invariant hit in pahole DWARF to BTF transform

Chris Mason (1):
Btrfs: keep pages dirty when using btrfs_writepage_fixup_worker

Christian Borntraeger (1):

      KVM: s390: ENOTSUPP -> EOPNOTSUPP fixups

Christoph Hellwig (2):
bcache: rework error unwinding in register_bcache
nvme-pci: remove nvmeq->tags

Christophe JAILLET (1):
pxa168fb: Fix the function used to release some memory in an error handling path

Christophe Leroy (1):

      powerpc/mm: Don't log user reads to 0xffffffff

Colin Ian King (7):
wil6210: fix break that is never reached because of zero'ing of a retry counter
media: meson: add missing allocation failure check on new_buf drm/nouveau/nouveau: fix incorrect sizeof on args.src an args.dst clocksource/drivers/bcm2835_timer: Fix memory leak of timer drivers/block/zram/zram_drv.c: fix error return codes not being returned in writeback_store driver core: platform: fix u32 greater or equal to zero comparison
iwlegacy: ensure loop counter addr does not wrap and cause an infinite loop

Coly Li (5):
bcache: fix use-after-free in register_bcache()
bcache: fix memory corruption in bch_cache_accounting_clear()
bcache: explicity type cast in bset_bkey_last()
bcache: fix incorrect data type usage in btree_flush_write()
bcache: properly initialize 'path' and 'err' in register_bcache()

Dan Carpenter (5):
brcmfmac: Fix use after free in brcmf_sdio_readframes() drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()
ALSA: usb-audio: unlock on error in probe
cmd64x: potential buffer overflow in cmd64x_program_timings()
ide: serverworks: potential overflow in svwks_set_pio_mode()

Daniel Drake (2):
PCI: Add generic quirk for increasing D3hot delay
PCI: Increase D3 delay for AMD Ryzen5/7 XHCI controllers

Daniel Jordan (1):
padata: validate cpumask without removed CPU during offline

Daniel Vetter (1):
radeon: insert 10ms sleep in dce5_crtc_load_lut

David S. Miller (1):
sparc: Add .exit.data section.

David Sterba (2):
btrfs: safely advance counter when looking up bio csums
btrfs: separate definition of assertion failure handlers

Davide Caratti (2):
net/sched: matchall: add missing validation of TCA_MATCHALL_FLAGS net/sched: flower: add missing validation of TCA_FLOWER_FLAGS

Dingchen Zhang (1):
drm: remove the newline for CRC source name.

Dmitry Osipenko (1):
soc/tegra: fuse: Correct straps' address for older Tegra124 device trees

Dmitry Torokhov (2):
net: phy: fixed_phy: fix use-after-free when checking link GPIO
usb: dwc3: use proper initializers for property entries

Dor Askayo (1):
drm/amd/display: do not allocate display_mode_lib unnecessarily

Douglas Anderson (1):
clk: qcom: rcg2: Don't crash if our parent can't be found; return an error

Enric Balletbo i Serra (2):
regulator: vctrl-regulator: Avoid deadlock getting and setting the voltage
regulator: core: Fix exported symbols to the exported GPL version

Eric Biggers (1):
ext4: fix deadlock allocating bio_post_read_ctx from mempool

Eric Dumazet (1):
net/smc: fix leak of kernel memory to user space

Erik Kaneda (1):
ACPICA: Disassembler: create buffer fields in ACPI_PARSE_LOAD_PASS1

Eugen Hristev (2):
media: i2c: mt9v032: fix enum mbus codes and frame sizes
clk: at91: sam9x60: fix programmable clock prescaler

Felix Kuehling (1):
drm/amdkfd: Fix permissions of hang_hws

Firo Yang (1):
enic: prevent waking up stopped tx queues over watchdog reset

Forest Crossman (1):
media: cx23885: Add support for AVerMedia CE310B

Geert Uytterhoeven (7):
pinctrl: sh-pfc: sh7264: Fix CAN function GPIOs drm/mipi_dbi: Fix off-by-one bugs in mipi_dbi_blank()
rtc: i2c/spi: Avoid inclusion of REGMAP support when not needed
ARM: dts: r8a7779: Add device node for ARM global timer
pinctrl: sh-pfc: sh7269: Fix CAN function GPIOs
driver core: Print device when resources present in really_probe()
crypto: essiv - fix AEAD capitalization and preposition use in help text

Greg Kroah-Hartman (1):

      Linux 5.4.22

Grygorii Strashko (1):
clk: ti: dra7: fix parent for gmac_clkctrl

Gustavo A. R. Silva (1):
char: hpet: Fix out-of-bounds read bug

Hans de Goede (1):
pinctrl: baytrail: Do not clear IRQ flags on direct-irq enabled pins

Harry Wentland (1):
drm/amd/display: Retrain dongles when SINK_COUNT becomes non-zero

Hechao Li (1):
bpf: Print error message for bpftool cgroup show

Heiner Kallweit (1):
r8169: check that Realtek PHY driver module is loaded

Icenowy Zheng (1):
clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock

Ido Schimmel (1):
mlxsw: spectrum_dpipe: Add missing error path

Jacob Pan (3):
iommu/vt-d: Fix off-by-one in PASID allocation iommu/vt-d: Match CPU and IOMMU paging mode iommu/vt-d: Avoid sending invalid page response

Jaegeuk Kim (4):
f2fs: preallocate DIO blocks when forcing buffered_io
f2fs: call f2fs_balance_fs outside of locked page
f2fs: set I_LINKABLE early to avoid wrong access by vfs
f2fs: free sysfs kobject

Jaihind Yadav (1):
selinux: ensure we cleanup the internal AVC counters on error in avc_update()

Jakub Kicinski (1):
Revert "nfp: abm: fix memory leak in nfp_abm_u32_knode_replace"

Jakub Sitnicki (1):
bpf, sockhash: Synchronize_rcu before free'ing map

James Sewart (3):
PCI: Fix pci_add_dma_alias() bitmask size
PCI: Add nr_devfns parameter to pci_add_dma_alias()
PCI: Add DMA alias quirk for PLX PEX NTB

James Smart (1):
scsi: lpfc: Fix: Rework setting of fdmi symbolic node name registration

Jan Kara (3):
udf: Allow writing to 'Rewritable' partitions
reiserfs: Fix spurious unlock in reiserfs_fill_super() error handling
udf: Fix free space reporting for metadata and virtual partitions

Jason Ekstrand (1):
ACPI: button: Add DMI quirk for Razer Blade Stealth 13 late 2019 lid switch

Jean-Philippe Brucker (1):
brcmfmac: sdio: Fix OOB interrupt initialization on brcm43362

Jeffrey Hugo (2):
ath10k: Fix qmi init error handling
clk: qcom: smd: Add missing bimc clock

Jerome Brunet (1):
clk: actually call the clock init before any other callback of the clock

Jessica Yu (1):

      module: avoid setting info->name early in case we can fall back to info->mod->name

Jia-Ju Bai (4):
gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in grgpio_irq_map/unmap()
media: sti: bdisp: fix a possible sleep-in-atomic-context bug in bdisp_device_run()
uio: fix a sleep-in-atomic-context bug in uio_dmem_genirq_irqcontrol()
usb: gadget: udc: fix possible sleep-in-atomic-context bugs in gr_probe()

Jiewei Ke (1):
RDMA/rxe: Fix error type of mmap_offset

Johan Jonker (3):
arm64: dts: rockchip: fix dwmmc clock name for px30
arm64: dts: rockchip: add reg property to brcmf sub-nodes
ARM: dts: rockchip: add reg property to brcmf sub node for rk3188-bqedison2qc

Johannes Thumshirn (1):
btrfs: fix possible NULL-pointer dereference in integrity checks

John Garry (1):
irqchip/mbigen: Set driver .suppress_bind_attrs to avoid remove problems

John Keeping (1):
usb: dwc2: Fix IN FIFO allocation

John Ogness (1):
printk: fix exclusive_console replaying

Jonathan Lemon (1):
bnxt: Detach page from page pool before sending up the stack

Josef Bacik (1):
btrfs: do not do delalloc reservation under page lock

Jun Lei (1):
drm/amd/display: fixup DML dependencies

Kai Li (1):
jbd2: clear JBD2_ABORT flag before journal_reset to update log tail info when load journal

Kai Vehmanen (1):
ALSA: hda/hdmi - add retry logic to parse_intel_hdmi()

Kim Phillips (1):
perf/x86/amd: Constrain Large Increment per Cycle events

Krzysztof Kozlowski (1):
ARM: exynos_defconfig: Bring back explicitly wanted options

Kunihiko Hayashi (2):
reset: uniphier: Add SCSSI reset control for each channel
clk: uniphier: Add SCSSI clock gate for each channel

Leon Romanovsky (1):
RDMA/mlx5: Don't fake udata for kernel path

Leonard Crestez (1):
perf/imx_ddr: Fix cpu hotplug state cleanup

Li Guanglei (1):
sched/core: Fix size of rq::uclamp initialization

Li RongQing (1):
bpf: Return -EBADRQC for invalid map type in __bpf_tx_xdp_map

Liang Chen (1):
bcache: cached_dev_free needs to put the sb page

Linus Walleij (1):
net: ethernet: ixp4xx: Standard module init

Logan Gunthorpe (1):
dmaengine: Store module owner in dma_device struct

Lokesh Vutla (1):
arm64: dts: ti: k3-j721e-main: Add missing power-domains for smmu

Lorenz Bauer (1):
selftests: bpf: Reset global state between reuseport test runs

Lu Baolu (1):
iommu/vt-d: Remove unnecessary WARN_ON_ONCE()

Luc Van Oostenryck (1):
misc: xilinx_sdfec: fix xsdfec_poll()'s return type

Luis Henriques (1):
tracing: Fix tracing_stat return values in error handling paths

Maciej Fijalkowski (1):
i40e: Relax i40e_xsk_wakeup's return value when PF is busy

Manasi Navare (1):
drm/fbdev: Fallback to non tiled mode if all tiles not present

Manu Gautam (1):
arm64: dts: qcom: msm8996: Disable USB2 PHY suspend by core

Mao Wenan (1):

      NFC: port100: Convert cpu_to_le16(le16_to_cpu(E1) + E2) to use le16_add_cpu().

Marc Zyngier (1):
irqchip/gic-v3: Only provision redistributors that are enabled in ACPI

Marco Elver (2):
rcu: Fix data-race due to atomic_t copy-by-value
debugobjects: Fix various data races

Markus Elfring (1):
drm/qxl: Complete exception handling in qxl_device_init()

Martin Blumenstingl (2):
clk: meson: meson8b: make the CCF use the glitch-free mali mux
net: phy: realtek: add logging for the RGMII TX delay configuration

Martin Schiller (1):
wan/hdlc_x25: fix skb handling

Masahiro Yamada (4):
kconfig: fix broken dependency in randconfig-generated .config
kbuild: remove *.tmp file when filechk fails
kbuild: use -S instead of -E for precise cc-option test in Kconfig
ocfs2: make local header paths relative to C files

Masami Hiramatsu (2):
modules: lockdep: Suppress suspicious RCU usage warning x86/decoder: Add TEST opcode to Group3-2

Matthieu Baerts (1):
selftests: settings: tests can be in subsubdirs

Michael Bringmann (1):
powerpc/pseries/lparcfg: Fix display of Maximum Memory

Michael S. Tsirkin (1):
virtio_balloon: prevent pfn array overflow

Michael Walle (1):
spi: spi-fsl-qspi: Ensure width is respected in spi-mem operations

Mike Marciniszyn (2):
IB/hfi1: Add software counter for ctxt0 seq drop IB/hfi1: Add RcvShortLengthErrCnt to hfi1stats

Miklos Szeredi (1):
fuse: don't overflow LLONG_MAX with end offset

Mikulas Patocka (1):
dm thin: don't allow changing data device during thin-pool reload

Miquel Raynal (1):
regulator: rk808: Lower log level on optional GPIOs being not available

Monk Liu (1):
drm/amdgpu: fix KIQ ring test fail in TDR of SRIOV

Nathan Chancellor (8):
drm/amdgpu: Ensure ret is always initialized when using SOC15_WAIT_ON_RREG
media: v4l2-device.h: Explicitly compare grp{id,mask} to zero in v4l2_device macros
ALSA: usx2y: Adjust indentation in snd_usX2Y_hwdep_dsp_status
scsi: aic7xxx: Adjust indentation in ahc_find_syncrate
tty: synclinkmp: Adjust indentation in several functions
tty: synclink_gt: Adjust indentation in several functions
hostap: Adjust indentation in prism2_hostapd_add_sta lib/scatterlist.c: adjust indentation in __sg_alloc_table

Navid Emamdoost (2):
brcmfmac: Fix memory leak in brcmf_p2p_create_p2pdev() drm/vmwgfx: prevent memory leak in vmw_cmdbuf_res_add

Neeraj Upadhyay (1):
rcu: Fix missed wakeup of exp_wq waiters

Nick Black (1):
scsi: iscsi: Don't destroy session if there are outstanding connections

Nicola Lunghi (1):
ALSA: usb-audio: add quirks for Line6 Helix devices fw>=2.82

Niklas Schnelle (2):
s390/pci: Fix possible deadlock in recover_store() s390/pci: Recover handle in clp_set_pci_fn()

Nikola Cornij (1):
drm/amd/display: Map ODM memory correctly when doing ODM combine

Nikolay Borisov (1):
btrfs: Fix split-brain handling when changing FSID to metadata uuid

Oliver O'Halloran (4):
powerpc/powernv/iov: Ensure the pdn for VFs always contains a valid PE number powerpc/iov: Move VF pdev fixup into pcibios_fixup_iov() powerpc/sriov: Remove VF eeh_dev state when disabling SR-IOV selftests/eeh: Bump EEH wait time to 60s

Paolo Valente (1):
block, bfq: do not plug I/O for bfq_queues with no proc refs

Parav Pandit (1):
IB/core: Let IB core distribute cache update events

Paul Cercueil (1):
gpu/drm: ingenic: Avoid null pointer deference in plane atomic update

Paul E. McKenney (1):

      rcu: Use WRITE_ONCE() for assignments to ->pprev for hlist_nulls

Paul Kocialkowski (1):
drm/gma500: Fixup fbdev stolen size usage evaluation

Paul Moore (1):
selinux: ensure we cleanup the internal AVC counters on error in avc_insert()

Paulo Alcantara (SUSE) (1):
cifs: Fix mount options set in automount

Per Forlin (1):
net: dsa: tag_qca: Make sure there is headroom for tag

Peter Große (1):
ALSA: hda - Add docking station support for Lenovo Thinkpad T420s

Peter Rosin (1):
fbdev: fix numbering of fbcon options

Peter Zijlstra (2):
cpu/hotplug, stop_machine: Fix stop_machine vs hotplug order asm-generic/tlb: add missing CONFIG symbol

Philipp Zabel (1):
Input: edt-ft5x06 - work around first register access error

Philippe Schenker (1):
spi: fsl-lpspi: fix only one cs-gpio working

Phong Tran (4):
b43legacy: Fix -Wcast-function-type
ipw2x00: Fix -Wcast-function-type
iwlegacy: Fix -Wcast-function-type
rtlwifi: rtl_pci: Fix -Wcast-function-type

Pierre-Louis Bossart (2):
ASoC: soc-topology: fix endianness issues
ASoC: SOF: Intel: hda-dai: fix compilation warning in pcm_prepare

Ping-Ke Shih (1):
rtw88: fix rate mask for 1SS chip

Qian Cai (1):
iommu/iova: Silence warnings under memory pressure

Rakesh Pillai (1):
ath10k: Correct the DMA direction for management tx buffers

Rasmus Villemoes (1):
net/wan/fsl_ucc_hdlc: reject muram offsets above 64K

Remi Pommarel (1):
clk: meson: pll: Fix by 0 division in __pll_params_to_rate()

Ritesh Harjani (1):
ext4: fix ext4_dax_read/write inode locking sequence for IOCB_NOWAIT

Rob Clark (1):
drm/msm/adreno: fix zap vs no-zap handling

Robin Murphy (1):
arm64: dts: rockchip: Fix NanoPC-T4 cooling maps

Ronnie Sahlberg (1):
cifs: fix NULL dereference in match_prepath

Sam McNally (1):
ASoC: Intel: sof_rt5682: Ignore the speaker amp when there isn't one.

Sami Tolvanen (2):
arm64: lse: fix LSE atomics with LLVM's integrated assembler
arm64: fix alternatives with LLVM's integrated assembler

Sascha Hauer (1):
dmaengine: imx-sdma: Fix memory leak

Sathyanarayana Nujella (2):
ASoC: intel: sof_rt5682: Add quirk for number of HDMI DAI's
ASoC: intel: sof_rt5682: Add support for tgl-max98357a-rt5682

Sebastian Andrzej Siewior (1):
x86/fpu: Deactivate FPU state after failure during state load

Sergei Shtylyov (1):
clk: renesas: rcar-gen3: Allow changing the RPC[D2] clocks

Sergey Senozhatsky (1):
char/random: silence a lockdep splat with printk()

Sergey Zakharchenko (1):
media: uvcvideo: Add a quirk to force GEO GC6500 Camera bits-per-pixel value

Shile Zhang (1):
objtool: Fix ARCH=x86_64 build error

Shuah Khan (1):
usbip: Fix unsafe unaligned pointer usage

Shubhrajyoti Datta (1):
microblaze: Prevent the overflow of the start

Siddhesh Poyarekar (1):
kselftest: Minimise dependency of get_size on C library interfaces

Simon Schwartz (1):
driver core: platform: Prevent resouce overflow from causing infinite loops

Stanley Chu (2):
scsi: ufs: pass device information to apply_dev_quirks
scsi: ufs-mediatek: add apply_dev_quirks variant operation

Stefan Reiter (1):
rcu/nocb: Fix dump_tree hierarchy print always active

Stephen Boyd (4):
clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()
clk: Use parent node pointer during registration if necessary
gpiolib: Set lockdep class for hierarchical irq domains
alarmtimer: Make alarmtimer platform device child of RTC device

Steve French (2):
cifs: fix unitialized variable poential problem with network I/O cache lock patch
cifs: log warning message (once) if out of disk space

Steven Rostedt (VMware) (1):
tracing: Fix very unlikely race of registering two stat tracers

Sun Ke (1):
nbd: add a flush_workqueue in nbd_start_device

Suravee Suthikulpanit (2):
iommu/amd: Check feature support bit before accessing MSI capability registers iommu/amd: Only support x2APIC with IVHD type 11h/40h

Takashi Iwai (3):
ALSA: sh: Fix unused variable warnings
ALSA: hda/realtek - Apply mic mute LED quirk for Dell E7xx laptops, too
ALSA: sh: Fix compile warning wrt const

Takashi Sakamoto (1):
ALSA: ctl: allow TLV read operation for callback type of element in locked case

Thomas Gleixner (1):
watchdog/softlockup: Enforce that timestamp is valid on boot

Tiecheng Zhou (1):
drm/amdgpu/sriov: workaround on rev_id for Navi12 under sriov

Tiezhu Yang (1):
MIPS: Loongson: Fix potential NULL dereference in loongson3_platform_init()

Toke Høiland-Jørgensen (2):
core: Don't skip generic XDP program execution for cloned SKBs samples/bpf: Set -fno-stack-protector when building BPF programs

Tom Zanussi (1):
tracing: Simplify assignment parsing for hist triggers

Tony Lindgren (2):
bus: ti-sysc: Implement quirk handling for CLKDM_NOAUTO
usb: musb: omap2430: Get rid of musb .set_vbus for omap2430 glue

Trond Myklebust (2):
nfsd: Clone should commit src file metadata too
sunrpc: Fix potential leaks in sunrpc_cache_unhash()

Uwe Kleine-König (2):
pwm: omap-dmtimer: Simplify error handling
pwm: omap-dmtimer: Remove PWM chip in .remove before making it unfunctional

Valdis Kletnieks (1):
x86/vdso: Provide missing include file

Valentin Schneider (1):
sched/topology: Assert non-NUMA topology masks don't (partially) overlap

Vasily Averin (4):
bpf: map_seq_next should always increase position index
ftrace: fpid_next() should increase position index trigger_next should increase position index help_next should increase position index

Vasily Gorbik (2):
s390: adjust -mpacked-stack support check for clang 10 s390/ftrace: generate traced function stack frame

Vinay Kumar Yadav (1):
crypto: chtls - Fixed memory leak

Vincenzo Frascino (2):
ARM: 8952/1: Disable kmemleak on XIP kernels
ARM: 8951/1: Fix Kexec compilation issue.

Viresh Kumar (1):
opp: Free static OPPs on errors while adding them

Vladimir Oltean (1):
gianfar: Fix TX timestamping with a stacked DSA driver

Wei Liu (1):
PCI: iproc: Apply quirk_paxc_bridge() for module as well as built-in

Wei Yongjun (1):
EDAC/sifive: Fix return value check in ecc_register()

Wen Gong (1):
ath10k: correct the tlv len of ath10k_wmi_tlv_op_gen_config_pno_start

Wenpeng Liang (1):
RDMA/hns: Avoid printing address of mtt page

Wenwen Wang (1):
NFS: Fix memory leaks

Will Deacon (1):
iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE

Willem de Bruijn (1):
selftests/net: make so_txtime more robust to timer variance

Xin Long (1):
netfilter: nft_tunnel: add the missing ERSPAN_VERSION nla_policy

Xiubo Li (1):
ceph: check availability of mds cluster on mount after wait timeout

Yan-Hsuan Chuang (1):
rtw88: fix potential NULL skb access in TX ISR

Yong Zhao (1):
drm/amdkfd: Fix a bug in SDMA RLC queue counting under HWS mode

Yongqiang Niu (1):
drm/mediatek: Add gamma property according to hardware capability

YueHaibing (3):
kernel/module: Fix memleak in module_add_modinfo_attrs() drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handler drm/nouveau/drm/ttm: Remove set but not used variable 'mem'

Yunfeng Ye (1):
reiserfs: prevent NULL pointer dereference in reiserfs_insert_item()

Zahari Petkov (1):
leds: pca963x: Fix open-drain initialization

Zenghui Yu (1):
irqchip/gic-v3-its: Reference to its_invall_cmd descriptor when building INVALL

Zhengyuan Liu (2):
raid6/test: fix a compilation error
raid6/test: fix a compilation warning

Zhiqiang Liu (1):
brd: check and limit max_part par

wangyan (1):
ocfs2: fix a NULL pointer dereference when call ocfs2_update_inode_fsync_trans()

yu kuai (2):
drm/amdgpu: remove 4 set but not used variable in amdgpu_atombios_get_connector_info_from_object_table
pwm: Remove set but not set variable 'pwm'

zhangyi (F) (3):
ext4, jbd2: ensure panic when aborting with zero errno
jbd2: switch to use jbd2_journal_abort() when failed to submit the commit record
jbd2: make sure ESHUTDOWN to be recorded in the journal superblock

zhengbin (1):
KVM: PPC: Remove set but not used variable 'ra', 'rs', 'rt'

author maintainer
#1 lore raw
Documentation/fb/fbcon.rst +4 -4
index ebca41785abe..65ba40255137 100644
@@ -127,7 +127,7 @@ C. Boot options
 	is typically located on the same video card.  Thus, the consoles that
 	are controlled by the VGA console will be garbled.
 
-4. fbcon=rotate:<n>
+5. fbcon=rotate:<n>
 
 	This option changes the orientation angle of the console display. The
 	value 'n' accepts the following:
@@ -152,21 +152,21 @@ C. Boot options
 	Actually, the underlying fb driver is totally ignorant of console
 	rotation.
 
-5. fbcon=margin:<color>
+6. fbcon=margin:<color>
 
 	This option specifies the color of the margins. The margins are the
 	leftover area at the right and the bottom of the screen that are not
 	used by text. By default, this area will be black. The 'color' value
 	is an integer number that depends on the framebuffer driver being used.
 
-6. fbcon=nodefer
+7. fbcon=nodefer
 
 	If the kernel is compiled with deferred fbcon takeover support, normally
 	the framebuffer contents, left in place by the firmware/bootloader, will
 	be preserved until there actually is some text is output to the console.
 	This option causes fbcon to bind immediately to the fbdev device.
 
-7. fbcon=logo-pos:<location>
+8. fbcon=logo-pos:<location>
 
 	The only possible 'location' is 'center' (without quotes), and when
 	given, the bootup logo is moved from the default top-left corner
Makefile +1 -1
index adfc88f00f07..9428ec3b611a 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 4
-SUBLEVEL = 21
+SUBLEVEL = 22
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/Kconfig +3 -0
index 43102756304c..238dccfa7691 100644
@@ -399,6 +399,9 @@ config HAVE_RCU_TABLE_FREE
 config HAVE_MMU_GATHER_PAGE_SIZE
 	bool
 
+config MMU_GATHER_NO_RANGE
+	bool
+
 config HAVE_MMU_GATHER_NO_GATHER
 	bool
 
arch/arm/Kconfig +2 -2
index 39002d769d95..05c9bbfe444d 100644
@@ -75,7 +75,7 @@ config ARM
 	select HAVE_CONTEXT_TRACKING
 	select HAVE_COPY_THREAD_TLS
 	select HAVE_C_RECORDMCOUNT
-	select HAVE_DEBUG_KMEMLEAK
+	select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
 	select HAVE_DMA_CONTIGUOUS if MMU
 	select HAVE_DYNAMIC_FTRACE if !XIP_KERNEL && !CPU_ENDIAN_BE32 && MMU
 	select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
@@ -1907,7 +1907,7 @@ config XIP_DEFLATED_DATA
 config KEXEC
 	bool "Kexec system call (EXPERIMENTAL)"
 	depends on (!SMP || PM_SLEEP_SMP)
-	depends on !CPU_V7M
+	depends on MMU
 	select KEXEC_CORE
 	help
 	  kexec is a system call that implements the ability to shutdown your
arch/arm/boot/dts/imx6qdl-zii-rdu2.dtsi +3 -4
index 93be00a60c88..a66c4fac6baf 100644
@@ -627,7 +627,7 @@
 	pinctrl-0 = <&pinctrl_usdhc2>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 2 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 3 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -640,7 +640,7 @@
 	pinctrl-0 = <&pinctrl_usdhc3>;
 	bus-width = <4>;
 	cd-gpios = <&gpio2 0 GPIO_ACTIVE_LOW>;
-	wp-gpios = <&gpio2 1 GPIO_ACTIVE_HIGH>;
+	disable-wp;
 	vmmc-supply = <&reg_3p3v_sd>;
 	vqmmc-supply = <&reg_3p3v>;
 	no-1-8-v;
@@ -774,6 +774,7 @@
 &usbh1 {
 	vbus-supply = <&reg_5p0v_main>;
 	disable-over-current;
+	maximum-speed = "full-speed";
 	status = "okay";
 };
 
@@ -1055,7 +1056,6 @@
 			MX6QDL_PAD_SD2_DAT1__SD2_DATA1		0x17059
 			MX6QDL_PAD_SD2_DAT2__SD2_DATA2		0x17059
 			MX6QDL_PAD_SD2_DAT3__SD2_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D3__GPIO2_IO03		0x40010040
 			MX6QDL_PAD_NANDF_D2__GPIO2_IO02		0x40010040
 		>;
 	};
@@ -1068,7 +1068,6 @@
 			MX6QDL_PAD_SD3_DAT1__SD3_DATA1		0x17059
 			MX6QDL_PAD_SD3_DAT2__SD3_DATA2		0x17059
 			MX6QDL_PAD_SD3_DAT3__SD3_DATA3		0x17059
-			MX6QDL_PAD_NANDF_D1__GPIO2_IO01		0x40010040
 			MX6QDL_PAD_NANDF_D0__GPIO2_IO00		0x40010040
 
 		>;
arch/arm/boot/dts/r8a7779.dtsi +8 -0
index ebf5b7cfe215..63341635bddf 100644
@@ -68,6 +68,14 @@
 		      <0xf0000100 0x100>;
 	};
 
+	timer@f0000200 {
+		compatible = "arm,cortex-a9-global-timer";
+		reg = <0xf0000200 0x100>;
+		interrupts = <GIC_PPI 11
+			(GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
+		clocks = <&cpg_clocks R8A7779_CLK_ZS>;
+	};
+
 	timer@f0000600 {
 		compatible = "arm,cortex-a9-twd-timer";
 		reg = <0xf0000600 0x20>;
arch/arm/boot/dts/rk3188-bqedison2qc.dts +3 -0
index c8b62bbd6a4a..ad1afd403052 100644
@@ -466,9 +466,12 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&sd1_clk>, <&sd1_cmd>, <&sd1_bus4>;
 	vmmcq-supply = <&vccio_wl>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio3>;
 		interrupts = <RK_PD2 GPIO_ACTIVE_HIGH>;
arch/arm/boot/dts/stm32f469-disco.dts +8 -0
index a3ff04940aec..c6dc6d1a051b 100644
@@ -76,6 +76,13 @@
 		regulator-max-microvolt = <3300000>;
 	};
 
+	vdd_dsi: vdd-dsi {
+		compatible = "regulator-fixed";
+		regulator-name = "vdd_dsi";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+	};
+
 	soc {
 		dma-ranges = <0xc0000000 0x0 0x10000000>;
 	};
@@ -155,6 +162,7 @@
 		compatible = "orisetech,otm8009a";
 		reg = <0>; /* dsi virtual channel (0..3) */
 		reset-gpios = <&gpioh 7 GPIO_ACTIVE_LOW>;
+		power-supply = <&vdd_dsi>;
 		status = "okay";
 
 		port {
arch/arm/boot/dts/sun8i-h3.dtsi +12 -3
index e37c30e811d3..6056f206c9e3 100644
@@ -80,7 +80,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <1>;
@@ -90,7 +90,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <2>;
@@ -100,7 +100,7 @@
 			#cooling-cells = <2>;
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a7";
 			device_type = "cpu";
 			reg = <3>;
@@ -111,6 +111,15 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a7-pmu";
+		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	timer {
 		compatible = "arm,armv7-timer";
 		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
arch/arm/configs/exynos_defconfig +6 -0
index 736ed7a7bcf8..34d4acbcee34 100644
@@ -38,6 +38,7 @@ CONFIG_CRYPTO_SHA256_ARM=m
 CONFIG_CRYPTO_SHA512_ARM=m
 CONFIG_CRYPTO_AES_ARM_BS=m
 CONFIG_CRYPTO_CHACHA20_NEON=m
+CONFIG_KALLSYMS_ALL=y
 CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 CONFIG_PARTITION_ADVANCED=y
@@ -92,6 +93,7 @@ CONFIG_BLK_DEV_LOOP=y
 CONFIG_BLK_DEV_CRYPTOLOOP=y
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_SCSI=y
 CONFIG_BLK_DEV_SD=y
 CONFIG_CHR_DEV_SG=y
 CONFIG_ATA=y
@@ -290,6 +292,7 @@ CONFIG_CROS_EC_SPI=y
 CONFIG_COMMON_CLK_MAX77686=y
 CONFIG_COMMON_CLK_S2MPS11=y
 CONFIG_EXYNOS_IOMMU=y
+CONFIG_PM_DEVFREQ=y
 CONFIG_DEVFREQ_GOV_PERFORMANCE=y
 CONFIG_DEVFREQ_GOV_POWERSAVE=y
 CONFIG_DEVFREQ_GOV_USERSPACE=y
@@ -354,4 +357,7 @@ CONFIG_SOFTLOCKUP_DETECTOR=y
 # CONFIG_DETECT_HUNG_TASK is not set
 CONFIG_PROVE_LOCKING=y
 CONFIG_DEBUG_ATOMIC_SLEEP=y
+CONFIG_DEBUG_RT_MUTEXES=y
+CONFIG_DEBUG_SPINLOCK=y
+CONFIG_DEBUG_MUTEXES=y
 CONFIG_DEBUG_USER=y
arch/arm64/boot/dts/allwinner/sun50i-h5.dtsi +13 -3
index f002a496d7cb..1d34e3eefda3 100644
@@ -54,21 +54,21 @@
 			enable-method = "psci";
 		};
 
-		cpu@1 {
+		cpu1: cpu@1 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <1>;
 			enable-method = "psci";
 		};
 
-		cpu@2 {
+		cpu2: cpu@2 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <2>;
 			enable-method = "psci";
 		};
 
-		cpu@3 {
+		cpu3: cpu@3 {
 			compatible = "arm,cortex-a53";
 			device_type = "cpu";
 			reg = <3>;
@@ -76,6 +76,16 @@
 		};
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu",
+			     "arm,armv8-pmuv3";
+		interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
arch/arm64/boot/dts/allwinner/sun50i-h6.dtsi +10 -0
index 0d5ea19336a1..d19253891672 100644
@@ -70,6 +70,16 @@
 		clock-output-names = "ext_osc32k";
 	};
 
+	pmu {
+		compatible = "arm,cortex-a53-pmu",
+			     "arm,armv8-pmuv3";
+		interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
+			     <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
+		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
+	};
+
 	psci {
 		compatible = "arm,psci-0.2";
 		method = "smc";
arch/arm64/boot/dts/qcom/msm8996.dtsi +4 -0
index 87f4d9c1b0d4..fbb8ce78f95b 100644
@@ -1598,6 +1598,8 @@
 				interrupts = <0 138 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy2>;
 				phy-names = "usb2-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
@@ -1628,6 +1630,8 @@
 				interrupts = <0 131 IRQ_TYPE_LEVEL_HIGH>;
 				phys = <&hsusb_phy1>, <&ssusb_phy_0>;
 				phy-names = "usb2-phy", "usb3-phy";
+				snps,dis_u2_susphy_quirk;
+				snps,dis_enblslpm_quirk;
 			};
 		};
 
arch/arm64/boot/dts/qcom/sdm845-db845c.dts +2 -0
index f5a85caff1a3..751651a6cd81 100644
@@ -517,6 +517,8 @@
 	vdd-1.8-xo-supply = <&vreg_l7a_1p8>;
 	vdd-1.3-rfa-supply = <&vreg_l17a_1p3>;
 	vdd-3.3-ch0-supply = <&vreg_l25a_3p3>;
+
+	qcom,snoc-host-cap-8bit-quirk;
 };
 
 /* PINCTRL - additions to nodes defined in sdm845.dtsi */
arch/arm64/boot/dts/rockchip/px30.dtsi +3 -3
index eb992d60e6ba..9e09909a510a 100644
@@ -768,7 +768,7 @@
 		interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDMMC>, <&cru SCLK_SDMMC>,
 			 <&cru SCLK_SDMMC_DRV>, <&cru SCLK_SDMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -783,7 +783,7 @@
 		interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_SDIO>, <&cru SCLK_SDIO>,
 			 <&cru SCLK_SDIO_DRV>, <&cru SCLK_SDIO_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		pinctrl-names = "default";
@@ -798,7 +798,7 @@
 		interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&cru HCLK_EMMC>, <&cru SCLK_EMMC>,
 			 <&cru SCLK_EMMC_DRV>, <&cru SCLK_EMMC_SAMPLE>;
-		clock-names = "biu", "ciu", "ciu-drv", "ciu-sample";
+		clock-names = "biu", "ciu", "ciu-drive", "ciu-sample";
 		fifo-depth = <0x100>;
 		max-frequency = <150000000>;
 		power-domains = <&power PX30_PD_MMC_NAND>;
arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +3 -0
index c706db0ee9ec..76f5db696009 100644
@@ -669,9 +669,12 @@
 	vqmmc-supply = &vcc1v8_s3;	/* IO line */
 	vmmc-supply = &vcc_sdio;	/* card's power */
 
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
arch/arm64/boot/dts/rockchip/rk3399-khadas-edge.dtsi +3 -0
index 4944d78a0a1c..e87a04477440 100644
@@ -654,9 +654,12 @@
 	sd-uhs-sdr104;
 	vqmmc-supply = <&vcc1v8_s3>;
 	vmmc-supply = <&vccio_sd>;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts +0 -27
index 2a127985ab17..d3ed8e5e770f 100644
@@ -94,33 +94,6 @@
 	};
 };
 
-&gpu_thermal {
-	trips {
-		gpu_warm: gpu_warm {
-			temperature = <55000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-
-		gpu_hot: gpu_hot {
-			temperature = <65000>;
-			hysteresis = <2000>;
-			type = "active";
-		};
-	};
-	cooling-maps {
-		map1 {
-			trip = <&gpu_warm>;
-			cooling-device = <&fan THERMAL_NO_LIMIT 1>;
-		};
-
-		map2 {
-			trip = <&gpu_hot>;
-			cooling-device = <&fan 2 THERMAL_NO_LIMIT>;
-		};
-	};
-};
-
 &pinctrl {
 	ir {
 		ir_rx: ir-rx {
arch/arm64/boot/dts/rockchip/rk3399-orangepi.dts +3 -0
index 0541dfce924d..9c659f3115c8 100644
@@ -648,9 +648,12 @@
 	pinctrl-names = "default";
 	pinctrl-0 = <&sdio0_bus4 &sdio0_cmd &sdio0_clk>;
 	sd-uhs-sdr104;
+	#address-cells = <1>;
+	#size-cells = <0>;
 	status = "okay";
 
 	brcmf: wifi@1 {
+		reg = <1>;
 		compatible = "brcm,bcm4329-fmac";
 		interrupt-parent = <&gpio0>;
 		interrupts = <RK_PA3 GPIO_ACTIVE_HIGH>;
arch/arm64/boot/dts/ti/k3-j721e-main.dtsi +1 -0
index 698ef9a1d5b7..96445111e398 100644
@@ -43,6 +43,7 @@
 	smmu0: smmu@36600000 {
 		compatible = "arm,smmu-v3";
 		reg = <0x0 0x36600000 0x0 0x100000>;
+		power-domains = <&k3_pds 229 TI_SCI_PD_EXCLUSIVE>;
 		interrupt-parent = <&gic500>;
 		interrupts = <GIC_SPI 772 IRQ_TYPE_EDGE_RISING>,
 			     <GIC_SPI 768 IRQ_TYPE_EDGE_RISING>;
arch/arm64/include/asm/alternative.h +21 -11
index b9f8d787eea9..324e7d5ab37e 100644
@@ -35,13 +35,16 @@ void apply_alternatives_module(void *start, size_t length);
 static inline void apply_alternatives_module(void *start, size_t length) { }
 #endif
 
-#define ALTINSTR_ENTRY(feature,cb)					      \
+#define ALTINSTR_ENTRY(feature)					              \
 	" .word 661b - .\n"				/* label           */ \
-	" .if " __stringify(cb) " == 0\n"				      \
 	" .word 663f - .\n"				/* new instruction */ \
-	" .else\n"							      \
+	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
+	" .byte 662b-661b\n"				/* source len      */ \
+	" .byte 664f-663f\n"				/* replacement len */
+
+#define ALTINSTR_ENTRY_CB(feature, cb)					      \
+	" .word 661b - .\n"				/* label           */ \
 	" .word " __stringify(cb) "- .\n"		/* callback */	      \
-	" .endif\n"							      \
 	" .hword " __stringify(feature) "\n"		/* feature bit     */ \
 	" .byte 662b-661b\n"				/* source len      */ \
 	" .byte 664f-663f\n"				/* replacement len */
@@ -62,15 +65,14 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
  *
  * Alternatives with callbacks do not generate replacement instructions.
  */
-#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled, cb)	\
+#define __ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg_enabled)	\
 	".if "__stringify(cfg_enabled)" == 1\n"				\
 	"661:\n\t"							\
 	oldinstr "\n"							\
 	"662:\n"							\
 	".pushsection .altinstructions,\"a\"\n"				\
-	ALTINSTR_ENTRY(feature,cb)					\
+	ALTINSTR_ENTRY(feature)						\
 	".popsection\n"							\
-	" .if " __stringify(cb) " == 0\n"				\
 	".pushsection .altinstr_replacement, \"a\"\n"			\
 	"663:\n\t"							\
 	newinstr "\n"							\
@@ -78,17 +80,25 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
 	".popsection\n\t"						\
 	".org	. - (664b-663b) + (662b-661b)\n\t"			\
 	".org	. - (662b-661b) + (664b-663b)\n"			\
-	".else\n\t"							\
+	".endif\n"
+
+#define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb)	\
+	".if "__stringify(cfg_enabled)" == 1\n"				\
+	"661:\n\t"							\
+	oldinstr "\n"							\
+	"662:\n"							\
+	".pushsection .altinstructions,\"a\"\n"				\
+	ALTINSTR_ENTRY_CB(feature, cb)					\
+	".popsection\n"							\
 	"663:\n\t"							\
 	"664:\n\t"							\
-	".endif\n"							\
 	".endif\n"
 
 #define _ALTERNATIVE_CFG(oldinstr, newinstr, feature, cfg, ...)	\
-	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg), 0)
+	__ALTERNATIVE_CFG(oldinstr, newinstr, feature, IS_ENABLED(cfg))
 
 #define ALTERNATIVE_CB(oldinstr, cb) \
-	__ALTERNATIVE_CFG(oldinstr, "NOT_AN_INSTRUCTION", ARM64_CB_PATCH, 1, cb)
+	__ALTERNATIVE_CFG_CB(oldinstr, ARM64_CB_PATCH, 1, cb)
 #else
 
 #include <asm/assembler.h>
arch/arm64/include/asm/atomic_lse.h +19 -0
index 574808b9df4c..da3280f639cd 100644
@@ -14,6 +14,7 @@
 static inline void __lse_atomic_##op(int i, atomic_t *v)			\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op "	%w[i], %[v]\n"					\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
@@ -30,6 +31,7 @@ ATOMIC_OP(add, stadd)
 static inline int __lse_atomic_fetch_##op##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op #mb "	%w[i], %w[i], %[v]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
@@ -58,6 +60,7 @@ static inline int __lse_atomic_add_return##name(int i, atomic_t *v)	\
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -77,6 +80,7 @@ ATOMIC_OP_ADD_RETURN(        , al, "memory")
 static inline void __lse_atomic_and(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%w[i], %w[i]\n"
 	"	stclr	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -87,6 +91,7 @@ static inline void __lse_atomic_and(int i, atomic_t *v)
 static inline int __lse_atomic_fetch_and##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%w[i], %w[i]\n"					\
 	"	ldclr" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -106,6 +111,7 @@ ATOMIC_FETCH_OP_AND(        , al, "memory")
 static inline void __lse_atomic_sub(int i, atomic_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%w[i], %w[i]\n"
 	"	stadd	%w[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -118,6 +124,7 @@ static inline int __lse_atomic_sub_return##name(int i, atomic_t *v)	\
 	u32 tmp;							\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[tmp], %[v]\n"			\
 	"	add	%w[i], %w[i], %w[tmp]"				\
@@ -139,6 +146,7 @@ ATOMIC_OP_SUB_RETURN(        , al, "memory")
 static inline int __lse_atomic_fetch_sub##name(int i, atomic_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%w[i], %w[i]\n"					\
 	"	ldadd" #mb "	%w[i], %w[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -159,6 +167,7 @@ ATOMIC_FETCH_OP_SUB(        , al, "memory")
 static inline void __lse_atomic64_##op(s64 i, atomic64_t *v)		\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op "	%[i], %[v]\n"					\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v));							\
@@ -175,6 +184,7 @@ ATOMIC64_OP(add, stadd)
 static inline long __lse_atomic64_fetch_##op##name(s64 i, atomic64_t *v)\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 "	" #asm_op #mb "	%[i], %[i], %[v]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter)				\
 	: "r" (v)							\
@@ -203,6 +213,7 @@ static inline long __lse_atomic64_add_return##name(s64 i, atomic64_t *v)\
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
 	: [i] "+r" (i), [v] "+Q" (v->counter), [tmp] "=&r" (tmp)	\
@@ -222,6 +233,7 @@ ATOMIC64_OP_ADD_RETURN(        , al, "memory")
 static inline void __lse_atomic64_and(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	mvn	%[i], %[i]\n"
 	"	stclr	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -232,6 +244,7 @@ static inline void __lse_atomic64_and(s64 i, atomic64_t *v)
 static inline long __lse_atomic64_fetch_and##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mvn	%[i], %[i]\n"					\
 	"	ldclr" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -251,6 +264,7 @@ ATOMIC64_FETCH_OP_AND(        , al, "memory")
 static inline void __lse_atomic64_sub(s64 i, atomic64_t *v)
 {
 	asm volatile(
+	__LSE_PREAMBLE
 	"	neg	%[i], %[i]\n"
 	"	stadd	%[i], %[v]"
 	: [i] "+&r" (i), [v] "+Q" (v->counter)
@@ -263,6 +277,7 @@ static inline long __lse_atomic64_sub_return##name(s64 i, atomic64_t *v)	\
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %x[tmp], %[v]\n"			\
 	"	add	%[i], %[i], %x[tmp]"				\
@@ -284,6 +299,7 @@ ATOMIC64_OP_SUB_RETURN(        , al, "memory")
 static inline long __lse_atomic64_fetch_sub##name(s64 i, atomic64_t *v)	\
 {									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	neg	%[i], %[i]\n"					\
 	"	ldadd" #mb "	%[i], %[i], %[v]"			\
 	: [i] "+&r" (i), [v] "+Q" (v->counter)				\
@@ -305,6 +321,7 @@ static inline s64 __lse_atomic64_dec_if_positive(atomic64_t *v)
 	unsigned long tmp;
 
 	asm volatile(
+	__LSE_PREAMBLE
 	"1:	ldr	%x[tmp], %[v]\n"
 	"	subs	%[ret], %x[tmp], #1\n"
 	"	b.lt	2f\n"
@@ -332,6 +349,7 @@ __lse__cmpxchg_case_##name##sz(volatile void *ptr,			\
 	unsigned long tmp;						\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	mov	%" #w "[tmp], %" #w "[old]\n"			\
 	"	cas" #mb #sfx "\t%" #w "[tmp], %" #w "[new], %[v]\n"	\
 	"	mov	%" #w "[ret], %" #w "[tmp]"			\
@@ -379,6 +397,7 @@ __lse__cmpxchg_double##name(unsigned long old1,				\
 	register unsigned long x4 asm ("x4") = (unsigned long)ptr;	\
 									\
 	asm volatile(							\
+	__LSE_PREAMBLE							\
 	"	casp" #mb "\t%[old1], %[old2], %[new1], %[new2], %[v]\n"\
 	"	eor	%[old1], %[old1], %[oldval1]\n"			\
 	"	eor	%[old2], %[old2], %[oldval2]\n"			\
arch/arm64/include/asm/lse.h +3 -3
index 80b388278149..73834996c4b6 100644
@@ -6,6 +6,8 @@
 
 #if defined(CONFIG_AS_LSE) && defined(CONFIG_ARM64_LSE_ATOMICS)
 
+#define __LSE_PREAMBLE	".arch armv8-a+lse\n"
+
 #include <linux/compiler_types.h>
 #include <linux/export.h>
 #include <linux/jump_label.h>
@@ -14,8 +16,6 @@
 #include <asm/atomic_lse.h>
 #include <asm/cpucaps.h>
 
-__asm__(".arch_extension	lse");
-
 extern struct static_key_false cpu_hwcap_keys[ARM64_NCAPS];
 extern struct static_key_false arm64_const_caps_ready;
 
@@ -34,7 +34,7 @@ static inline bool system_uses_lse_atomics(void)
 
 /* In-line patching at runtime */
 #define ARM64_LSE_ATOMIC_INSN(llsc, lse)				\
-	ALTERNATIVE(llsc, lse, ARM64_HAS_LSE_ATOMICS)
+	ALTERNATIVE(llsc, __LSE_PREAMBLE lse, ARM64_HAS_LSE_ATOMICS)
 
 #else	/* CONFIG_AS_LSE && CONFIG_ARM64_LSE_ATOMICS */
 
arch/microblaze/kernel/cpu/cache.c +2 -1
index 0bde47e4fa69..dcba53803fa5 100644
@@ -92,7 +92,8 @@ static inline void __disable_dcache_nomsr(void)
 #define CACHE_LOOP_LIMITS(start, end, cache_line_length, cache_size)	\
 do {									\
 	int align = ~(cache_line_length - 1);				\
-	end = min(start + cache_size, end);				\
+	if (start <  UINT_MAX - cache_size)				\
+		end = min(start + cache_size, end);			\
 	start &= align;							\
 } while (0)
 
arch/mips/loongson64/loongson-3/platform.c +3 -0
index 13f3404f0030..9674ae1361a8 100644
@@ -27,6 +27,9 @@ static int __init loongson3_platform_init(void)
 			continue;
 
 		pdev = kzalloc(sizeof(struct platform_device), GFP_KERNEL);
+		if (!pdev)
+			return -ENOMEM;
+
 		pdev->name = loongson_sysconf.sensors[i].name;
 		pdev->id = loongson_sysconf.sensors[i].id;
 		pdev->dev.platform_data = &loongson_sysconf.sensors[i];
arch/powerpc/Makefile.postlink +2 -2
index 134f12f89b92..2268396ff4bb 100644
@@ -17,11 +17,11 @@ quiet_cmd_head_check = CHKHEAD $@
 quiet_cmd_relocs_check = CHKREL  $@
 ifdef CONFIG_PPC_BOOK3S_64
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@" ; \
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@" ; \
 	$(BASH) $(srctree)/arch/powerpc/tools/unrel_branch_check.sh "$(OBJDUMP)" "$@"
 else
       cmd_relocs_check =						\
-	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$@"
+	$(CONFIG_SHELL) $(srctree)/arch/powerpc/tools/relocs_check.sh "$(OBJDUMP)" "$(NM)" "$@"
 endif
 
 # `@true` prevents complaint when there is nothing to be done
arch/powerpc/kernel/eeh_driver.c +0 -6
index c031be8d41ff..2fb166928e91 100644
@@ -541,12 +541,6 @@ static void eeh_rmv_device(struct eeh_dev *edev, void *userdata)
 
 		pci_iov_remove_virtfn(edev->physfn, pdn->vf_index);
 		edev->pdev = NULL;
-
-		/*
-		 * We have to set the VF PE number to invalid one, which is
-		 * required to plug the VF successfully.
-		 */
-		pdn->pe_number = IODA_INVALID_PE;
 #endif
 		if (rmv_data)
 			list_add(&edev->rmv_entry, &rmv_data->removed_vf_list);
arch/powerpc/kernel/pci_dn.c +14 -1
index 9524009ca1ae..d876eda92609 100644
@@ -244,9 +244,22 @@ void remove_dev_pci_data(struct pci_dev *pdev)
 				continue;
 
 #ifdef CONFIG_EEH
-			/* Release EEH device for the VF */
+			/*
+			 * Release EEH state for this VF. The PCI core
+			 * has already torn down the pci_dev for this VF, but
+			 * we're responsible to removing the eeh_dev since it
+			 * has the same lifetime as the pci_dn that spawned it.
+			 */
 			edev = pdn_to_eeh_dev(pdn);
 			if (edev) {
+				/*
+				 * We allocate pci_dn's for the totalvfs count,
+				 * but only only the vfs that were activated
+				 * have a configured PE.
+				 */
+				if (edev->pe)
+					eeh_rmv_from_parent_pe(edev);
+
 				pdn->edev = NULL;
 				kfree(edev);
 			}
arch/powerpc/kvm/emulate_loadstore.c +0 -5
index 2e496eb86e94..1139bc56e004 100644
@@ -73,7 +73,6 @@ int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu)
 {
 	struct kvm_run *run = vcpu->run;
 	u32 inst;
-	int ra, rs, rt;
 	enum emulation_result emulated = EMULATE_FAIL;
 	int advance = 1;
 	struct instruction_op op;
@@ -85,10 +84,6 @@ int kvmppc_emulate_loadstore(struct kvm_vcpu *vcpu)
 	if (emulated != EMULATE_DONE)
 		return emulated;
 
-	ra = get_ra(inst);
-	rs = get_rs(inst);
-	rt = get_rt(inst);
-
 	vcpu->arch.mmio_vsx_copy_nums = 0;
 	vcpu->arch.mmio_vsx_offset = 0;
 	vcpu->arch.mmio_copy_type = KVMPPC_VSX_COPY_NONE;
arch/powerpc/mm/fault.c +3 -0
index 9298905cfe74..881a026a603a 100644
@@ -354,6 +354,9 @@ static void sanity_check_fault(bool is_write, bool is_user,
 	 * Userspace trying to access kernel address, we get PROTFAULT for that.
 	 */
 	if (is_user && address >= TASK_SIZE) {
+		if ((long)address == -1)
+			return;
+
 		pr_crit_ratelimited("%s[%d]: User access of kernel address (%lx) - exploit attempt? (uid: %d)\n",
 				   current->comm, current->pid, address,
 				   from_kuid(&init_user_ns, current_uid()));
arch/powerpc/platforms/powernv/pci-ioda.c +40 -8

87 lines not on this page · raw message

arch/powerpc/platforms/powernv/pci.c +0 -18
index c0bea75ac27b..8307e1f4086c 100644
@@ -814,24 +814,6 @@ void pnv_pci_dma_dev_setup(struct pci_dev *pdev)
 {
 	struct pci_controller *hose = pci_bus_to_host(pdev->bus);
 	struct pnv_phb *phb = hose->private_data;
-#ifdef CONFIG_PCI_IOV
-	struct pnv_ioda_pe *pe;
-	struct pci_dn *pdn;
-
-	/* Fix the VF pdn PE number */
-	if (pdev->is_virtfn) {
-		pdn = pci_get_pdn(pdev);
-		WARN_ON(pdn->pe_number != IODA_INVALID_PE);
-		list_for_each_entry(pe, &phb->ioda.pe_list, list) {
-			if (pe->rid == ((pdev->bus->number << 8) |
-			    (pdev->devfn & 0xff))) {
-				pdn->pe_number = pe->pe_number;
-				pe->pdev = pdev;
-				break;
-			}
-		}
-	}
-#endif /* CONFIG_PCI_IOV */
 
 	if (phb && phb->dma_dev_setup)
 		phb->dma_dev_setup(phb, pdev);
arch/powerpc/platforms/pseries/lparcfg.c +2 -2
index e33e8bc4b69b..38c306551f76 100644
@@ -435,10 +435,10 @@ static void maxmem_data(struct seq_file *m)
 {
 	unsigned long maxmem = 0;
 
-	maxmem += drmem_info->n_lmbs * drmem_info->lmb_size;
+	maxmem += (unsigned long)drmem_info->n_lmbs * drmem_info->lmb_size;
 	maxmem += hugetlb_total_pages() * PAGE_SIZE;
 
-	seq_printf(m, "MaxMem=%ld\n", maxmem);
+	seq_printf(m, "MaxMem=%lu\n", maxmem);
 }
 
 static int pseries_lparcfg_data(struct seq_file *m, void *v)
arch/powerpc/tools/relocs_check.sh +12 -8
index 7b9fe0a567cf..014e00e74d2b 100755
@@ -10,14 +10,21 @@
 # based on relocs_check.pl
 # Copyright © 2009 IBM Corporation
 
-if [ $# -lt 2 ]; then
-	echo "$0 [path to objdump] [path to vmlinux]" 1>&2
+if [ $# -lt 3 ]; then
+	echo "$0 [path to objdump] [path to nm] [path to vmlinux]" 1>&2
 	exit 1
 fi
 
-# Have Kbuild supply the path to objdump so we handle cross compilation.
+# Have Kbuild supply the path to objdump and nm so we handle cross compilation.
 objdump="$1"
-vmlinux="$2"
+nm="$2"
+vmlinux="$3"
+
+# Remove from the bad relocations those that match an undefined weak symbol
+# which will result in an absolute relocation to 0.
+# Weak unresolved symbols are of that form in nm output:
+# "                  w _binary__btf_vmlinux_bin_end"
+undef_weak_symbols=$($nm "$vmlinux" | awk '$1 ~ /w/ { print $2 }')
 
 bad_relocs=$(
 $objdump -R "$vmlinux" |
@@ -26,8 +33,6 @@ $objdump -R "$vmlinux" |
 	# These relocations are okay
 	# On PPC64:
 	#	R_PPC64_RELATIVE, R_PPC64_NONE
-	#	R_PPC64_ADDR64 mach_<name>
-	#	R_PPC64_ADDR64 __crc_<name>
 	# On PPC:
 	#	R_PPC_RELATIVE, R_PPC_ADDR16_HI,
 	#	R_PPC_ADDR16_HA,R_PPC_ADDR16_LO,
@@ -39,8 +44,7 @@ R_PPC_ADDR16_HI
 R_PPC_ADDR16_HA
 R_PPC_RELATIVE
 R_PPC_NONE' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+mach_' |
-	grep -E -v '\<R_PPC64_ADDR64[[:space:]]+__crc_'
+	([ "$undef_weak_symbols" ] && grep -F -w -v "$undef_weak_symbols" || cat)
 )
 
 if [ -z "$bad_relocs" ]; then
arch/s390/Makefile +1 -1
index 478b645b20dd..9ce1baeac2b2 100644
@@ -69,7 +69,7 @@ cflags-y += -Wa,-I$(srctree)/arch/$(ARCH)/include
 #
 cflags-$(CONFIG_FRAME_POINTER) += -fno-optimize-sibling-calls
 
-ifeq ($(call cc-option-yn,-mpacked-stack),y)
+ifeq ($(call cc-option-yn,-mpacked-stack -mbackchain -msoft-float),y)
 cflags-$(CONFIG_PACK_STACK)  += -mpacked-stack -D__PACK_STACK
 aflags-$(CONFIG_PACK_STACK)  += -D__PACK_STACK
 endif
arch/s390/include/asm/pci.h +1 -1
index a2399eff84ca..6087a4e9b2bf 100644
@@ -183,7 +183,7 @@ void zpci_remove_reserved_devices(void);
 /* CLP */
 int clp_scan_pci_devices(void);
 int clp_rescan_pci_devices(void);
-int clp_rescan_pci_devices_simple(void);
+int clp_rescan_pci_devices_simple(u32 *fid);
 int clp_add_pci_device(u32, u32, int);
 int clp_enable_fh(struct zpci_dev *, u8);
 int clp_disable_fh(struct zpci_dev *);
arch/s390/kernel/mcount.S +14 -1
index 9e1660a6b9db..3431b2d5e334 100644
@@ -26,6 +26,12 @@ ENDPROC(ftrace_stub)
 #define STACK_PTREGS	  (STACK_FRAME_OVERHEAD)
 #define STACK_PTREGS_GPRS (STACK_PTREGS + __PT_GPRS)
 #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)
+#ifdef __PACK_STACK
+/* allocate just enough for r14, r15 and backchain */
+#define TRACED_FUNC_FRAME_SIZE	24
+#else
+#define TRACED_FUNC_FRAME_SIZE	STACK_FRAME_OVERHEAD
+#endif
 
 ENTRY(_mcount)
 	BR_EX	%r14
@@ -39,9 +45,16 @@ ENTRY(ftrace_caller)
 #if !(defined(CC_USING_HOTPATCH) || defined(CC_USING_NOP_MCOUNT))
 	aghi	%r0,MCOUNT_RETURN_FIXUP
 #endif
-	aghi	%r15,-STACK_FRAME_SIZE
+	# allocate stack frame for ftrace_caller to contain traced function
+	aghi	%r15,-TRACED_FUNC_FRAME_SIZE
 	stg	%r1,__SF_BACKCHAIN(%r15)
+	stg	%r0,(__SF_GPRS+8*8)(%r15)
+	stg	%r15,(__SF_GPRS+9*8)(%r15)
+	# allocate pt_regs and stack frame for ftrace_trace_function
+	aghi	%r15,-STACK_FRAME_SIZE
 	stg	%r1,(STACK_PTREGS_GPRS+15*8)(%r15)
+	aghi	%r1,-TRACED_FUNC_FRAME_SIZE
+	stg	%r1,__SF_BACKCHAIN(%r15)
 	stg	%r0,(STACK_PTREGS_PSW+8)(%r15)
 	stmg	%r2,%r14,(STACK_PTREGS_GPRS+2*8)(%r15)
 #ifdef CONFIG_HAVE_MARCH_Z196_FEATURES
arch/s390/kvm/interrupt.c +3 -3
index d1ccc168c071..62388a678b91 100644
@@ -2191,7 +2191,7 @@ static int flic_ais_mode_get_all(struct kvm *kvm, struct kvm_device_attr *attr)
 		return -EINVAL;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	mutex_lock(&fi->ais_lock);
 	ais.simm = fi->simm;
@@ -2500,7 +2500,7 @@ static int modify_ais_mode(struct kvm *kvm, struct kvm_device_attr *attr)
 	int ret = 0;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&req, (void __user *)attr->addr, sizeof(req)))
 		return -EFAULT;
@@ -2580,7 +2580,7 @@ static int flic_ais_mode_set_all(struct kvm *kvm, struct kvm_device_attr *attr)
 	struct kvm_s390_ais_all ais;
 
 	if (!test_kvm_facility(kvm, 72))
-		return -ENOTSUPP;
+		return -EOPNOTSUPP;
 
 	if (copy_from_user(&ais, (void __user *)attr->addr, sizeof(ais)))
 		return -EFAULT;
arch/s390/pci/pci.c +1 -1
index c7fea9bea8cb..5b24fcc9c361 100644
@@ -934,5 +934,5 @@ subsys_initcall_sync(pci_base_init);
 void zpci_rescan(void)
 {
 	if (zpci_is_enabled())
-		clp_rescan_pci_devices_simple();
+		clp_rescan_pci_devices_simple(NULL);
 }
arch/s390/pci/pci_clp.c +29 -19

113 lines not on this page · raw message

arch/s390/pci/pci_sysfs.c +42 -21

79 lines not on this page · raw message

arch/sh/include/cpu-sh2a/cpu/sh7269.h +9 -2
index d516e5d48818..b887cc402b71 100644
@@ -78,8 +78,15 @@ enum {
 	GPIO_FN_WDTOVF,
 
 	/* CAN */
-	GPIO_FN_CTX1, GPIO_FN_CRX1, GPIO_FN_CTX0, GPIO_FN_CTX0_CTX1,
-	GPIO_FN_CRX0, GPIO_FN_CRX0_CRX1, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2, GPIO_FN_CRX2,
+	GPIO_FN_CTX1, GPIO_FN_CRX1,
+	GPIO_FN_CTX0, GPIO_FN_CRX0,
+	GPIO_FN_CTX0_CTX1, GPIO_FN_CRX0_CRX1,
+	GPIO_FN_CTX0_CTX1_CTX2, GPIO_FN_CRX0_CRX1_CRX2,
+	GPIO_FN_CTX2_PJ21, GPIO_FN_CRX2_PJ20,
+	GPIO_FN_CTX1_PJ23, GPIO_FN_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_PJ23, GPIO_FN_CRX0_CRX1_PJ22,
+	GPIO_FN_CTX0_CTX1_CTX2_PJ21, GPIO_FN_CRX0_CRX1_CRX2_PJ20,
 
 	/* DMAC */
 	GPIO_FN_TEND0, GPIO_FN_DACK0, GPIO_FN_DREQ0,
arch/sparc/kernel/vmlinux.lds.S +4 -2
index 61afd787bd0c..59b6df13ddea 100644
@@ -172,12 +172,14 @@ SECTIONS
 	}
 	PERCPU_SECTION(SMP_CACHE_BYTES)
 
-#ifdef CONFIG_JUMP_LABEL
 	. = ALIGN(PAGE_SIZE);
 	.exit.text : {
 		EXIT_TEXT
 	}
-#endif
+
+	.exit.data : {
+		EXIT_DATA
+	}
 
 	. = ALIGN(PAGE_SIZE);
 	__init_end = .;
arch/x86/entry/vdso/vdso32-setup.c +1 -0
index 240626e7f55a..43842fade8fa 100644
@@ -11,6 +11,7 @@
 #include <linux/smp.h>
 #include <linux/kernel.h>
 #include <linux/mm_types.h>
+#include <linux/elf.h>
 
 #include <asm/processor.h>
 #include <asm/vdso.h>
arch/x86/events/amd/core.c +61 -30

126 lines not on this page · raw message

arch/x86/events/perf_event.h +2 -0
index ecacfbf4ebc1..0ed910237c4d 100644
@@ -77,6 +77,7 @@ static inline bool constraint_match(struct event_constraint *c, u64 ecode)
 #define PERF_X86_EVENT_AUTO_RELOAD	0x0200 /* use PEBS auto-reload */
 #define PERF_X86_EVENT_LARGE_PEBS	0x0400 /* use large PEBS */
 #define PERF_X86_EVENT_PEBS_VIA_PT	0x0800 /* use PT buffer for PEBS */
+#define PERF_X86_EVENT_PAIR		0x1000 /* Large Increment per Cycle */
 
 struct amd_nb {
 	int nb_id;  /* NorthBridge id */
@@ -735,6 +736,7 @@ do {									\
 #define PMU_FL_EXCL_ENABLED	0x8 /* exclusive counter active */
 #define PMU_FL_PEBS_ALL		0x10 /* all events are valid PEBS events */
 #define PMU_FL_TFA		0x20 /* deal with TSX force abort */
+#define PMU_FL_PAIR		0x40 /* merge counters for large incr. events */
 
 #define EVENT_VAR(_id)  event_attr_##_id
 #define EVENT_PTR(_id) &event_attr_##_id.attr.attr
arch/x86/include/asm/nmi.h +0 -1
index 75ded1d13d98..9d5d949e662e 100644
@@ -41,7 +41,6 @@ struct nmiaction {
 	struct list_head	list;
 	nmi_handler_t		handler;
 	u64			max_duration;
-	struct irq_work		irq_work;
 	unsigned long		flags;
 	const char		*name;
 };
arch/x86/kernel/fpu/signal.c +3 -0
index 0071b794ed19..400a05e1c1c5 100644
@@ -352,6 +352,7 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
 			fpregs_unlock();
 			return 0;
 		}
+		fpregs_deactivate(fpu);
 		fpregs_unlock();
 	}
 
@@ -403,6 +404,8 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
 	}
 	if (!ret)
 		fpregs_mark_activate();
+	else
+		fpregs_deactivate(fpu);
 	fpregs_unlock();
 
 err_out:
arch/x86/kernel/nmi.c +9 -11
index e676a9916c49..54c21d6abd5a 100644
@@ -104,18 +104,22 @@ static int __init nmi_warning_debugfs(void)
 }
 fs_initcall(nmi_warning_debugfs);
 
-static void nmi_max_handler(struct irq_work *w)
+static void nmi_check_duration(struct nmiaction *action, u64 duration)
 {
-	struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
+	u64 whole_msecs = READ_ONCE(action->max_duration);
 	int remainder_ns, decimal_msecs;
-	u64 whole_msecs = READ_ONCE(a->max_duration);
+
+	if (duration < nmi_longest_ns || duration < action->max_duration)
+		return;
+
+	action->max_duration = duration;
 
 	remainder_ns = do_div(whole_msecs, (1000 * 1000));
 	decimal_msecs = remainder_ns / 1000;
 
 	printk_ratelimited(KERN_INFO
 		"INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
-		a->handler, whole_msecs, decimal_msecs);
+		action->handler, whole_msecs, decimal_msecs);
 }
 
 static int nmi_handle(unsigned int type, struct pt_regs *regs)
@@ -142,11 +146,7 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs)
 		delta = sched_clock() - delta;
 		trace_nmi_handler(a->handler, (int)delta, thishandled);
 
-		if (delta < nmi_longest_ns || delta < a->max_duration)
-			continue;
-
-		a->max_duration = delta;
-		irq_work_queue(&a->irq_work);
+		nmi_check_duration(a, delta);
 	}
 
 	rcu_read_unlock();
@@ -164,8 +164,6 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
 	if (!action->handler)
 		return -EINVAL;
 
-	init_irq_work(&action->irq_work, nmi_max_handler);
-
 	raw_spin_lock_irqsave(&desc->lock, flags);
 
 	/*
arch/x86/kernel/sysfb_simplefb.c +1 -1
index 01f0e2263b86..298fc1edd9c9 100644
@@ -90,11 +90,11 @@ __init int create_simplefb(const struct screen_info *si,
 	if (si->orig_video_isVGA == VIDEO_TYPE_VLFB)
 		size <<= 16;
 	length = mode->height * mode->stride;
-	length = PAGE_ALIGN(length);
 	if (length > size) {
 		printk(KERN_WARNING "sysfb: VRAM smaller than advertised\n");
 		return -EINVAL;
 	}
+	length = PAGE_ALIGN(length);
 
 	/* setup IORESOURCE_MEM as framebuffer memory */
 	memset(&res, 0, sizeof(res));
arch/x86/lib/x86-opcode-map.txt +1 -1
index 0a0e9112f284..5cb9f009f2be 100644
@@ -909,7 +909,7 @@ EndTable
 
 GrpTable: Grp3_2
 0: TEST Ev,Iz
-1:
+1: TEST Ev,Iz
 2: NOT Ev
 3: NEG Ev
 4: MUL rAX,Ev
arch/x86/mm/pageattr.c +1 -7
index 0d09cc5aad61..a19a71b4d185 100644
@@ -2215,7 +2215,7 @@ int __init kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address,
 		.pgd = pgd,
 		.numpages = numpages,
 		.mask_set = __pgprot(0),
-		.mask_clr = __pgprot(0),
+		.mask_clr = __pgprot(~page_flags & (_PAGE_NX|_PAGE_RW)),
 		.flags = 0,
 	};
 
@@ -2224,12 +2224,6 @@ int __init kernel_map_pages_in_pgd(pgd_t *pgd, u64 pfn, unsigned long address,
 	if (!(__supported_pte_mask & _PAGE_NX))
 		goto out;
 
-	if (!(page_flags & _PAGE_NX))
-		cpa.mask_clr = __pgprot(_PAGE_NX);
-
-	if (!(page_flags & _PAGE_RW))
-		cpa.mask_clr = __pgprot(_PAGE_RW);
-
 	if (!(page_flags & _PAGE_ENC))
 		cpa.mask_clr = pgprot_encrypted(cpa.mask_clr);
 
arch/x86/platform/efi/efi.c +21 -20

93 lines not on this page · raw message

arch/x86/platform/efi/efi_64.c +5 -4
index 08ce8177c3af..52a1e5192fa8 100644
@@ -392,11 +392,12 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
 		return 0;
 
 	page = alloc_page(GFP_KERNEL|__GFP_DMA32);
-	if (!page)
-		panic("Unable to allocate EFI runtime stack < 4GB\n");
+	if (!page) {
+		pr_err("Unable to allocate EFI runtime stack < 4GB\n");
+		return 1;
+	}
 
-	efi_scratch.phys_stack = virt_to_phys(page_address(page));
-	efi_scratch.phys_stack += PAGE_SIZE; /* stack grows down */
+	efi_scratch.phys_stack = page_to_phys(page + 1); /* stack grows down */
 
 	npages = (_etext - _text) >> PAGE_SHIFT;
 	text = __pa(_text);
block/bfq-iosched.c +12 -0
index 0c6214497fcc..5498d05b873d 100644
@@ -3444,6 +3444,10 @@ static void bfq_dispatch_remove(struct request_queue *q, struct request *rq)
 static bool idling_needed_for_service_guarantees(struct bfq_data *bfqd,
 						 struct bfq_queue *bfqq)
 {
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	return (bfqq->wr_coeff > 1 &&
 		(bfqd->wr_busy_queues <
 		 bfq_tot_busy_queues(bfqd) ||
@@ -4077,6 +4081,10 @@ static bool idling_boosts_thr_without_issues(struct bfq_data *bfqd,
 		bfqq_sequential_and_IO_bound,
 		idling_boosts_thr;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	bfqq_sequential_and_IO_bound = !BFQQ_SEEKY(bfqq) &&
 		bfq_bfqq_IO_bound(bfqq) && bfq_bfqq_has_short_ttime(bfqq);
 
@@ -4170,6 +4178,10 @@ static bool bfq_better_to_idle(struct bfq_queue *bfqq)
 	struct bfq_data *bfqd = bfqq->bfqd;
 	bool idling_boosts_thr_with_no_issue, idling_needed_for_service_guar;
 
+	/* No point in idling for bfqq if it won't get requests any longer */
+	if (unlikely(!bfqq_process_refs(bfqq)))
+		return false;
+
 	if (unlikely(bfqd->strict_guarantees))
 		return true;
 
crypto/Kconfig +2 -2
index 29472fb795f3..b2cc0ad3792a 100644
@@ -500,10 +500,10 @@ config CRYPTO_ESSIV
 	  encryption.
 
 	  This driver implements a crypto API template that can be
-	  instantiated either as a skcipher or as a aead (depending on the
+	  instantiated either as an skcipher or as an AEAD (depending on the
 	  type of the first template argument), and which defers encryption
 	  and decryption requests to the encapsulated cipher after applying
-	  ESSIV to the input IV. Note that in the aead case, it is assumed
+	  ESSIV to the input IV. Note that in the AEAD case, it is assumed
 	  that the keys are presented in the same format used by the authenc
 	  template, and that the IV appears at the end of the authenticated
 	  associated data (AAD) region (which is how dm-crypt uses it.)
drivers/acpi/acpica/dsfield.c +1 -1
index cf4e061bb0f0..8438e33aa447 100644
@@ -244,7 +244,7 @@ acpi_ds_create_buffer_field(union acpi_parse_object *op,
  * FUNCTION:    acpi_ds_get_field_names
  *
  * PARAMETERS:  info            - create_field info structure
- *  `           walk_state      - Current method state
+ *              walk_state      - Current method state
  *              arg             - First parser arg for the field name list
  *
  * RETURN:      Status
drivers/acpi/acpica/dswload.c +21 -0
index c88fd31208a5..4bcf15bf03de 100644
@@ -410,6 +410,27 @@ acpi_status acpi_ds_load1_end_op(struct acpi_walk_state *walk_state)
 	ACPI_DEBUG_PRINT((ACPI_DB_DISPATCH, "Op=%p State=%p\n", op,
 			  walk_state));
 
+	/*
+	 * Disassembler: handle create field operators here.
+	 *
+	 * create_buffer_field is a deferred op that is typically processed in load
+	 * pass 2. However, disassembly of control method contents walk the parse
+	 * tree with ACPI_PARSE_LOAD_PASS1 and AML_CREATE operators are processed
+	 * in a later walk. This is a problem when there is a control method that
+	 * has the same name as the AML_CREATE object. In this case, any use of the
+	 * name segment will be detected as a method call rather than a reference
+	 * to a buffer field.
+	 *
+	 * This earlier creation during disassembly solves this issue by inserting
+	 * the named object in the ACPI namespace so that references to this name
+	 * would be a name string rather than a method call.
+	 */
+	if ((walk_state->parse_flags & ACPI_PARSE_DISASSEMBLE) &&
+	    (walk_state->op_info->flags & AML_CREATE)) {
+		status = acpi_ds_create_buffer_field(op, walk_state);
+		return_ACPI_STATUS(status);
+	}
+
 	/* We are only interested in opcodes that have an associated name */
 
 	if (!(walk_state->op_info->flags & (AML_NAMED | AML_FIELD))) {
drivers/acpi/button.c +11 -0
index ce93a355bd1c..985afc62da82 100644
@@ -89,6 +89,17 @@ static const struct dmi_system_id lid_blacklst[] = {
 		},
 		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
 	},
+	{
+		/*
+		 * Razer Blade Stealth 13 late 2019, notification of the LID device
+		 * only happens on close, not on open and _LID always returns closed.
+		 */
+		.matches = {
+			DMI_MATCH(DMI_SYS_VENDOR, "Razer"),
+			DMI_MATCH(DMI_PRODUCT_NAME, "Razer Blade Stealth 13 Late 2019"),
+		},
+		.driver_data = (void *)(long)ACPI_BUTTON_LID_INIT_OPEN,
+	},
 	{}
 };
 
drivers/atm/fore200e.c +18 -7
index f1a500205313..8fbd36eb8941 100644
@@ -1414,12 +1414,14 @@ fore200e_open(struct atm_vcc *vcc)
 static void
 fore200e_close(struct atm_vcc* vcc)
 {
-    struct fore200e*        fore200e = FORE200E_DEV(vcc->dev);
     struct fore200e_vcc*    fore200e_vcc;
+    struct fore200e*        fore200e;
     struct fore200e_vc_map* vc_map;
     unsigned long           flags;
 
     ASSERT(vcc);
+    fore200e = FORE200E_DEV(vcc->dev);
+
     ASSERT((vcc->vpi >= 0) && (vcc->vpi < 1<<FORE200E_VPI_BITS));
     ASSERT((vcc->vci >= 0) && (vcc->vci < 1<<FORE200E_VCI_BITS));
 
@@ -1464,10 +1466,10 @@ fore200e_close(struct atm_vcc* vcc)
 static int
 fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
 {
-    struct fore200e*        fore200e     = FORE200E_DEV(vcc->dev);
-    struct fore200e_vcc*    fore200e_vcc = FORE200E_VCC(vcc);
+    struct fore200e*        fore200e;
+    struct fore200e_vcc*    fore200e_vcc;
     struct fore200e_vc_map* vc_map;
-    struct host_txq*        txq          = &fore200e->host_txq;
+    struct host_txq*        txq;
     struct host_txq_entry*  entry;
     struct tpd*             tpd;
     struct tpd_haddr        tpd_haddr;
@@ -1480,9 +1482,18 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
     unsigned char*          data;
     unsigned long           flags;
 
-    ASSERT(vcc);
-    ASSERT(fore200e);
-    ASSERT(fore200e_vcc);
+    if (!vcc)
+        return -EINVAL;
+
+    fore200e = FORE200E_DEV(vcc->dev);
+    fore200e_vcc = FORE200E_VCC(vcc);
+
+    if (!fore200e)
+        return -EINVAL;
+
+    txq = &fore200e->host_txq;
+    if (!fore200e_vcc)
+        return -EINVAL;
 
     if (!test_bit(ATM_VF_READY, &vcc->flags)) {
 	DPRINTK(1, "VC %d.%d.%d not ready for tx\n", vcc->itf, vcc->vpi, vcc->vpi);
drivers/base/dd.c +4 -1
index d811e60610d3..b25bcab2a26b 100644
@@ -516,7 +516,10 @@ static int really_probe(struct device *dev, struct device_driver *drv)
 	atomic_inc(&probe_count);
 	pr_debug("bus: '%s': %s: probing driver %s with device %s\n",
 		 drv->bus->name, __func__, drv->name, dev_name(dev));
-	WARN_ON(!list_empty(&dev->devres_head));
+	if (!list_empty(&dev->devres_head)) {
+		dev_crit(dev, "Resources present before probing\n");
+		return -EBUSY;
+	}
 
 re_probe:
 	dev->driver = drv;
drivers/base/platform.c +7 -5
index 3c0cd20925b7..60386a32208f 100644
@@ -27,6 +27,7 @@
 #include <linux/limits.h>
 #include <linux/property.h>
 #include <linux/kmemleak.h>
+#include <linux/types.h>
 
 #include "base.h"
 #include "power/power.h"
@@ -48,7 +49,7 @@ EXPORT_SYMBOL_GPL(platform_bus);
 struct resource *platform_get_resource(struct platform_device *dev,
 				       unsigned int type, unsigned int num)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -226,7 +227,7 @@ struct resource *platform_get_resource_byname(struct platform_device *dev,
 					      unsigned int type,
 					      const char *name)
 {
-	int i;
+	u32 i;
 
 	for (i = 0; i < dev->num_resources; i++) {
 		struct resource *r = &dev->resource[i];
@@ -473,7 +474,8 @@ EXPORT_SYMBOL_GPL(platform_device_add_properties);
  */
 int platform_device_add(struct platform_device *pdev)
 {
-	int i, ret;
+	u32 i;
+	int ret;
 
 	if (!pdev)
 		return -EINVAL;
@@ -541,7 +543,7 @@ int platform_device_add(struct platform_device *pdev)
 		pdev->id = PLATFORM_DEVID_AUTO;
 	}
 
-	while (--i >= 0) {
+	while (i--) {
 		struct resource *r = &pdev->resource[i];
 		if (r->parent)
 			release_resource(r);
@@ -562,7 +564,7 @@ EXPORT_SYMBOL_GPL(platform_device_add);
  */
 void platform_device_del(struct platform_device *pdev)
 {
-	int i;
+	u32 i;
 
 	if (!IS_ERR_OR_NULL(pdev)) {
 		device_del(&pdev->dev);
drivers/block/brd.c +20 -2
index c548a5a6c1a0..79f18cfa7049 100644
@@ -470,6 +470,25 @@ static struct kobject *brd_probe(dev_t dev, int *part, void *data)
 	return kobj;
 }
 
+static inline void brd_check_and_reset_par(void)
+{
+	if (unlikely(!max_part))
+		max_part = 1;
+
+	/*
+	 * make sure 'max_part' can be divided exactly by (1U << MINORBITS),
+	 * otherwise, it is possiable to get same dev_t when adding partitions.
+	 */
+	if ((1U << MINORBITS) % max_part != 0)
+		max_part = 1UL << fls(max_part);
+
+	if (max_part > DISK_MAX_PARTS) {
+		pr_info("brd: max_part can't be larger than %d, reset max_part = %d.\n",
+			DISK_MAX_PARTS, DISK_MAX_PARTS);
+		max_part = DISK_MAX_PARTS;
+	}
+}
+
 static int __init brd_init(void)
 {
 	struct brd_device *brd, *next;
@@ -493,8 +512,7 @@ static int __init brd_init(void)
 	if (register_blkdev(RAMDISK_MAJOR, "ramdisk"))
 		return -EIO;
 
-	if (unlikely(!max_part))
-		max_part = 1;
+	brd_check_and_reset_par();
 
 	for (i = 0; i < rd_nr; i++) {
 		brd = brd_alloc(i);
drivers/block/nbd.c +10 -0
index b4607dd96185..78181908f0df 100644
@@ -1265,6 +1265,16 @@ static int nbd_start_device(struct nbd_device *nbd)
 		args = kzalloc(sizeof(*args), GFP_KERNEL);
 		if (!args) {
 			sock_shutdown(nbd);
+			/*
+			 * If num_connections is m (2 < m),
+			 * and NO.1 ~ NO.n(1 < n < m) kzallocs are successful.
+			 * But NO.(n + 1) failed. We still have n recv threads.
+			 * So, add flush_workqueue here to prevent recv threads
+			 * dropping the last config_refs and trying to destroy
+			 * the workqueue from inside the workqueue.
+			 */
+			if (i)
+				flush_workqueue(nbd->recv_workq);
 			return -ENOMEM;
 		}
 		sk_set_memalloc(config->socks[i]->sock->sk);
drivers/block/rbd.c +1 -1
index 13527a0b4e44..a67315786db4 100644
@@ -2739,7 +2739,7 @@ static int rbd_img_fill_nodata(struct rbd_img_request *img_req,
 			       u64 off, u64 len)
 {
 	struct ceph_file_extent ex = { off, len };
-	union rbd_img_fill_iter dummy;
+	union rbd_img_fill_iter dummy = {};
 	struct rbd_img_fill_ctx fctx = {
 		.pos_type = OBJ_REQUEST_NODATA,
 		.pos = &dummy,
drivers/block/zram/zram_drv.c +1 -2
index 4285e75e52c3..1bf4a908a0bd 100644
@@ -626,7 +626,7 @@ static ssize_t writeback_store(struct device *dev,
 	struct bio bio;
 	struct bio_vec bio_vec;
 	struct page *page;
-	ssize_t ret;
+	ssize_t ret = len;
 	int mode;
 	unsigned long blk_idx = 0;
 
@@ -762,7 +762,6 @@ static ssize_t writeback_store(struct device *dev,
 
 	if (blk_idx)
 		free_block_bdev(zram, blk_idx);
-	ret = len;
 	__free_page(page);
 release_init_lock:
 	up_read(&zram->init_lock);
drivers/bus/ti-sysc.c +8 -2
index d9846265a5cd..a0cecb12b6f9 100644
@@ -479,7 +479,7 @@ static void sysc_clkdm_deny_idle(struct sysc *ddata)
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -491,7 +491,7 @@ static void sysc_clkdm_allow_idle(struct sysc *ddata)
 {
 	struct ti_sysc_platform_data *pdata;
 
-	if (ddata->legacy_mode)
+	if (ddata->legacy_mode || (ddata->cfg.quirks & SYSC_QUIRK_CLKDM_NOAUTO))
 		return;
 
 	pdata = dev_get_platdata(ddata->dev);
@@ -1251,6 +1251,12 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
 	/* Quirks that need to be set based on detected module */
 	SYSC_QUIRK("aess", 0, 0, 0x10, -1, 0x40000000, 0xffffffff,
 		   SYSC_MODULE_QUIRK_AESS),
+	SYSC_QUIRK("dcan", 0x48480000, 0x20, -1, -1, 0xa3170504, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dwc3", 0x48880000, 0, 0x10, -1, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
+	SYSC_QUIRK("dwc3", 0x488c0000, 0, 0x10, -1, 0x500a0200, 0xffffffff,
+		   SYSC_QUIRK_CLKDM_NOAUTO),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x00000006, 0xffffffff,
 		   SYSC_MODULE_QUIRK_HDQ1W),
 	SYSC_QUIRK("hdq1w", 0, 0, 0x14, 0x18, 0x0000000a, 0xffffffff,
drivers/char/hpet.c +1 -1
index 9ac6671bb514..f69609b47fef 100644
@@ -855,7 +855,7 @@ int hpet_alloc(struct hpet_data *hdp)
 		return 0;
 	}
 
-	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs - 1),
+	hpetp = kzalloc(struct_size(hpetp, hp_dev, hdp->hd_nirqs),
 			GFP_KERNEL);
 
 	if (!hpetp)
drivers/char/random.c +3 -2
index 01b8868b9bed..a385fc1da1cb 100644
@@ -1687,8 +1687,9 @@ static void _warn_unseeded_randomness(const char *func_name, void *caller,
 	print_once = true;
 #endif
 	if (__ratelimit(&unseeded_warning))
-		pr_notice("random: %s called from %pS with crng_init=%d\n",
-			  func_name, caller, crng_init);
+		printk_deferred(KERN_NOTICE "random: %s called from %pS "
+				"with crng_init=%d\n", func_name, caller,
+				crng_init);
 }
 
 /*
drivers/clk/at91/sam9x60.c +1 -0
index 86238d5ecb4d..77398aefeb6d 100644
@@ -47,6 +47,7 @@ static const struct clk_programmable_layout sam9x60_programmable_layout = {
 	.pres_shift = 8,
 	.css_mask = 0x1f,
 	.have_slck_mck = 0,
+	.is_pres_direct = 1,
 };
 
 static const struct clk_pcr_layout sam9x60_pcr_layout = {
drivers/clk/clk.c +40 -13

83 lines not on this page · raw message

drivers/clk/imx/clk.h +22 -15
index f7a389a50401..6fe64ff8ffa1 100644
@@ -51,48 +51,48 @@ struct imx_pll14xx_clk {
 };
 
 #define imx_clk_cpu(name, parent_name, div, mux, pll, step) \
-	imx_clk_hw_cpu(name, parent_name, div, mux, pll, step)->clk
+	to_clk(imx_clk_hw_cpu(name, parent_name, div, mux, pll, step))
 
 #define clk_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
 				cgr_val, clk_gate_flags, lock, share_count) \
-	clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
-				cgr_val, clk_gate_flags, lock, share_count)->clk
+	to_clk(clk_hw_register_gate2(dev, name, parent_name, flags, reg, bit_idx, \
+				cgr_val, clk_gate_flags, lock, share_count))
 
 #define imx_clk_pllv3(type, name, parent_name, base, div_mask) \
-	imx_clk_hw_pllv3(type, name, parent_name, base, div_mask)->clk
+	to_clk(imx_clk_hw_pllv3(type, name, parent_name, base, div_mask))
 
 #define imx_clk_pfd(name, parent_name, reg, idx) \
-	imx_clk_hw_pfd(name, parent_name, reg, idx)->clk
+	to_clk(imx_clk_hw_pfd(name, parent_name, reg, idx))
 
 #define imx_clk_gate_exclusive(name, parent, reg, shift, exclusive_mask) \
-	imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask)->clk
+	to_clk(imx_clk_hw_gate_exclusive(name, parent, reg, shift, exclusive_mask))
 
 #define imx_clk_fixed_factor(name, parent, mult, div) \
-	imx_clk_hw_fixed_factor(name, parent, mult, div)->clk
+	to_clk(imx_clk_hw_fixed_factor(name, parent, mult, div))
 
 #define imx_clk_divider2(name, parent, reg, shift, width) \
-	imx_clk_hw_divider2(name, parent, reg, shift, width)->clk
+	to_clk(imx_clk_hw_divider2(name, parent, reg, shift, width))
 
 #define imx_clk_gate_dis(name, parent, reg, shift) \
-	imx_clk_hw_gate_dis(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate_dis(name, parent, reg, shift))
 
 #define imx_clk_gate2(name, parent, reg, shift) \
-	imx_clk_hw_gate2(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate2(name, parent, reg, shift))
 
 #define imx_clk_gate2_flags(name, parent, reg, shift, flags) \
-	imx_clk_hw_gate2_flags(name, parent, reg, shift, flags)->clk
+	to_clk(imx_clk_hw_gate2_flags(name, parent, reg, shift, flags))
 
 #define imx_clk_gate2_shared2(name, parent, reg, shift, share_count) \
-	imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count)->clk
+	to_clk(imx_clk_hw_gate2_shared2(name, parent, reg, shift, share_count))
 
 #define imx_clk_gate3(name, parent, reg, shift) \
-	imx_clk_hw_gate3(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate3(name, parent, reg, shift))
 
 #define imx_clk_gate4(name, parent, reg, shift) \
-	imx_clk_hw_gate4(name, parent, reg, shift)->clk
+	to_clk(imx_clk_hw_gate4(name, parent, reg, shift))
 
 #define imx_clk_mux(name, reg, shift, width, parents, num_parents) \
-	imx_clk_hw_mux(name, reg, shift, width, parents, num_parents)->clk
+	to_clk(imx_clk_hw_mux(name, reg, shift, width, parents, num_parents))
 
 struct clk *imx_clk_pll14xx(const char *name, const char *parent_name,
 		 void __iomem *base, const struct imx_pll14xx_clk *pll_clk);
@@ -195,6 +195,13 @@ struct clk_hw *imx_clk_hw_fixup_mux(const char *name, void __iomem *reg,
 			      u8 shift, u8 width, const char * const *parents,
 			      int num_parents, void (*fixup)(u32 *val));
 
+static inline struct clk *to_clk(struct clk_hw *hw)
+{
+	if (IS_ERR_OR_NULL(hw))
+		return ERR_CAST(hw);
+	return hw->clk;
+}
+
 static inline struct clk *imx_clk_fixed(const char *name, int rate)
 {
 	return clk_register_fixed_rate(NULL, name, NULL, 0, rate);
drivers/clk/meson/clk-pll.c +9 -0
index ddb1e5634739..3a5853ca98c6 100644
@@ -77,6 +77,15 @@ static unsigned long meson_clk_pll_recalc_rate(struct clk_hw *hw,
 	unsigned int m, n, frac;
 
 	n = meson_parm_read(clk->map, &pll->n);
+
+	/*
+	 * On some HW, N is set to zero on init. This value is invalid as
+	 * it would result in a division by zero. The rate can't be
+	 * calculated in this case
+	 */
+	if (n == 0)
+		return 0;
+
 	m = meson_parm_read(clk->map, &pll->m);
 
 	frac = MESON_PARM_APPLICABLE(&pll->frac) ?
drivers/clk/meson/meson8b.c +7 -4
index 67e6691e080c..8856ce476ccf 100644
@@ -1764,8 +1764,11 @@ static struct clk_regmap meson8b_hdmi_sys = {
 
 /*
  * The MALI IP is clocked by two identical clocks (mali_0 and mali_1)
- * muxed by a glitch-free switch on Meson8b and Meson8m2. Meson8 only
- * has mali_0 and no glitch-free mux.
+ * muxed by a glitch-free switch on Meson8b and Meson8m2. The CCF can
+ * actually manage this glitch-free mux because it does top-to-bottom
+ * updates the each clock tree and switches to the "inactive" one when
+ * CLK_SET_RATE_GATE is set.
+ * Meson8 only has mali_0 and no glitch-free mux.
  */
 static const struct clk_hw *meson8b_mali_0_1_parent_hws[] = {
 	&meson8b_xtal.hw,
@@ -1830,7 +1833,7 @@ static struct clk_regmap meson8b_mali_0 = {
 			&meson8b_mali_0_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
@@ -1885,7 +1888,7 @@ static struct clk_regmap meson8b_mali_1 = {
 			&meson8b_mali_1_div.hw
 		},
 		.num_parents = 1,
-		.flags = CLK_SET_RATE_PARENT,
+		.flags = CLK_SET_RATE_GATE | CLK_SET_RATE_PARENT,
 	},
 };
 
drivers/clk/qcom/clk-rcg2.c +7 -4
index 5a89ed88cc27..a88101480e33 100644
@@ -217,6 +217,9 @@ static int _freq_tbl_determine_rate(struct clk_hw *hw, const struct freq_tbl *f,
 
 	clk_flags = clk_hw_get_flags(hw);
 	p = clk_hw_get_parent_by_index(hw, index);
+	if (!p)
+		return -EINVAL;
+
 	if (clk_flags & CLK_SET_RATE_PARENT) {
 		rate = f->freq;
 		if (f->pre_div) {
@@ -952,7 +955,7 @@ static void clk_rcg2_dfs_populate_freq(struct clk_hw *hw, unsigned int l,
 	struct clk_rcg2 *rcg = to_clk_rcg2(hw);
 	struct clk_hw *p;
 	unsigned long prate = 0;
-	u32 val, mask, cfg, mode;
+	u32 val, mask, cfg, mode, src;
 	int i, num_parents;
 
 	regmap_read(rcg->clkr.regmap, rcg->cmd_rcgr + SE_PERF_DFSR(l), &cfg);
@@ -962,12 +965,12 @@ static void clk_rcg2_dfs_populate_freq(struct clk_hw *hw, unsigned int l,
 	if (cfg & mask)
 		f->pre_div = cfg & mask;
 
-	cfg &= CFG_SRC_SEL_MASK;
-	cfg >>= CFG_SRC_SEL_SHIFT;
+	src = cfg & CFG_SRC_SEL_MASK;
+	src >>= CFG_SRC_SEL_SHIFT;
 
 	num_parents = clk_hw_get_num_parents(hw);
 	for (i = 0; i < num_parents; i++) {
-		if (cfg == rcg->parent_map[i].cfg) {
+		if (src == rcg->parent_map[i].cfg) {
 			f->src = rcg->parent_map[i].src;
 			p = clk_hw_get_parent_by_index(&rcg->clkr.hw, i);
 			prate = clk_hw_get_rate(p);
drivers/clk/qcom/clk-smd-rpm.c +3 -0
index 930fa4a4c52a..e5c3db11bf26 100644
@@ -648,6 +648,7 @@ static const struct rpm_smd_clk_desc rpm_clk_qcs404 = {
 };
 
 /* msm8998 */
+DEFINE_CLK_SMD_RPM(msm8998, bimc_clk, bimc_a_clk, QCOM_SMD_RPM_MEM_CLK, 0);
 DEFINE_CLK_SMD_RPM(msm8998, pcnoc_clk, pcnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 0);
 DEFINE_CLK_SMD_RPM(msm8998, snoc_clk, snoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 1);
 DEFINE_CLK_SMD_RPM(msm8998, cnoc_clk, cnoc_a_clk, QCOM_SMD_RPM_BUS_CLK, 2);
@@ -671,6 +672,8 @@ DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk2_pin, rf_clk2_a_pin, 5);
 DEFINE_CLK_SMD_RPM_XO_BUFFER(msm8998, rf_clk3, rf_clk3_a, 6);
 DEFINE_CLK_SMD_RPM_XO_BUFFER_PINCTRL(msm8998, rf_clk3_pin, rf_clk3_a_pin, 6);
 static struct clk_smd_rpm *msm8998_clks[] = {
+	[RPM_SMD_BIMC_CLK] = &msm8998_bimc_clk,
+	[RPM_SMD_BIMC_A_CLK] = &msm8998_bimc_a_clk,
 	[RPM_SMD_PCNOC_CLK] = &msm8998_pcnoc_clk,
 	[RPM_SMD_PCNOC_A_CLK] = &msm8998_pcnoc_a_clk,
 	[RPM_SMD_SNOC_CLK] = &msm8998_snoc_clk,
drivers/clk/renesas/rcar-gen3-cpg.c +4 -2
index d25c8ba00a65..532626946b8d 100644
@@ -464,7 +464,8 @@ static struct clk * __init cpg_rpc_clk_register(const char *name,
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpc->div.hw,  &clk_divider_ops,
-				     &rpc->gate.hw, &clk_gate_ops, 0);
+				     &rpc->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk)) {
 		kfree(rpc);
 		return clk;
@@ -500,7 +501,8 @@ static struct clk * __init cpg_rpcd2_clk_register(const char *name,
 
 	clk = clk_register_composite(NULL, name, &parent_name, 1, NULL, NULL,
 				     &rpcd2->fixed.hw, &clk_fixed_factor_ops,
-				     &rpcd2->gate.hw, &clk_gate_ops, 0);
+				     &rpcd2->gate.hw, &clk_gate_ops,
+				     CLK_SET_RATE_PARENT);
 	if (IS_ERR(clk))
 		kfree(rpcd2);
 
drivers/clk/sunxi-ng/ccu-sun50i-a64.c +27 -1
index 49bd7a4c015c..5f66bf879772 100644
@@ -921,11 +921,26 @@ static const struct sunxi_ccu_desc sun50i_a64_ccu_desc = {
 	.num_resets	= ARRAY_SIZE(sun50i_a64_ccu_resets),
 };
 
+static struct ccu_pll_nb sun50i_a64_pll_cpu_nb = {
+	.common	= &pll_cpux_clk.common,
+	/* copy from pll_cpux_clk */
+	.enable	= BIT(31),
+	.lock	= BIT(28),
+};
+
+static struct ccu_mux_nb sun50i_a64_cpu_nb = {
+	.common		= &cpux_clk.common,
+	.cm		= &cpux_clk.mux,
+	.delay_us	= 1, /* > 8 clock cycles at 24 MHz */
+	.bypass_index	= 1, /* index of 24 MHz oscillator */
+};
+
 static int sun50i_a64_ccu_probe(struct platform_device *pdev)
 {
 	struct resource *res;
 	void __iomem *reg;
 	u32 val;
+	int ret;
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
 	reg = devm_ioremap_resource(&pdev->dev, res);
@@ -939,7 +954,18 @@ static int sun50i_a64_ccu_probe(struct platform_device *pdev)
 
 	writel(0x515, reg + SUN50I_A64_PLL_MIPI_REG);
 
-	return sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	ret = sunxi_ccu_probe(pdev->dev.of_node, reg, &sun50i_a64_ccu_desc);
+	if (ret)
+		return ret;
+
+	/* Gate then ungate PLL CPU after any rate changes */
+	ccu_pll_notifier_register(&sun50i_a64_pll_cpu_nb);
+
+	/* Reparent CPU during PLL CPU rate changes */
+	ccu_mux_notifier_register(pll_cpux_clk.common.hw.clk,
+				  &sun50i_a64_cpu_nb);
+
+	return 0;
 }
 
 static const struct of_device_id sun50i_a64_ccu_ids[] = {
drivers/clk/ti/clk-7xx.c +1 -1
index 9dd6185a4b4e..66e4b2b9ec60 100644
@@ -405,7 +405,7 @@ static const struct omap_clkctrl_bit_data dra7_gmac_bit_data[] __initconst = {
 };
 
 static const struct omap_clkctrl_reg_data dra7_gmac_clkctrl_regs[] __initconst = {
-	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "dpll_gmac_ck" },
+	{ DRA7_GMAC_GMAC_CLKCTRL, dra7_gmac_bit_data, CLKF_SW_SUP, "gmac_main_clk" },
 	{ 0 },
 };
 
drivers/clk/uniphier/clk-uniphier-peri.c +8 -5
index 9caa52944b1c..3e32db9dad81 100644
@@ -18,8 +18,8 @@
 #define UNIPHIER_PERI_CLK_FI2C(idx, ch)					\
 	UNIPHIER_CLK_GATE("i2c" #ch, (idx), "i2c", 0x24, 24 + (ch))
 
-#define UNIPHIER_PERI_CLK_SCSSI(idx)					\
-	UNIPHIER_CLK_GATE("scssi", (idx), "spi", 0x20, 17)
+#define UNIPHIER_PERI_CLK_SCSSI(idx, ch)				\
+	UNIPHIER_CLK_GATE("scssi" #ch, (idx), "spi", 0x20, 17 + (ch))
 
 #define UNIPHIER_PERI_CLK_MCSSI(idx)					\
 	UNIPHIER_CLK_GATE("mcssi", (idx), "spi", 0x24, 14)
@@ -35,7 +35,7 @@ const struct uniphier_clk_data uniphier_ld4_peri_clk_data[] = {
 	UNIPHIER_PERI_CLK_I2C(6, 2),
 	UNIPHIER_PERI_CLK_I2C(7, 3),
 	UNIPHIER_PERI_CLK_I2C(8, 4),
-	UNIPHIER_PERI_CLK_SCSSI(11),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
 	{ /* sentinel */ }
 };
 
@@ -51,7 +51,10 @@ const struct uniphier_clk_data uniphier_pro4_peri_clk_data[] = {
 	UNIPHIER_PERI_CLK_FI2C(8, 4),
 	UNIPHIER_PERI_CLK_FI2C(9, 5),
 	UNIPHIER_PERI_CLK_FI2C(10, 6),
-	UNIPHIER_PERI_CLK_SCSSI(11),
-	UNIPHIER_PERI_CLK_MCSSI(12),
+	UNIPHIER_PERI_CLK_SCSSI(11, 0),
+	UNIPHIER_PERI_CLK_SCSSI(12, 1),
+	UNIPHIER_PERI_CLK_SCSSI(13, 2),
+	UNIPHIER_PERI_CLK_SCSSI(14, 3),
+	UNIPHIER_PERI_CLK_MCSSI(15),
 	{ /* sentinel */ }
 };
drivers/clocksource/bcm2835_timer.c +4 -1
index 2b196cbfadb6..b235f446ee50 100644
@@ -121,7 +121,7 @@ static int __init bcm2835_timer_init(struct device_node *node)
 	ret = setup_irq(irq, &timer->act);
 	if (ret) {
 		pr_err("Can't set up timer IRQ\n");
-		goto err_iounmap;
+		goto err_timer_free;
 	}
 
 	clockevents_config_and_register(&timer->evt, freq, 0xf, 0xffffffff);
@@ -130,6 +130,9 @@ static int __init bcm2835_timer_init(struct device_node *node)
 
 	return 0;
 
+err_timer_free:
+	kfree(timer);
+
 err_iounmap:
 	iounmap(base);
 	return ret;
drivers/clocksource/timer-davinci.c +4 -4
index 62745c962049..e421946a91c5 100644
@@ -302,10 +302,6 @@ int __init davinci_timer_register(struct clk *clk,
 		return rv;
 	}
 
-	clockevents_config_and_register(&clockevent->dev, tick_rate,
-					DAVINCI_TIMER_MIN_DELTA,
-					DAVINCI_TIMER_MAX_DELTA);
-
 	davinci_clocksource.dev.rating = 300;
 	davinci_clocksource.dev.read = davinci_clocksource_read;
 	davinci_clocksource.dev.mask =
@@ -323,6 +319,10 @@ int __init davinci_timer_register(struct clk *clk,
 		davinci_clocksource_init_tim34(base);
 	}
 
+	clockevents_config_and_register(&clockevent->dev, tick_rate,
+					DAVINCI_TIMER_MIN_DELTA,
+					DAVINCI_TIMER_MAX_DELTA);
+
 	rv = clocksource_register_hz(&davinci_clocksource.dev, tick_rate);
 	if (rv) {
 		pr_err("Unable to register clocksource");
drivers/crypto/Kconfig +1 -1
index 7316312935c8..06b2b3fa5206 100644
@@ -739,7 +739,7 @@ source "drivers/crypto/stm32/Kconfig"
 
 config CRYPTO_DEV_SAFEXCEL
 	tristate "Inside Secure's SafeXcel cryptographic engine driver"
-	depends on OF || PCI || COMPILE_TEST
+	depends on (OF || PCI || COMPILE_TEST) && HAS_IOMEM
 	select CRYPTO_LIB_AES
 	select CRYPTO_AUTHENC
 	select CRYPTO_BLKCIPHER
drivers/crypto/chelsio/chtls/chtls_cm.c +14 -13
index aca75237bbcf..dffa2aa855fd 100644
@@ -727,6 +727,14 @@ static int chtls_close_listsrv_rpl(struct chtls_dev *cdev, struct sk_buff *skb)
 	return 0;
 }
 
+static void chtls_purge_wr_queue(struct sock *sk)
+{
+	struct sk_buff *skb;
+
+	while ((skb = dequeue_wr(sk)) != NULL)
+		kfree_skb(skb);
+}
+
 static void chtls_release_resources(struct sock *sk)
 {
 	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
@@ -741,6 +749,11 @@ static void chtls_release_resources(struct sock *sk)
 	kfree_skb(csk->txdata_skb_cache);
 	csk->txdata_skb_cache = NULL;
 
+	if (csk->wr_credits != csk->wr_max_credits) {
+		chtls_purge_wr_queue(sk);
+		chtls_reset_wr_list(csk);
+	}
+
 	if (csk->l2t_entry) {
 		cxgb4_l2t_release(csk->l2t_entry);
 		csk->l2t_entry = NULL;
@@ -1735,6 +1748,7 @@ static void chtls_peer_close(struct sock *sk, struct sk_buff *skb)
 		else
 			sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN);
 	}
+	kfree_skb(skb);
 }
 
 static void chtls_close_con_rpl(struct sock *sk, struct sk_buff *skb)
@@ -2062,19 +2076,6 @@ static int chtls_conn_cpl(struct chtls_dev *cdev, struct sk_buff *skb)
 	return 0;
 }
 
-static struct sk_buff *dequeue_wr(struct sock *sk)
-{
-	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
-	struct sk_buff *skb = csk->wr_skb_head;
-
-	if (likely(skb)) {
-	/* Don't bother clearing the tail */
-		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
-		WR_SKB_CB(skb)->next_wr = NULL;
-	}
-	return skb;
-}
-
 static void chtls_rx_ack(struct sock *sk, struct sk_buff *skb)
 {
 	struct cpl_fw4_ack *hdr = cplhdr(skb) + RSS_HDR;
drivers/crypto/chelsio/chtls/chtls_cm.h +21 -0
index 129d7ac649a9..3fac0c74a41f 100644
@@ -185,6 +185,12 @@ static inline void chtls_kfree_skb(struct sock *sk, struct sk_buff *skb)
 	kfree_skb(skb);
 }
 
+static inline void chtls_reset_wr_list(struct chtls_sock *csk)
+{
+	csk->wr_skb_head = NULL;
+	csk->wr_skb_tail = NULL;
+}
+
 static inline void enqueue_wr(struct chtls_sock *csk, struct sk_buff *skb)
 {
 	WR_SKB_CB(skb)->next_wr = NULL;
@@ -197,4 +203,19 @@ static inline void enqueue_wr(struct chtls_sock *csk, struct sk_buff *skb)
 		WR_SKB_CB(csk->wr_skb_tail)->next_wr = skb;
 	csk->wr_skb_tail = skb;
 }
+
+static inline struct sk_buff *dequeue_wr(struct sock *sk)
+{
+	struct chtls_sock *csk = rcu_dereference_sk_user_data(sk);
+	struct sk_buff *skb = NULL;
+
+	skb = csk->wr_skb_head;
+
+	if (likely(skb)) {
+	 /* Don't bother clearing the tail */
+		csk->wr_skb_head = WR_SKB_CB(skb)->next_wr;
+		WR_SKB_CB(skb)->next_wr = NULL;
+	}
+	return skb;
+}
 #endif
drivers/crypto/chelsio/chtls/chtls_hw.c +3 -0
index 2a34035d3cfb..a217fe72602d 100644
@@ -350,6 +350,7 @@ int chtls_setkey(struct chtls_sock *csk, u32 keylen, u32 optname)
 	kwr->sc_imm.cmd_more = cpu_to_be32(ULPTX_CMD_V(ULP_TX_SC_IMM));
 	kwr->sc_imm.len = cpu_to_be32(klen);
 
+	lock_sock(sk);
 	/* key info */
 	kctx = (struct _key_ctx *)(kwr + 1);
 	ret = chtls_key_info(csk, kctx, keylen, optname);
@@ -388,8 +389,10 @@ int chtls_setkey(struct chtls_sock *csk, u32 keylen, u32 optname)
 		csk->tlshws.txkey = keyid;
 	}
 
+	release_sock(sk);
 	return ret;
 out_notcb:
+	release_sock(sk);
 	free_tls_keyid(sk);
 out_nokey:
 	kfree_skb(skb);
drivers/devfreq/Kconfig +2 -1
index af4a3ccb96b3..1433f2ba9d3b 100644
@@ -118,7 +118,8 @@ config ARM_TEGRA20_DEVFREQ
 
 config ARM_RK3399_DMC_DEVFREQ
 	tristate "ARM RK3399 DMC DEVFREQ Driver"
-	depends on ARCH_ROCKCHIP
+	depends on (ARCH_ROCKCHIP && HAVE_ARM_SMCCC) || \
+		(COMPILE_TEST && HAVE_ARM_SMCCC)
 	select DEVFREQ_EVENT_ROCKCHIP_DFI
 	select DEVFREQ_GOV_SIMPLE_ONDEMAND
 	select PM_DEVFREQ_EVENT
drivers/devfreq/event/Kconfig +1 -1
index cef2cf5347ca..a53e0a6ffdfe 100644
@@ -34,7 +34,7 @@ config DEVFREQ_EVENT_EXYNOS_PPMU
 
 config DEVFREQ_EVENT_ROCKCHIP_DFI
 	tristate "ROCKCHIP DFI DEVFREQ event Driver"
-	depends on ARCH_ROCKCHIP
+	depends on ARCH_ROCKCHIP || COMPILE_TEST
 	help
 	  This add the devfreq-event driver for Rockchip SoC. It provides DFI
 	  (DDR Monitor Module) driver to count ddr load.
drivers/devfreq/event/exynos-ppmu.c +8 -5
index 87b42055e6bc..c4873bb791f8 100644
@@ -101,17 +101,22 @@ static struct __exynos_ppmu_events {
 	PPMU_EVENT(dmc1_1),
 };
 
-static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+static int __exynos_ppmu_find_ppmu_id(const char *edev_name)
 {
 	int i;
 
 	for (i = 0; i < ARRAY_SIZE(ppmu_events); i++)
-		if (!strcmp(edev->desc->name, ppmu_events[i].name))
+		if (!strcmp(edev_name, ppmu_events[i].name))
 			return ppmu_events[i].id;
 
 	return -EINVAL;
 }
 
+static int exynos_ppmu_find_ppmu_id(struct devfreq_event_dev *edev)
+{
+	return __exynos_ppmu_find_ppmu_id(edev->desc->name);
+}
+
 /*
  * The devfreq-event ops structure for PPMU v1.1
  */
@@ -556,13 +561,11 @@ static int of_get_devfreq_events(struct device_node *np,
 			 * use default if not.
 			 */
 			if (info->ppmu_type == EXYNOS_TYPE_PPMU_V2) {
-				struct devfreq_event_dev edev;
 				int id;
 				/* Not all registers take the same value for
 				 * read+write data count.
 				 */
-				edev.desc = &desc[j];
-				id = exynos_ppmu_find_ppmu_id(&edev);
+				id = __exynos_ppmu_find_ppmu_id(desc[j].name);
 
 				switch (id) {
 				case PPMU_PMNCNT0:
drivers/dma/dmaengine.c +3 -1
index 03ac4b96117c..4b604086b1b3 100644
@@ -179,7 +179,7 @@ __dma_device_satisfies_mask(struct dma_device *device,
 
 static struct module *dma_chan_to_owner(struct dma_chan *chan)
 {
-	return chan->device->dev->driver->owner;
+	return chan->device->owner;
 }
 
 /**
@@ -919,6 +919,8 @@ int dma_async_device_register(struct dma_device *device)
 		return -EIO;
 	}
 
+	device->owner = device->dev->driver->owner;
+
 	if (dma_has_cap(DMA_MEMCPY, device->cap_mask) && !device->device_prep_dma_memcpy) {
 		dev_err(device->dev,
 			"Device claims capability %s, but op is not defined\n",
drivers/dma/fsl-qdma.c +1 -1
index 89792083d62c..95cc0256b387 100644
@@ -304,7 +304,7 @@ static void fsl_qdma_free_chan_resources(struct dma_chan *chan)
 
 	vchan_dma_desc_free_list(&fsl_chan->vchan, &head);
 
-	if (!fsl_queue->comp_pool && !fsl_queue->comp_pool)
+	if (!fsl_queue->comp_pool && !fsl_queue->desc_pool)
 		return;
 
 	list_for_each_entry_safe(comp_temp, _comp_temp,
drivers/dma/imx-sdma.c +11 -8
index c27e206a764c..66f1b2ac5cde 100644
@@ -760,12 +760,8 @@ static void sdma_start_desc(struct sdma_channel *sdmac)
 		return;
 	}
 	sdmac->desc = desc = to_sdma_desc(&vd->tx);
-	/*
-	 * Do not delete the node in desc_issued list in cyclic mode, otherwise
-	 * the desc allocated will never be freed in vchan_dma_desc_free_list
-	 */
-	if (!(sdmac->flags & IMX_DMA_SG_LOOP))
-		list_del(&vd->node);
+
+	list_del(&vd->node);
 
 	sdma->channel_control[channel].base_bd_ptr = desc->bd_phys;
 	sdma->channel_control[channel].current_bd_ptr = desc->bd_phys;
@@ -1071,7 +1067,6 @@ static void sdma_channel_terminate_work(struct work_struct *work)
 
 	spin_lock_irqsave(&sdmac->vc.lock, flags);
 	vchan_get_all_descriptors(&sdmac->vc, &head);
-	sdmac->desc = NULL;
 	spin_unlock_irqrestore(&sdmac->vc.lock, flags);
 	vchan_dma_desc_free_list(&sdmac->vc, &head);
 	sdmac->context_loaded = false;
@@ -1080,11 +1075,19 @@ static void sdma_channel_terminate_work(struct work_struct *work)
 static int sdma_disable_channel_async(struct dma_chan *chan)
 {
 	struct sdma_channel *sdmac = to_sdma_chan(chan);
+	unsigned long flags;
+
+	spin_lock_irqsave(&sdmac->vc.lock, flags);
 
 	sdma_disable_channel(chan);
 
-	if (sdmac->desc)
+	if (sdmac->desc) {
+		vchan_terminate_vdesc(&sdmac->desc->vd);
+		sdmac->desc = NULL;
 		schedule_work(&sdmac->terminate_worker);
+	}
+
+	spin_unlock_irqrestore(&sdmac->vc.lock, flags);
 
 	return 0;
 }
drivers/edac/sifive_edac.c +2 -2
index 413cdb4a591d..bb9ceeaf29bf 100644
@@ -54,8 +54,8 @@ static int ecc_register(struct platform_device *pdev)
 	p->dci = edac_device_alloc_ctl_info(0, "sifive_ecc", 1, "sifive_ecc",
 					    1, 1, NULL, 0,
 					    edac_device_alloc_index());
-	if (IS_ERR(p->dci))
-		return PTR_ERR(p->dci);
+	if (!p->dci)
+		return -ENOMEM;
 
 	p->dci->dev = &pdev->dev;
 	p->dci->mod_name = "Sifive ECC Manager";
drivers/gpio/gpio-grgpio.c +6 -4
index 08234e64993a..3224933f4c8f 100644
@@ -253,17 +253,16 @@ static int grgpio_irq_map(struct irq_domain *d, unsigned int irq,
 	lirq->irq = irq;
 	uirq = &priv->uirqs[lirq->index];
 	if (uirq->refcnt == 0) {
+		spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 		ret = request_irq(uirq->uirq, grgpio_irq_handler, 0,
 				  dev_name(priv->dev), priv);
 		if (ret) {
 			dev_err(priv->dev,
 				"Could not request underlying irq %d\n",
 				uirq->uirq);
-
-			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
-
 			return ret;
 		}
+		spin_lock_irqsave(&priv->gc.bgpio_lock, flags);
 	}
 	uirq->refcnt++;
 
@@ -309,8 +308,11 @@ static void grgpio_irq_unmap(struct irq_domain *d, unsigned int irq)
 	if (index >= 0) {
 		uirq = &priv->uirqs[lirq->index];
 		uirq->refcnt--;
-		if (uirq->refcnt == 0)
+		if (uirq->refcnt == 0) {
+			spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
 			free_irq(uirq->uirq, priv);
+			return;
+		}
 	}
 
 	spin_unlock_irqrestore(&priv->gc.bgpio_lock, flags);
drivers/gpio/gpiolib.c +1 -0
index 22506e4614b3..484fa6560adc 100644
@@ -1924,6 +1924,7 @@ static int gpiochip_hierarchy_irq_domain_alloc(struct irq_domain *d,
 				     parent_type);
 	chip_info(gc, "alloc_irqs_parent for %d parent hwirq %d\n",
 		  irq, parent_hwirq);
+	irq_set_lockdep_class(irq, gc->irq.lock_key, gc->irq.request_key);
 	ret = irq_domain_alloc_irqs_parent(d, irq, 1, &parent_fwspec);
 	if (ret)
 		chip_err(gc,
drivers/gpu/drm/amd/amdgpu/amdgpu_atombios.c +2 -17
index 1c9d40f97a9b..f2f40f05fa5c 100644
@@ -338,17 +338,9 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
 		path_size += le16_to_cpu(path->usSize);
 
 		if (device_support & le16_to_cpu(path->usDeviceTag)) {
-			uint8_t con_obj_id, con_obj_num, con_obj_type;
-
-			con_obj_id =
+			uint8_t con_obj_id =
 			    (le16_to_cpu(path->usConnObjectId) & OBJECT_ID_MASK)
 			    >> OBJECT_ID_SHIFT;
-			con_obj_num =
-			    (le16_to_cpu(path->usConnObjectId) & ENUM_ID_MASK)
-			    >> ENUM_ID_SHIFT;
-			con_obj_type =
-			    (le16_to_cpu(path->usConnObjectId) &
-			     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
 
 			/* Skip TV/CV support */
 			if ((le16_to_cpu(path->usDeviceTag) ==
@@ -373,14 +365,7 @@ bool amdgpu_atombios_get_connector_info_from_object_table(struct amdgpu_device *
 			router.ddc_valid = false;
 			router.cd_valid = false;
 			for (j = 0; j < ((le16_to_cpu(path->usSize) - 8) / 2); j++) {
-				uint8_t grph_obj_id, grph_obj_num, grph_obj_type;
-
-				grph_obj_id =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     OBJECT_ID_MASK) >> OBJECT_ID_SHIFT;
-				grph_obj_num =
-				    (le16_to_cpu(path->usGraphicObjIds[j]) &
-				     ENUM_ID_MASK) >> ENUM_ID_SHIFT;
+				uint8_t grph_obj_type=
 				grph_obj_type =
 				    (le16_to_cpu(path->usGraphicObjIds[j]) &
 				     OBJECT_TYPE_MASK) >> OBJECT_TYPE_SHIFT;
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +0 -2
index 7a6c837c0a85..13694d5eba47 100644
@@ -3466,8 +3466,6 @@ static int amdgpu_device_reset_sriov(struct amdgpu_device *adev,
 	if (r)
 		return r;
 
-	amdgpu_amdkfd_pre_reset(adev);
-
 	/* Resume IP prior to SMC */
 	r = amdgpu_device_ip_reinit_early_sriov(adev);
 	if (r)
drivers/gpu/drm/amd/amdgpu/nv.c +6 -0
index de9b995b65b1..2d780820ba00 100644
@@ -660,6 +660,12 @@ static int nv_common_early_init(void *handle)
 		adev->pg_flags = AMD_PG_SUPPORT_VCN |
 			AMD_PG_SUPPORT_VCN_DPG |
 			AMD_PG_SUPPORT_ATHUB;
+		/* guest vm gets 0xffffffff when reading RCC_DEV0_EPF0_STRAP0,
+		 * as a consequence, the rev_id and external_rev_id are wrong.
+		 * workaround it by hardcoding rev_id to 0 (default value).
+		 */
+		if (amdgpu_sriov_vf(adev))
+			adev->rev_id = 0;
 		adev->external_rev_id = adev->rev_id + 0xa;
 		break;
 	default:
drivers/gpu/drm/amd/amdgpu/soc15_common.h +1 -0
index 839f186e1182..19e870c79896 100644
@@ -52,6 +52,7 @@
 		uint32_t old_ = 0;	\
 		uint32_t tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \
 		uint32_t loop = adev->usec_timeout;		\
+		ret = 0;					\
 		while ((tmp_ & (mask)) != (expected_value)) {	\
 			if (old_ != tmp_) {			\
 				loop = adev->usec_timeout;	\
drivers/gpu/drm/amd/amdkfd/kfd_debugfs.c +1 -1
index 15c523027285..511712c2e382 100644
@@ -93,7 +93,7 @@ void kfd_debugfs_init(void)
 			    kfd_debugfs_hqds_by_device, &kfd_debugfs_fops);
 	debugfs_create_file("rls", S_IFREG | 0444, debugfs_root,
 			    kfd_debugfs_rls_by_device, &kfd_debugfs_fops);
-	debugfs_create_file("hang_hws", S_IFREG | 0644, debugfs_root,
+	debugfs_create_file("hang_hws", S_IFREG | 0200, debugfs_root,
 			    NULL, &kfd_debugfs_hang_hws_fops);
 }
 
drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c +6 -4
index f335f73919d1..a2ed9c257cb0 100644
@@ -1181,16 +1181,18 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
 
 	list_add(&q->list, &qpd->queues_list);
 	qpd->queue_count++;
+
+	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
+		dqm->sdma_queue_count++;
+	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
+		dqm->xgmi_sdma_queue_count++;
+
 	if (q->properties.is_active) {
 		dqm->queue_count++;
 		retval = execute_queues_cpsch(dqm,
 				KFD_UNMAP_QUEUES_FILTER_DYNAMIC_QUEUES, 0);
 	}
 
-	if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
-		dqm->sdma_queue_count++;
-	else if (q->properties.type == KFD_QUEUE_TYPE_SDMA_XGMI)
-		dqm->xgmi_sdma_queue_count++;
 	/*
 	 * Unconditionally increment this counter, regardless of the queue's
 	 * type or whether the queue is active.
drivers/gpu/drm/amd/display/dc/calcs/dcn_calc_math.h deleted +0 -43

43 lines not on this page · raw message

drivers/gpu/drm/amd/display/dc/calcs/dcn_calcs.c +23 -11
index 9b2cb57bf2ba..c9a241fe46cf 100644
@@ -1438,6 +1438,7 @@ void dcn_bw_update_from_pplib(struct dc *dc)
 	struct dc_context *ctx = dc->ctx;
 	struct dm_pp_clock_levels_with_voltage fclks = {0}, dcfclks = {0};
 	bool res;
+	unsigned vmin0p65_idx, vmid0p72_idx, vnom0p8_idx, vmax0p9_idx;
 
 	/* TODO: This is not the proper way to obtain fabric_and_dram_bandwidth, should be min(fclk, memclk) */
 	res = dm_pp_get_clock_levels_by_type_with_voltage(
@@ -1449,17 +1450,28 @@ void dcn_bw_update_from_pplib(struct dc *dc)
 		res = verify_clock_values(&fclks);
 
 	if (res) {
-		ASSERT(fclks.num_levels >= 3);
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 = 32 * (fclks.data[0].clocks_in_khz / 1000.0) / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - (fclks.num_levels > 2 ? 3 : 2)].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 2].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
-		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 = dc->dcn_soc->number_of_channels *
-				(fclks.data[fclks.num_levels - 1].clocks_in_khz / 1000.0)
-				* ddr4_dram_factor_single_Channel / 1000.0;
+		ASSERT(fclks.num_levels);
+
+		vmin0p65_idx = 0;
+		vmid0p72_idx = fclks.num_levels -
+			(fclks.num_levels > 2 ? 3 : (fclks.num_levels > 1 ? 2 : 1));
+		vnom0p8_idx = fclks.num_levels - (fclks.num_levels > 1 ? 2 : 1);
+		vmax0p9_idx = fclks.num_levels - 1;
+
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmin0p65 =
+			32 * (fclks.data[vmin0p65_idx].clocks_in_khz / 1000.0) / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmid0p72 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmid0p72_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vnom0p8 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vnom0p8_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
+		dc->dcn_soc->fabric_and_dram_bandwidth_vmax0p9 =
+			dc->dcn_soc->number_of_channels *
+			(fclks.data[vmax0p9_idx].clocks_in_khz / 1000.0)
+			* ddr4_dram_factor_single_Channel / 1000.0;
 	} else
 		BREAK_TO_DEBUGGER();
 
drivers/gpu/drm/amd/display/dc/core/dc.c +9 -8
index 4b8819c27fcd..4704aac336c2 100644
@@ -2267,12 +2267,7 @@ void dc_set_power_state(
 	enum dc_acpi_cm_power_state power_state)
 {
 	struct kref refcount;
-	struct display_mode_lib *dml = kzalloc(sizeof(struct display_mode_lib),
-						GFP_KERNEL);
-
-	ASSERT(dml);
-	if (!dml)
-		return;
+	struct display_mode_lib *dml;
 
 	switch (power_state) {
 	case DC_ACPI_CM_POWER_STATE_D0:
@@ -2294,6 +2289,12 @@ void dc_set_power_state(
 		 * clean state, and dc hw programming optimizations will not
 		 * cause any trouble.
 		 */
+		dml = kzalloc(sizeof(struct display_mode_lib),
+				GFP_KERNEL);
+
+		ASSERT(dml);
+		if (!dml)
+			return;
 
 		/* Preserve refcount */
 		refcount = dc->current_state->refcount;
@@ -2307,10 +2308,10 @@ void dc_set_power_state(
 		dc->current_state->refcount = refcount;
 		dc->current_state->bw_ctx.dml = *dml;
 
+		kfree(dml);
+
 		break;
 	}
-
-	kfree(dml);
 }
 
 void dc_resume(struct dc *dc)
drivers/gpu/drm/amd/display/dc/core/dc_link.c +1 -2
index c0f1c62c59b4..3aedc724241e 100644
@@ -948,8 +948,7 @@ bool dc_link_detect(struct dc_link *link, enum dc_detect_reason reason)
 			same_edid = is_same_edid(&prev_sink->dc_edid, &sink->dc_edid);
 
 		if (link->connector_signal == SIGNAL_TYPE_DISPLAY_PORT &&
-			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX &&
-			reason != DETECT_REASON_HPDRX) {
+			sink_caps.transaction_type == DDC_TRANSACTION_TYPE_I2C_OVER_AUX) {
 			/*
 			 * TODO debug why Dell 2413 doesn't like
 			 *  two link trainings
drivers/gpu/drm/amd/display/dc/dcn20/dcn20_optc.c +12 -4
index dda90995ba93..8d5cfd5357c7 100644
@@ -233,12 +233,13 @@ void optc2_set_odm_combine(struct timing_generator *optc, int *opp_id, int opp_c
 		struct dc_crtc_timing *timing)
 {
 	struct optc *optc1 = DCN10TG_FROM_TG(optc);
-	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192 */
 	int mpcc_hactive = (timing->h_addressable + timing->h_border_left + timing->h_border_right)
 			/ opp_cnt;
-	int memory_mask = mpcc_hactive <= 2560 ? 0x3 : 0xf;
+	uint32_t memory_mask;
 	uint32_t data_fmt = 0;
 
+	ASSERT(opp_cnt == 2);
+
 	/* TODO: In pseudocode but does not affect maximus, delete comment if we dont need on asic
 	 * REG_SET(OTG_GLOBAL_CONTROL2, 0, GLOBAL_UPDATE_LOCK_EN, 1);
 	 * Program OTG register MASTER_UPDATE_LOCK_DB_X/Y to the position before DP frame start
@@ -246,9 +247,17 @@ void optc2_set_odm_combine(struct timing_generator *optc, int *opp_id, int opp_c
 	 *		MASTER_UPDATE_LOCK_DB_X, 160,
 	 *		MASTER_UPDATE_LOCK_DB_Y, 240);
 	 */
+
+	/* 2 pieces of memory required for up to 5120 displays, 4 for up to 8192,
+	 * however, for ODM combine we can simplify by always using 4.
+	 * To make sure there's no overlap, each instance "reserves" 2 memories and
+	 * they are uniquely combined here.
+	 */
+	memory_mask = 0x3 << (opp_id[0] * 2) | 0x3 << (opp_id[1] * 2);
+
 	if (REG(OPTC_MEMORY_CONFIG))
 		REG_SET(OPTC_MEMORY_CONFIG, 0,
-			OPTC_MEM_SEL, memory_mask << (optc->inst * 4));
+			OPTC_MEM_SEL, memory_mask);
 
 	if (timing->pixel_encoding == PIXEL_ENCODING_YCBCR422)
 		data_fmt = 1;
@@ -257,7 +266,6 @@ void optc2_set_odm_combine(struct timing_generator *optc, int *opp_id, int opp_c
 
 	REG_UPDATE(OPTC_DATA_FORMAT_CONTROL, OPTC_DATA_FORMAT, data_fmt);
 
-	ASSERT(opp_cnt == 2);
 	REG_SET_3(OPTC_DATA_SOURCE_SELECT, 0,
 			OPTC_NUM_OF_INPUT_SEGMENT, 1,
 			OPTC_SEG0_SRC_SEL, opp_id[0],
drivers/gpu/drm/amd/display/dc/dml/dml_common_defs.c +1 -1
index b953b02a1512..723af0b2dda0 100644
@@ -24,7 +24,7 @@
  */
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 
 #include "dml_inline_defs.h"
 
drivers/gpu/drm/amd/display/dc/dml/dml_inline_defs.h +1 -1
index eca140da13d8..ded71ea82413 100644
@@ -27,7 +27,7 @@
 #define __DML_INLINE_DEFS_H__
 
 #include "dml_common_defs.h"
-#include "../calcs/dcn_calc_math.h"
+#include "dcn_calc_math.h"
 #include "dml_logger.h"
 
 static inline double dml_min(double a, double b)
drivers/gpu/drm/amd/display/dc/inc/dcn_calc_math.h new file +43 -0

43 lines not on this page · raw message

drivers/gpu/drm/amd/display/modules/freesync/freesync.c +2 -0
index 0978c698f0f8..7d67cb2c61f0 100644
@@ -803,6 +803,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync,
 			2 * in_out_vrr->min_refresh_in_uhz)
 		in_out_vrr->btr.btr_enabled = false;
 
+	in_out_vrr->fixed.fixed_active = false;
 	in_out_vrr->btr.btr_active = false;
 	in_out_vrr->btr.inserted_duration_in_us = 0;
 	in_out_vrr->btr.frames_to_insert = 0;
@@ -822,6 +823,7 @@ void mod_freesync_build_vrr_params(struct mod_freesync *mod_freesync,
 		in_out_vrr->adjust.v_total_max = stream->timing.v_total;
 	} else if (in_out_vrr->state == VRR_STATE_ACTIVE_VARIABLE &&
 			refresh_range >= MIN_REFRESH_RANGE_IN_US) {
+
 		in_out_vrr->adjust.v_total_min =
 			calc_v_total_from_refresh(stream,
 				in_out_vrr->max_refresh_in_uhz);
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +14 -9
index 1115761982a7..fed3fc4bb57a 100644
@@ -1026,12 +1026,15 @@ static int smu10_get_clock_by_type_with_latency(struct pp_hwmgr *hwmgr,
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk * 10;
-		clocks->data[i].latency_in_us = latency_required ?
-						smu10_get_mem_latency(hwmgr,
-						pclk_vol_table->entries[i].clk) :
-						0;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz =
+				pclk_vol_table->entries[i].clk * 10;
+			clocks->data[clocks->num_levels].latency_in_us = latency_required ?
+				smu10_get_mem_latency(hwmgr,
+						      pclk_vol_table->entries[i].clk) :
+				0;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
@@ -1077,9 +1080,11 @@ static int smu10_get_clock_by_type_with_voltage(struct pp_hwmgr *hwmgr,
 
 	clocks->num_levels = 0;
 	for (i = 0; i < pclk_vol_table->count; i++) {
-		clocks->data[i].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
-		clocks->data[i].voltage_in_mv = pclk_vol_table->entries[i].vol;
-		clocks->num_levels++;
+		if (pclk_vol_table->entries[i].clk) {
+			clocks->data[clocks->num_levels].clocks_in_khz = pclk_vol_table->entries[i].clk  * 10;
+			clocks->data[clocks->num_levels].voltage_in_mv = pclk_vol_table->entries[i].vol;
+			clocks->num_levels++;
+		}
 	}
 
 	return 0;
drivers/gpu/drm/drm_client_modeset.c +72 -0

96 lines not on this page · raw message

drivers/gpu/drm/drm_debugfs_crc.c +2 -2
index be1b7ba92ffe..6a626c82e264 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/drm_mipi_dbi.c +2 -2
index f8154316a3b0..a05e64e3d80b 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/gma500/framebuffer.c +6 -2
index 218f3bb15276..90237abee088 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/ingenic/ingenic-drm.c +10 -6
index 2e2ed653e9c6..f156f245fdec 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/mediatek/mtk_drm_crtc.c +16 -2
index 34a731755791..e6c049f4f08b 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/msm/adreno/a5xx_gpu.c +9 -2
index e9c55d1d6c04..99cd6e62a971 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/msm/adreno/a6xx_gpu.c +9 -2
index dc8ec2c94301..686c34d706b0 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nouveau_dmem.c +2 -2
index fa1439941596..0ad5d87b5a8e 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nouveau_fence.c +1 -1
index 9118df035b28..70bb6bb97af8 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nouveau_ttm.c +0 -4
index f0daf958e03a..621d28f094bc 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nvkm/core/memory.c +1 -1
index e85a08ecd9da..4cc186262d34 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nvkm/engine/disp/channv50.c +2 -0
index bcf32d92ee5a..50e3539f33d2 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nvkm/engine/gr/gk20a.c +11 -10
index 500cb08dd608..b57ab5cea9a1 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nvkm/subdev/fault/base.c +1 -0
index ca251560d3e0..bb4a4266897c 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/nouveau/nvkm/subdev/secboot/gm20b.c +2 -3
index df8b919dcf09..ace6fefba428 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/panel/panel-simple.c +37 -0
index 28fa6ba7b767..8abb31f83ffc 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/qxl/qxl_kms.c +1 -1
index 611cbe7aee69..bfc1631093e9 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/radeon/radeon_display.c +2 -0
index e81b01f8db90..0826efd9b5f5 100644

Lines of this file are not shown. View the raw message.

drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c +3 -1
index 4ac55fc2bf97..44d858ce4ce7 100644

Lines of this file are not shown. View the raw message.

drivers/ide/cmd64x.c +3 -0
index a1898e11b04e..943bf944bf72 100644

Lines of this file are not shown. View the raw message.

drivers/ide/serverworks.c +6 -0
index ac6fc3fffa0d..458e72e034b0 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/core/cache.c +75 -46

121 lines not on this page · raw message

drivers/infiniband/core/core_priv.h +1 -0
index 9d07378b5b42..9b30773f2da0 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/core/device.c +10 -23
index 2b5bd7206fc6..2a770b8dca00 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hfi1/chip.c +11 -0
index 9b1fb84a3d45..10924f122072 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hfi1/chip.h +2 -0
index 4ca5ac8d7e9e..af0061936c66 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hfi1/chip_registers.h +1 -0
index ab3589d17aee..fb3ec9bff7a2 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hfi1/driver.c +1 -0
index 01aa1f132f55..941b465244ab 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hfi1/hfi.h +2 -0
index 1af94650bd84..b79931cc74ab 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/hns/hns_roce_mr.c +2 -2
index 5f8416ba09a9..702b59f0dab9 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/hw/mlx5/main.c +16 -18
index e1cfbedefcbc..9a918db9e8db 100644

Lines of this file are not shown. View the raw message.

drivers/infiniband/sw/rxe/rxe_verbs.h +1 -1
index 5c4b2239129c..b0a02d4c8b93 100644

Lines of this file are not shown. View the raw message.

drivers/input/touchscreen/edt-ft5x06.c +7 -0
index 5525f1fb1526..240e8de24cd2 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/amd_iommu.c +2 -5
index 454695b372c8..8bd5d608a82c 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/amd_iommu_init.c +12 -7
index 483f7bc379fa..d7cbca8bf2cd 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/amd_iommu_types.h +1 -1
index fc956479b94e..daeabd98c60e 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/arm-smmu-v3.c +2 -1
index ee8d48d863e1..ef6af714a7e6 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/dmar.c +0 -1
index eecd6a421667..7196cabafb25 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/intel-iommu.c +2 -1
index dd5db856dcaf..760a242d0801 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/intel-pasid.c +10 -2
index 040a445be300..e7cb0b8a7332 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/intel-svm.c +4 -5
index dca88f9fdf29..518d0b2d12af 100644

Lines of this file are not shown. View the raw message.

drivers/iommu/iova.c +1 -1
index c7a914b9bbbc..0e6a9536eca6 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-gic-v3-its.c +1 -1
index 787e8eec9a7f..11f3b50dcdcb 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-gic-v3.c +7 -2
index 1edc99335a94..446603efbc90 100644

Lines of this file are not shown. View the raw message.

drivers/irqchip/irq-mbigen.c +1 -0
index 3f09f658e8e2..6b566bba263b 100644

Lines of this file are not shown. View the raw message.

drivers/leds/leds-pca963x.c +5 -3
index 4afc317901a8..66cdc003b8f4 100644

Lines of this file are not shown. View the raw message.

drivers/md/bcache/bset.h +2 -1
index c71365e7c1fa..a50dcfda656f 100644

Lines of this file are not shown. View the raw message.

drivers/md/bcache/journal.c +2 -1
index 33ddc5269e8d..6730820780b0 100644

Lines of this file are not shown. View the raw message.

drivers/md/bcache/stats.c +7 -3
index ba1c93791d8d..503aafe188dc 100644

Lines of this file are not shown. View the raw message.

drivers/md/bcache/super.c +50 -29

79 lines not on this page · raw message

drivers/md/dm-thin.c +13 -5
index 69201bdf7f4c..1b2c98b43519 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/mt9v032.c +8 -2
index 4b9b98cf6674..5bd3ae82992f 100644

Lines of this file are not shown. View the raw message.

drivers/media/i2c/ov5640.c +1 -1
index 18dd2d717088..a398ea81e422 100644

Lines of this file are not shown. View the raw message.

drivers/media/pci/cx23885/cx23885-cards.c +24 -0
index 8644205d3cd3..8e5a2c580821 100644

Lines of this file are not shown. View the raw message.

drivers/media/pci/cx23885/cx23885-video.c +2 -1
index 8098b15493de..7fc408ee4934 100644

Lines of this file are not shown. View the raw message.

drivers/media/pci/cx23885/cx23885.h +1 -0
index a95a2e4c6a0d..c472498e57c4 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/sti/bdisp/bdisp-hw.c +3 -3
index 4372abbb5950..a74e9fd65238 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.c +22 -0
index f36dc6258900..b8b07c1de2a8 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/sunxi/sun4i-csi/sun4i_csi.h +2 -2
index 001c8bde006c..88d39b3554c4 100644

Lines of this file are not shown. View the raw message.

drivers/media/platform/sunxi/sun4i-csi/sun4i_dma.c +14 -6
index d6979e11a67b..78fa1c535ac6 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvc_driver.c +25 -0
index 2b688cc39bb8..99883550375e 100644

Lines of this file are not shown. View the raw message.

drivers/media/usb/uvc/uvcvideo.h +1 -0
index c7c1baa90dea..24e3d8c647e7 100644

Lines of this file are not shown. View the raw message.

drivers/misc/xilinx_sdfec.c +5 -5
index 11835969e982..48ba7e02bed7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/broadcom/bnxt/bnxt.c +1 -0
index 41297533b4a8..68618891b0e4 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/cisco/enic/enic_main.c +1 -1
index acb2856936d2..6e2ab10ad2e6 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/freescale/gianfar.c +7 -3
index 51ad86417cb1..2580bcd85025 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/intel/i40e/i40e_xsk.c +1 -1
index f73cd917c44f..3156de786d95 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlx5/core/en_stats.c +3 -0
index 9f09253f9f46..a05158472ed1 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/mellanox/mlxsw/spectrum_dpipe.c +2 -1
index 49933818c6f5..2dc0978428e6 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/netronome/nfp/abm/cls.c +4 -10
index 9f8a1f69c0c4..23ebddfb9532 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/realtek/r8169_main.c +9 -0
index 5ae0b5663d54..a2cef6a004e7 100644

Lines of this file are not shown. View the raw message.

drivers/net/ethernet/xscale/ixp4xx_eth.c +44 -52

96 lines not on this page · raw message

drivers/net/phy/fixed_phy.c +2 -5
index 7c5265fd2b94..4190f9ed5313 100644

Lines of this file are not shown. View the raw message.

drivers/net/phy/realtek.c +18 -1
index 677c45985338..c76df51dd3c5 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/fsl_ucc_hdlc.c +5 -0
index aef7de225783..4ad0a0c33d85 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/hdlc_x25.c +11 -2
index 5643675ff724..bf78073ee7fd 100644

Lines of this file are not shown. View the raw message.

drivers/net/wan/ixp4xx_hss.c +2 -2
index ea6ee6a608ce..e7619cec978a 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/snoc.c +4 -1
index fc15a0037f0e..63607c3b8e81 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/wmi-tlv.c +4 -1
index 4d5d10c01064..eb0c963d9fd5 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/ath10k/wmi.c +1 -1
index 4f707c6394bb..90f1197a6ad8 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/ath/wil6210/txrx_edma.c +2 -1
index 04d576deae72..6cb0d7bcfe76 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/b43legacy/main.c +3 -2
index 4325e91736eb..8b6b657c4b85 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/p2p.c +2 -1
index 7ba9f6a68645..1f5deea5a288 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c +7 -6
index 264ad63232f8..a935993a3c51 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/ipw2x00/ipw2100.c +4 -3
index 8dfbaff2d1fe..a162146a43a7 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/ipw2x00/ipw2200.c +3 -2
index ed0f06532d5e..ac5f797fb1ad 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlegacy/3945-mac.c +3 -2
index 4fbcc7fba3cc..e2e9c3e8fff5 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlegacy/4965-mac.c +3 -2
index ffb705b18fb1..5fe17039a337 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlegacy/common.c +1 -1
index 73f7bbf742bc..746749f37996 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c +3 -5
index 18ccc2692437..6ca087ffd163 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intel/iwlwifi/mvm/tt.c +3 -1
index f0c539b37ea7..a630e4edd9b4 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intersil/hostap/hostap_ap.c +1 -1
index 0094b1d2b577..3ec46f48cfde 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/intersil/orinoco/orinoco_usb.c +2 -1
index 8c79b963bcff..e753f43e0162 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtlwifi/pci.c +6 -4
index f88d26535978..25335bd2873b 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw88/main.c +5 -7
index 806af37192bc..88e2252bf8a2 100644

Lines of this file are not shown. View the raw message.

drivers/net/wireless/realtek/rtw88/pci.c +5 -0
index d90928be663b..77a2bdee50fa 100644

Lines of this file are not shown. View the raw message.

drivers/nfc/port100.c +1 -1
index 604dba4f18af..8e4d355dc3ae 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/host/pci.c +8 -15
index 14d513087a14..f34a56d588d3 100644

Lines of this file are not shown. View the raw message.

drivers/nvme/target/core.c +4 -2
index 3a67e244e568..57a4062cbb59 100644

Lines of this file are not shown. View the raw message.

drivers/opp/of.c +13 -4
index 1cbb58240b80..1e5fcdee043c 100644

Lines of this file are not shown. View the raw message.

drivers/pci/controller/pcie-iproc.c +24 -0
index 2d457bfdaf66..933a4346ae5d 100644

Lines of this file are not shown. View the raw message.

drivers/pci/pci.c +18 -6
index fcfaadc774ee..981ae16f935b 100644

Lines of this file are not shown. View the raw message.

drivers/pci/pci.h +3 -0
index 3f6947ee3324..273d60cb0762 100644

Lines of this file are not shown. View the raw message.

drivers/pci/quirks.c +52 -47

99 lines not on this page · raw message

drivers/pci/search.c +2 -2
index bade14002fd8..e4dbdef5aef0 100644

Lines of this file are not shown. View the raw message.

drivers/perf/fsl_imx8_ddr_perf.c +11 -5
index 2a3966d059e7..0e51baa48b14 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/intel/pinctrl-baytrail.c +7 -1
index 7d658e6627e7..606fe216f902 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/sh-pfc/pfc-sh7264.c +4 -5
index 4a95867deb8a..5a026601d4f9 100644

Lines of this file are not shown. View the raw message.

drivers/pinctrl/sh-pfc/pfc-sh7269.c +27 -12
index 6cbb18ef77dc..d20974a55d93 100644

Lines of this file are not shown. View the raw message.

drivers/pwm/pwm-omap-dmtimer.c +25 -10
index 00772fc53490..e36fcad668a6 100644

Lines of this file are not shown. View the raw message.

drivers/pwm/pwm-pca9685.c +0 -4
index 168684b02ebc..b07bdca3d510 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/core.c +2 -0
index 1dba0bdf3762..0011bdc15afb 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/rk808-regulator.c +1 -1
index 61bd5ef0806c..97c846c19c2f 100644

Lines of this file are not shown. View the raw message.

drivers/regulator/vctrl-regulator.c +23 -15
index 9a9ee8188109..cbadb1c99679 100644

Lines of this file are not shown. View the raw message.

drivers/remoteproc/remoteproc_core.c +1 -1
index 3c5fbbbfb0f1..b542debbc6f0 100644

Lines of this file are not shown. View the raw message.

drivers/reset/reset-uniphier.c +8 -5
index 74e589f5dd6a..279e535bf5d8 100644

Lines of this file are not shown. View the raw message.

drivers/rtc/Kconfig +10 -2
index 1adf9f815652..5d502fbd5803 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/aic7xxx/aic7xxx_core.c +1 -1
index a9d40d3b90ef..4190a025381a 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/iscsi_tcp.c +4 -0
index 0bc63a7ab41c..b5dd1caae5e9 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/lpfc/lpfc_ct.c +22 -20

42 lines not on this page · raw message

drivers/scsi/scsi_transport_iscsi.c +23 -3
index ed8d9709b9b9..271afea654e2 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufs-mediatek.c +11 -0
index 0f6ff33ce52e..d4a8be5ffd52 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufs-qcom.c +2 -1
index a5b71487a206..411ef60b2c14 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd.c +14 -18
index b0d6978d78bf..d9ea0ae4f374 100644

Lines of this file are not shown. View the raw message.

drivers/scsi/ufs/ufshcd.h +6 -3
index 52c9676a1242..5260e594e0b9 100644

Lines of this file are not shown. View the raw message.

drivers/soc/tegra/fuse/tegra-apbmisc.c +1 -1
index df76778af601..f8b9c4058926 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-fsl-lpspi.c +16 -16
index 3528ed5eea9b..92e460d4f3d1 100644

Lines of this file are not shown. View the raw message.

drivers/spi/spi-fsl-qspi.c +1 -1
index 63c9f7edaf6c..43078ba3def5 100644

Lines of this file are not shown. View the raw message.

drivers/staging/media/meson/vdec/vdec.c +2 -0
index 0a1a04fd5d13..8dd1396909d7 100644

Lines of this file are not shown. View the raw message.

drivers/staging/rtl8188eu/os_dep/ioctl_linux.c +6 -3
index ec5835d1aa8c..9f0418ee7528 100644

Lines of this file are not shown. View the raw message.

drivers/tty/synclink_gt.c +9 -9
index e8a9047de451..36f1a4d870eb 100644

Lines of this file are not shown. View the raw message.

drivers/tty/synclinkmp.c +12 -12
index fcb91bf7a15b..54b897a646d0 100644

Lines of this file are not shown. View the raw message.

drivers/uio/uio_dmem_genirq.c +4 -2
index ebcf1434e296..44858f70f5f5 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc2/gadget.c +2 -1
index 6be10e496e10..a9133773b89e 100644

Lines of this file are not shown. View the raw message.

drivers/usb/dwc3/host.c +3 -3
index 5567ed2cddbe..fa252870c926 100644

Lines of this file are not shown. View the raw message.

drivers/usb/gadget/udc/gr_udc.c +9 -7
index 7a0e9a58c2d8..116d386472ef 100644

Lines of this file are not shown. View the raw message.

drivers/usb/musb/omap2430.c +0 -2
index a3d2fef67746..5c93226e0e20 100644

Lines of this file are not shown. View the raw message.

drivers/vfio/pci/vfio_pci_nvlink2.c +4 -2
index f2983f0f84be..3f5f8198a6bb 100644

Lines of this file are not shown. View the raw message.

drivers/video/fbdev/pxa168fb.c +3 -3
index 1410f476e135..1fc50fc0694b 100644

Lines of this file are not shown. View the raw message.

drivers/virtio/virtio_balloon.c +2 -0
index c962d9b370c6..d2c4eb9efd70 100644

Lines of this file are not shown. View the raw message.

drivers/visorbus/visorchipset.c +7 -4
index ca752b8f495f..cb1eb7e05f87 100644

Lines of this file are not shown. View the raw message.

drivers/vme/bridges/vme_fake.c +18 -12
index 3208a4409e44..6a1bc284f297 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/check-integrity.c +1 -2
index 0b52ab4cb964..72c70f59fc60 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/ctree.h +12 -8
index 290ca193c6c0..169075550a5a 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/file-item.c +2 -1
index c878bc25d046..f62a179f85bb 100644

Lines of this file are not shown. View the raw message.

fs/btrfs/inode.c +96 -25

121 lines not on this page · raw message

fs/btrfs/volumes.c +40 -4

44 lines not on this page · raw message

fs/ceph/mds_client.c +1 -2
index ee02a742fff5..8c1f04c3a684 100644

Lines of this file are not shown. View the raw message.

fs/ceph/super.c +5 -0
index b47f43fc2d68..62fc7d46032e 100644

Lines of this file are not shown. View the raw message.

fs/cifs/cifs_dfs_ref.c +43 -54

97 lines not on this page · raw message

fs/cifs/connect.c +4 -2
index 02451d085ddd..5d3c867bdc80 100644

Lines of this file are not shown. View the raw message.

fs/cifs/dfs_cache.c +1 -1
index 2faa05860a48..cf6cec59696c 100644

Lines of this file are not shown. View the raw message.

fs/cifs/smb2pdu.c +3 -0
index 06d932ed097e..c6fc6582ee7b 100644

Lines of this file are not shown. View the raw message.

fs/ext4/file.c +6 -4
index 8d2bbcc2d813..fd7ce3573a00 100644

Lines of this file are not shown. View the raw message.

fs/ext4/readpage.c +15 -2
index a30b203fa461..a5f55fece9b0 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/data.c +0 -13
index 2e9c73165800..5d6fd940aab2 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/file.c +37 -13

50 lines not on this page · raw message

fs/f2fs/namei.c +13 -14
index a1c507b0b4ac..5d9584281935 100644

Lines of this file are not shown. View the raw message.

fs/f2fs/sysfs.c +9 -3
index b558b64a4c9c..170934430d7d 100644

Lines of this file are not shown. View the raw message.

fs/fuse/file.c +12 -0
index 695369f46f92..3dd37a998ea9 100644

Lines of this file are not shown. View the raw message.

fs/jbd2/checkpoint.c +1 -1
index a1909066bde6..62cf497f18eb 100644

Lines of this file are not shown. View the raw message.

fs/jbd2/commit.c +2 -2
index 2a42904bcd62..754ec3c47d6f 100644

Lines of this file are not shown. View the raw message.

fs/jbd2/journal.c +10 -14
index ef485f892d1b..c1ce2805c563 100644

Lines of this file are not shown. View the raw message.

fs/nfs/nfs42proc.c +2 -2
index 5196bfa7894d..9b61c80a93e9 100644

Lines of this file are not shown. View the raw message.

fs/nfsd/vfs.c +14 -5
index fc38b9fe4549..005d1802ab40 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/Makefile +0 -2
index 38b224372776..5e700b45d32d 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmast.c +4 -4
index 4de89af96abf..6abaded3ff6b 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmconvert.c +4 -4
index 965f45dbe17b..6051edc33aef 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmdebug.c +4 -4
index 4d0b452012b2..c5c6efba7b5e 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmdomain.c +4 -4
index ee6f459f9770..357cfc702ce3 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmlock.c +4 -4
index baff087f3863..83f0760e4fba 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmmaster.c +4 -4
index 74b768ca1cd8..c9d7037b6793 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmrecovery.c +4 -4
index 064ce5bbc3f6..bcaaca5112d6 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmthread.c +4 -4
index 61c51c268460..fd40c17cd022 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlm/dlmunlock.c +4 -4
index 3883633e82eb..dcb17ca8ae74 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlmfs/Makefile +0 -2
index a9874e441bd4..c7895f65be0e 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlmfs/dlmfs.c +2 -2
index 4f1668c81e1f..8e4f1ace467c 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/dlmfs/userdlm.c +3 -3
index 525b14ddfba5..3df5be25bfb1 100644

Lines of this file are not shown. View the raw message.

fs/ocfs2/journal.h +5 -3
index 3103ba7f97a2..bfe611ed1b1d 100644

Lines of this file are not shown. View the raw message.

fs/orangefs/orangefs-debugfs.c +1 -0
index 25543a966c48..29eaa4544372 100644

Lines of this file are not shown. View the raw message.

fs/reiserfs/stree.c +2 -1
index da9ebe33882b..bb4973aefbb1 100644

Lines of this file are not shown. View the raw message.

fs/reiserfs/super.c +1 -1
index d127af64283e..a6bce5b1fb1d 100644

Lines of this file are not shown. View the raw message.

fs/udf/super.c +17 -6
index 8c28e93e9b73..4baa1ca91e9b 100644

Lines of this file are not shown. View the raw message.

include/linux/cpuhotplug.h +1 -0
index 068793a619ca..2d55cee638fc 100644

Lines of this file are not shown. View the raw message.

include/linux/dmaengine.h +2 -0
index dad4a68fa009..8013562751a5 100644

Lines of this file are not shown. View the raw message.

include/linux/list_nulls.h +4 -4
index 3ef96743db8d..1ecd35664e0d 100644

Lines of this file are not shown. View the raw message.

include/linux/pci.h +1 -1
index be529d311122..f39f22f9ee47 100644

Lines of this file are not shown. View the raw message.

include/linux/platform_data/ti-sysc.h +1 -0
index 8cfe570fdece..2cbde6542849 100644

Lines of this file are not shown. View the raw message.

include/linux/raid/pq.h +2 -1
index 0832c9b66852..e0ddb47f4402 100644

Lines of this file are not shown. View the raw message.

include/linux/rculist_nulls.h +4 -4
index 61974c4c566b..90f2e2232c6d 100644

Lines of this file are not shown. View the raw message.

include/media/v4l2-device.h +6 -6
index e0b8f2602670..a0e93f0ef62a 100644

Lines of this file are not shown. View the raw message.

include/rdma/ib_verbs.h +6 -3
index 75c7b5ed53c5..30d50528d710 100644

Lines of this file are not shown. View the raw message.

include/trace/events/rcu.h +2 -2
index 694bd040cf51..fdd31c5fd126 100644

Lines of this file are not shown. View the raw message.

kernel/bpf/inode.c +1 -2
index a70f7209cda3..218c09ff6a27 100644

Lines of this file are not shown. View the raw message.

kernel/cpu.c +9 -4
index 116825437cd6..406828fb3038 100644

Lines of this file are not shown. View the raw message.

kernel/module.c +12 -8
index cb09a5f37a5f..a2a47f4a33a7 100644

Lines of this file are not shown. View the raw message.

kernel/padata.c +18 -12
index 9c82ee4a9732..fda7a7039422 100644

Lines of this file are not shown. View the raw message.

kernel/printk/printk.c +2 -2
index ca65327a6de8..c0a5b56aea4e 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree.c +6 -5
index 81105141b6a8..62e59596a30a 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree_exp.h +1 -1
index 69c5aa64fcfd..f504ac831779 100644

Lines of this file are not shown. View the raw message.

kernel/rcu/tree_plugin.h +17 -5
index f849e7429816..f7118842a2b8 100644

Lines of this file are not shown. View the raw message.

kernel/sched/core.c +2 -1
index dfaefb175ba0..e6c65725b7ce 100644

Lines of this file are not shown. View the raw message.

kernel/sched/topology.c +39 -0
index 49b835f1305f..1fa1e13a5944 100644

Lines of this file are not shown. View the raw message.

kernel/time/alarmtimer.c +9 -11
index 4b11f0309eee..b97401f6bc23 100644

Lines of this file are not shown. View the raw message.

kernel/trace/ftrace.c +3 -2
index 407d8bf4ed93..15160d707da4 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_events_hist.c +27 -43

70 lines not on this page · raw message

kernel/trace/trace_events_trigger.c +3 -2
index 40106fff06a4..287d77eae59b 100644

Lines of this file are not shown. View the raw message.

kernel/trace/trace_stat.c +17 -14
index 9ab0a1a7ad5e..3c9c17feea33 100644

Lines of this file are not shown. View the raw message.

kernel/watchdog.c +6 -4
index f41334ef0971..cbd3cf503c90 100644

Lines of this file are not shown. View the raw message.

lib/debugobjects.c +25 -21

46 lines not on this page · raw message

lib/raid6/mktables.c +1 -1
index 9c485df1308f..f02e10fa6238 100644

Lines of this file are not shown. View the raw message.

lib/scatterlist.c +1 -1
index c2cf2c311b7d..5813072bc589 100644

Lines of this file are not shown. View the raw message.

net/core/dev.c +2 -2
index 82325d3d1371..a7e2e57af63a 100644

Lines of this file are not shown. View the raw message.

net/core/filter.c +1 -1
index 1a78d64096bb..d59dbc88fef5 100644

Lines of this file are not shown. View the raw message.

net/core/sock_map.c +3 -0
index 085cef5857bb..405397801bb0 100644

Lines of this file are not shown. View the raw message.

net/dsa/tag_qca.c +1 -1
index c8a128c9e5e0..70db7c909f74 100644

Lines of this file are not shown. View the raw message.

net/netfilter/nft_tunnel.c +2 -1
index 5284fcf16be7..f8d2919cf9fd 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_flower.c +1 -0
index 7394e01c0c9c..5eceeee593cf 100644

Lines of this file are not shown. View the raw message.

net/sched/cls_matchall.c +1 -0
index 039cc86974f4..610a0b728161 100644

Lines of this file are not shown. View the raw message.

net/smc/smc_diag.c +2 -3
index f38727ecf8b2..e1f64f4ba236 100644

Lines of this file are not shown. View the raw message.

net/sunrpc/cache.c +2 -0
index f740cb51802a..7ede1e52fd81 100644

Lines of this file are not shown. View the raw message.

samples/bpf/Makefile +1 -0
index e7ad48c605e0..6d1df7117e11 100644

Lines of this file are not shown. View the raw message.

scripts/Kbuild.include +7 -8
index 10ba926ae292..d1dd4a6b6adb 100644

Lines of this file are not shown. View the raw message.

scripts/Kconfig.include +1 -1
index d4adfbe42690..bfb44b265a94 100644

Lines of this file are not shown. View the raw message.

scripts/kconfig/confdata.c +1 -1
index 3569d2dec37c..17298239e363 100644

Lines of this file are not shown. View the raw message.

scripts/link-vmlinux.sh +2 -2
index 436379940356..408b5c0b99b1 100755

Lines of this file are not shown. View the raw message.

security/selinux/avc.c +25 -28

53 lines not on this page · raw message

sound/core/control.c +3 -2
index 7a4d8690ce41..08ca7666e84c 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_conexant.c +1 -0
index 90aa0f400a57..1e20e85e9b46 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_hdmi.c +5 -2
index 8ac805a634f4..307ca1f03676 100644

Lines of this file are not shown. View the raw message.

sound/pci/hda/patch_realtek.c +9 -1
index a66d4be3516e..f162e607fc6c 100644

Lines of this file are not shown. View the raw message.

sound/sh/aica.c +2 -2
index 52e9cfb4f819..8421b2f9c9f3 100644

Lines of this file are not shown. View the raw message.

sound/sh/sh_dac_audio.c +0 -3
index ed877a138965..7c46494466ff 100644

Lines of this file are not shown. View the raw message.

sound/soc/atmel/Kconfig +2 -0
index f118c229ed82..d1dc8e6366dc 100644

Lines of this file are not shown. View the raw message.

sound/soc/intel/boards/sof_rt5682.c +39 -4

43 lines not on this page · raw message

sound/soc/soc-topology.c +22 -20

42 lines not on this page · raw message

sound/soc/sof/intel/hda-dai.c +0 -3
index 896d21984b73..1923b0c36bce 100644

Lines of this file are not shown. View the raw message.

sound/soc/sof/intel/hda.h +1 -1
index 23e430d3e056..4be53ef2eab6 100644

Lines of this file are not shown. View the raw message.

sound/usb/card.c +4 -0
index db91dc76cc91..54f9ce38471e 100644

Lines of this file are not shown. View the raw message.

sound/usb/format.c +3 -0
index 25668ba5e68e..f4f0cf3deaf0 100644

Lines of this file are not shown. View the raw message.

sound/usb/pcm.c +4 -0
index fa24bd491cf6..ad8f38380aa3 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks.c +38 -0
index 1ed25b1d2a6a..7448ab07bd36 100644

Lines of this file are not shown. View the raw message.

sound/usb/quirks.h +5 -0
index a80e0ddd0736..df0355843a4c 100644

Lines of this file are not shown. View the raw message.

sound/usb/usx2y/usX2Yhwdep.c +1 -1
index d1caa8ed9e68..9985fc139487 100644

Lines of this file are not shown. View the raw message.

tools/arch/x86/lib/x86-opcode-map.txt +1 -1
index 0a0e9112f284..5cb9f009f2be 100644

Lines of this file are not shown. View the raw message.

tools/bpf/bpftool/cgroup.c +39 -17

56 lines not on this page · raw message

tools/lib/api/fs/fs.c +3 -1
index 7aba8243a0e7..bd021a0eeef8 100644

Lines of this file are not shown. View the raw message.

tools/objtool/Makefile +1 -5
index d2a19b0bc05a..ee08aeff30a1 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/bpf/test_select_reuseport.c +14 -2
index 7566c13eb51a..079d0f5a2909 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/kselftest/runner.sh +1 -1
index a8d20cbb711c..e84d901f8567 100644

Lines of this file are not shown. View the raw message.

tools/testing/selftests/net/so_txtime.c +81 -3

84 lines not on this page · raw message

tools/testing/selftests/net/so_txtime.sh +7 -2
index 5aa519328a5b..3f7800eaecb1 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/powerpc/eeh/eeh-functions.sh +7 -3
index 26112ab5cdf4..f52ed92b53e7 100755

Lines of this file are not shown. View the raw message.

tools/testing/selftests/size/get_size.c +18 -6
index 2ad45b944355..2980b1a63366 100644

Lines of this file are not shown. View the raw message.

tools/usb/usbip/src/usbip_network.c +24 -16
index d595d72693fb..ed4dc8c14269 100644

Lines of this file are not shown. View the raw message.

tools/usb/usbip/src/usbip_network.h +3 -9
index 555215eae43e..83b4c5344f72 100644

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.