Skip to contentSkip to conversation

Linux 5.8.6

DISCUSSION Greg Kroah-Hartman 1 participant 2 messages Sep 3, 2020 Stable branch

lore
Share & tools
lore

Greg Kroah-Hartman

author maintainer
#0 lore raw

I'm announcing the release of the 5.8.6 kernel.

All users of the 5.8 kernel series must upgrade.

The updated 5.8.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.8.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary

thanks,

greg k-h

------------

 Documentation/admin-guide/ext4.rst                                  |    3 
 Makefile                                                            |    2 
 arch/arm/boot/dts/ls1021a.dtsi                                      |    2 
 arch/arm64/Makefile                                                 |    3 
 arch/arm64/boot/dts/qcom/msm8916-pins.dtsi                          |    2 
 arch/arm64/include/asm/kvm_arm.h                                    |    3 
 arch/arm64/include/asm/smp.h                                        |    7 
 arch/arm64/kernel/cpu_errata.c                                      |    2 
 arch/arm64/kernel/entry.S                                           |   21 
 arch/arm64/kernel/process.c                                         |   34 +
 arch/arm64/kernel/setup.c                                           |    8 
 arch/arm64/kernel/smp.c                                             |    6 
 arch/arm64/kvm/hyp/switch.c                                         |    2 
 arch/mips/Kconfig                                                   |    1 
 arch/mips/kvm/Kconfig                                               |    3 
 arch/mips/vdso/genvdso.c                                            |   10 
 arch/powerpc/perf/core-book3s.c                                     |   23 -
 arch/powerpc/platforms/Kconfig.cputype                              |    2 
 arch/powerpc/platforms/cell/Kconfig                                 |    1 
 arch/powerpc/sysdev/xive/native.c                                   |    2 
 arch/x86/kernel/apic/vector.c                                       |   16 
 arch/x86/kernel/smpboot.c                                           |   26 -
 block/bfq-cgroup.c                                                  |    2 
 block/bfq-iosched.h                                                 |    1 
 block/bfq-wf2q.c                                                    |   12 
 block/bio.c                                                         |   10 
 block/blk-cgroup.c                                                  |    8 
 block/blk-merge.c                                                   |   13 
 block/blk-mq-sched.c                                                |    9 
 block/blk-mq.c                                                      |   12 
 crypto/af_alg.c                                                     |   13 
 drivers/base/core.c                                                 |   12 
 drivers/base/power/main.c                                           |   16 
 drivers/block/loop.c                                                |   33 -
 drivers/block/null_blk_main.c                                       |    2 
 drivers/block/virtio_blk.c                                          |   31 +
 drivers/cpufreq/intel_pstate.c                                      |   18 
 drivers/devfreq/devfreq.c                                           |    4 
 drivers/dma/Kconfig                                                 |    1 
 drivers/edac/edac_mc.c                                              |    4 
 drivers/edac/ie31200_edac.c                                         |   50 ++
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c                   |   31 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c                      |   16 
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c                         |    5 
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c                             |    3 
 drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c                           |    4 
 drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c                             |    7 
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c                              |  220 +++++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c                             |   21 
 drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c                              |    6 
 drivers/gpu/drm/amd/amdkfd/kfd_process.c                            |    4 
 drivers/gpu/drm/amd/amdkfd/kfd_topology.c                           |   20 
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c                   |   81 +--
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c             |   10 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c         |   16 
 drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h         |   14 
 drivers/gpu/drm/amd/display/modules/color/Makefile                  |    2 
 drivers/gpu/drm/amd/display/modules/color/color_gamma.c             |  115 ++---
 drivers/gpu/drm/amd/display/modules/color/color_gamma.h             |   18 
 drivers/gpu/drm/amd/display/modules/color/color_table.c             |   48 ++
 drivers/gpu/drm/amd/display/modules/color/color_table.h             |   47 ++
 drivers/gpu/drm/amd/display/modules/freesync/freesync.c             |   36 +
 drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c                   |    9 
 drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c                |   22 -
 drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c                |   21 
 drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c                  |   44 --
 drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c                |   21 
 drivers/gpu/drm/arm/display/komeda/komeda_crtc.c                    |    7 
 drivers/gpu/drm/arm/malidp_drv.c                                    |    1 
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c                      |    7 
 drivers/gpu/drm/drm_atomic_helper.c                                 |    7 
 drivers/gpu/drm/drm_atomic_state_helper.c                           |    4 
 drivers/gpu/drm/drm_color_mgmt.c                                    |    2 
 drivers/gpu/drm/drm_crtc.c                                          |    4 
 drivers/gpu/drm/drm_dp_mst_topology.c                               |    4 
 drivers/gpu/drm/drm_mode_object.c                                   |    4 
 drivers/gpu/drm/drm_plane.c                                         |    2 
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c                               |   11 
 drivers/gpu/drm/etnaviv/etnaviv_sched.c                             |   11 
 drivers/gpu/drm/i915/i915_cmd_parser.c                              |   14 
 drivers/gpu/drm/msm/adreno/adreno_gpu.c                             |    2 
 drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c                           |    2 
 drivers/gpu/drm/nouveau/dispnv50/disp.c                             |    4 
 drivers/gpu/drm/nouveau/nouveau_connector.c                         |    4 
 drivers/gpu/drm/nouveau/nouveau_fbcon.c                             |    4 
 drivers/gpu/drm/omapdrm/omap_crtc.c                                 |    8 
 drivers/gpu/drm/omapdrm/omap_drv.c                                  |    4 
 drivers/gpu/drm/radeon/radeon_connectors.c                          |   20 
 drivers/gpu/drm/rcar-du/rcar_du_crtc.c                              |    6 
 drivers/gpu/drm/tegra/dc.c                                          |    1 
 drivers/gpu/drm/tidss/tidss_crtc.c                                  |    3 
 drivers/gpu/drm/tidss/tidss_kms.c                                   |    5 
 drivers/gpu/drm/virtio/virtgpu_object.c                             |    1 
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c                                 |    8 
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c                                |    9 
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c                                |    9 
 drivers/gpu/host1x/job.c                                            |   13 
 drivers/hid/hid-ids.h                                               |    1 
 drivers/hid/hid-quirks.c                                            |    1 
 drivers/hid/i2c-hid/i2c-hid-core.c                                  |   22 -
 drivers/hid/usbhid/hiddev.c                                         |    4 
 drivers/hwmon/gsc-hwmon.c                                           |    1 
 drivers/hwmon/nct7904.c                                             |    4 
 drivers/i2c/busses/i2c-i801.c                                       |    4 
 drivers/i2c/busses/i2c-rcar.c                                       |    1 
 drivers/i2c/i2c-core-base.c                                         |    2 
 drivers/iommu/dma-iommu.c                                           |    4 
 drivers/iommu/iova.c                                                |    4 
 drivers/irqchip/irq-stm32-exti.c                                    |   14 
 drivers/media/cec/core/cec-api.c                                    |    8 
 drivers/media/i2c/imx290.c                                          |    7 
 drivers/media/pci/ttpci/av7110.c                                    |    5 
 drivers/media/platform/davinci/vpif_capture.c                       |    2 
 drivers/mfd/intel-lpss-pci.c                                        |   19 
 drivers/misc/habanalabs/debugfs.c                                   |    8 
 drivers/mmc/host/sdhci-of-arasan.c                                  |   25 -
 drivers/net/ethernet/freescale/gianfar.c                            |    4 
 drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c                       |    2 
 drivers/net/macvlan.c                                               |   21 
 drivers/net/wan/hdlc.c                                              |    1 
 drivers/net/wan/hdlc_x25.c                                          |   17 
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c         |    8 
 drivers/net/wireless/realtek/rtlwifi/usb.c                          |    5 
 drivers/nvme/host/fc.c                                              |    4 
 drivers/nvme/host/multipath.c                                       |   15 
 drivers/nvme/target/configfs.c                                      |    1 
 drivers/pci/controller/dwc/pcie-qcom.c                              |   58 ++
 drivers/pci/slot.c                                                  |    6 
 drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c                    |   26 +
 drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h                    |    1 
 drivers/pinctrl/mediatek/pinctrl-paris.c                            |    7 
 drivers/platform/chrome/cros_ec_sensorhub_ring.c                    |    4 
 drivers/s390/cio/css.c                                              |    5 
 drivers/scsi/fcoe/fcoe_ctlr.c                                       |    2 
 drivers/scsi/lpfc/lpfc_vport.c                                      |   26 -
 drivers/scsi/qla2xxx/qla_gs.c                                       |   48 +-
 drivers/scsi/qla2xxx/qla_mbx.c                                      |    8 
 drivers/scsi/qla2xxx/qla_nvme.c                                     |    5 
 drivers/scsi/qla2xxx/qla_os.c                                       |    5 
 drivers/scsi/qla2xxx/qla_target.c                                   |    2 
 drivers/scsi/scsi_debug.c                                           |    2 
 drivers/scsi/scsi_transport_iscsi.c                                 |    2 
 drivers/scsi/ufs/ufshcd.c                                           |   14 
 drivers/spi/spi-stm32.c                                             |   73 +--
 drivers/staging/rts5208/rtsx.c                                      |    1 
 drivers/target/target_core_internal.h                               |    1 
 drivers/target/target_core_transport.c                              |    7 
 drivers/target/target_core_user.c                                   |    9 
 drivers/target/target_core_xcopy.c                                  |   11 
 drivers/tty/serial/8250/8250_exar.c                                 |   24 -
 drivers/tty/serial/8250/8250_port.c                                 |    9 
 drivers/tty/serial/amba-pl011.c                                     |   16 
 drivers/tty/serial/samsung_tty.c                                    |    8 
 drivers/tty/serial/stm32-usart.c                                    |    2 
 drivers/tty/vt/vt.c                                                 |    5 
 drivers/tty/vt/vt_ioctl.c                                           |   12 
 drivers/usb/class/cdc-acm.c                                         |   22 -
 drivers/usb/core/driver.c                                           |   40 +
 drivers/usb/core/generic.c                                          |    5 
 drivers/usb/core/quirks.c                                           |    7 
 drivers/usb/dwc3/gadget.c                                           |  107 ++++
 drivers/usb/gadget/function/f_ncm.c                                 |   81 +++
 drivers/usb/gadget/function/f_tcm.c                                 |    7 
 drivers/usb/gadget/u_f.h                                            |   38 +
 drivers/usb/host/ohci-exynos.c                                      |    5 
 drivers/usb/host/xhci-debugfs.c                                     |    8 
 drivers/usb/host/xhci-hub.c                                         |   19 
 drivers/usb/host/xhci-pci-renesas.c                                 |   19 
 drivers/usb/host/xhci-tegra.c                                       |    4 
 drivers/usb/host/xhci.c                                             |    3 
 drivers/usb/misc/lvstest.c                                          |    2 
 drivers/usb/misc/sisusbvga/sisusb.c                                 |    2 
 drivers/usb/misc/yurex.c                                            |    2 
 drivers/usb/storage/unusual_devs.h                                  |    2 
 drivers/usb/storage/unusual_uas.h                                   |   14 
 drivers/usb/typec/tcpm/tcpm.c                                       |   28 +
 drivers/usb/typec/ucsi/displayport.c                                |    9 
 drivers/usb/typec/ucsi/ucsi.c                                       |  103 ++--
 drivers/usb/usbip/stub_dev.c                                        |    6 
 drivers/vdpa/ifcvf/ifcvf_base.h                                     |    2 
 drivers/vdpa/ifcvf/ifcvf_main.c                                     |    9 
 drivers/video/fbdev/controlfb.c                                     |    2 
 drivers/video/fbdev/core/fbcon.c                                    |   25 +
 drivers/video/fbdev/core/fbmem.c                                    |    8 
 drivers/video/fbdev/core/fbsysfs.c                                  |    4 
 drivers/video/fbdev/omap2/omapfb/dss/dispc.c                        |    7 
 drivers/video/fbdev/omap2/omapfb/dss/dsi.c                          |    7 
 drivers/video/fbdev/omap2/omapfb/dss/dss.c                          |    7 
 drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c                        |    5 
 drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c                        |    5 
 drivers/video/fbdev/omap2/omapfb/dss/venc.c                         |    7 
 drivers/video/fbdev/ps3fb.c                                         |    5 
 drivers/xen/events/events_base.c                                    |   16 
 fs/btrfs/ctree.h                                                    |    4 
 fs/btrfs/disk-io.c                                                  |    1 
 fs/btrfs/extent-tree.c                                              |   17 
 fs/btrfs/file.c                                                     |   10 
 fs/btrfs/free-space-cache.c                                         |    2 
 fs/btrfs/inode.c                                                    |   18 
 fs/btrfs/qgroup.c                                                   |   14 
 fs/btrfs/qgroup.h                                                   |    2 
 fs/btrfs/super.c                                                    |    1 
 fs/btrfs/tree-log.c                                                 |   10 
 fs/buffer.c                                                         |    9 
 fs/ceph/file.c                                                      |    5 
 fs/ceph/mds_client.c                                                |   14 
 fs/ext4/block_validity.c                                            |    8 
 fs/ext4/ext4.h                                                      |    7 
 fs/ext4/ext4_jbd2.c                                                 |   25 +
 fs/ext4/extents.c                                                   |   10 
 fs/ext4/file.c                                                      |    2 
 fs/ext4/indirect.c                                                  |    2 
 fs/ext4/inode.c                                                     |    6 
 fs/ext4/ioctl.c                                                     |    2 
 fs/ext4/mballoc.c                                                   |   95 +++-
 fs/ext4/mballoc.h                                                   |    4 
 fs/ext4/move_extent.c                                               |    4 
 fs/ext4/super.c                                                     |  195 ++++++--
 fs/ext4/sysfs.c                                                     |    2 
 fs/f2fs/f2fs.h                                                      |    4 
 fs/f2fs/inline.c                                                    |   19 
 fs/f2fs/node.c                                                      |    6 
 fs/f2fs/recovery.c                                                  |   10 
 fs/f2fs/super.c                                                     |    5 
 fs/f2fs/sysfs.c                                                     |    9 
 fs/fs-writeback.c                                                   |   83 ++-
 fs/hugetlbfs/inode.c                                                |    6 
 fs/io-wq.c                                                          |   21 
 fs/io_uring.c                                                       |   40 +
 fs/jbd2/transaction.c                                               |   26 +
 fs/nfsd/nfs4state.c                                                 |    2 
 fs/xfs/libxfs/xfs_trans_inode.c                                     |    2 
 fs/xfs/xfs_icache.c                                                 |    3 
 fs/xfs/xfs_inode.c                                                  |   25 +
 include/drm/drm_modeset_lock.h                                      |    9 
 include/linux/dma-direct.h                                          |    3 
 include/linux/dma-mapping.h                                         |    5 
 include/linux/efi.h                                                 |    4 
 include/linux/fb.h                                                  |    2 
 include/linux/fs.h                                                  |    8 
 include/linux/netfilter_ipv6.h                                      |   18 
 include/trace/events/ext4.h                                         |   17 
 include/trace/events/writeback.h                                    |   13 
 kernel/Makefile                                                     |    1 
 kernel/bpf/bpf_iter.c                                               |   15 
 kernel/bpf/task_iter.c                                              |    3 
 kernel/dma/direct.c                                                 |   13 
 kernel/dma/pool.c                                                   |  147 +++---
 kernel/irq/matrix.c                                                 |    7 
 kernel/locking/lockdep_proc.c                                       |    2 
 kernel/trace/blktrace.c                                             |   12 
 mm/khugepaged.c                                                     |    5 
 mm/page_counter.c                                                   |   13 
 net/bridge/netfilter/nf_conntrack_bridge.c                          |    8 
 net/can/j1939/transport.c                                           |   15 
 net/ipv6/netfilter.c                                                |    3 
 net/netfilter/nf_tables_api.c                                       |   16 
 net/openvswitch/datapath.c                                          |   10 
 net/openvswitch/flow_table.c                                        |   35 -
 net/openvswitch/flow_table.h                                        |    3 
 sound/pci/cs46xx/cs46xx_lib.c                                       |    2 
 sound/pci/cs46xx/dsp_spos_scb_lib.c                                 |    2 
 sound/pci/hda/hda_codec.c                                           |    2 
 sound/pci/hda/hda_generic.c                                         |    2 
 sound/pci/hda/hda_intel.c                                           |    2 
 sound/pci/hda/patch_hdmi.c                                          |   17 
 sound/pci/hda/patch_realtek.c                                       |   12 
 sound/pci/hda/patch_sigmatel.c                                      |    2 
 sound/pci/ice1712/prodigy192.c                                      |    2 
 sound/pci/oxygen/xonar_dg.c                                         |    2 
 sound/soc/codecs/wm8958-dsp2.c                                      |    4 
 sound/soc/img/img-i2s-in.c                                          |    4 
 sound/soc/img/img-parallel-out.c                                    |    4 
 sound/soc/intel/boards/skl_hda_dsp_common.h                         |    1 
 sound/soc/intel/boards/skl_hda_dsp_generic.c                        |   17 
 sound/soc/intel/boards/sof_sdw.c                                    |    1 
 sound/soc/intel/boards/sof_sdw_common.h                             |    1 
 sound/soc/intel/boards/sof_sdw_rt711.c                              |   15 
 sound/soc/tegra/tegra30_ahub.c                                      |    4 
 sound/soc/tegra/tegra30_i2s.c                                       |    4 
 sound/usb/mixer.c                                                   |    8 
 sound/usb/quirks-table.h                                            |   34 +
 tools/bpf/bpftool/btf_dumper.c                                      |    2 
 tools/bpf/bpftool/link.c                                            |    4 
 tools/bpf/bpftool/main.h                                            |   10 
 tools/bpf/bpftool/prog.c                                            |   16 
 tools/lib/bpf/libbpf.c                                              |   14 
 tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c                 |    8 
 tools/testing/selftests/bpf/prog_tests/btf_dump.c                   |   27 -
 tools/testing/selftests/bpf/prog_tests/core_extern.c                |    4 
 tools/testing/selftests/bpf/prog_tests/core_reloc.c                 |   20 
 tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c              |    6 
 tools/testing/selftests/bpf/prog_tests/flow_dissector.c             |    2 
 tools/testing/selftests/bpf/prog_tests/global_data.c                |    6 
 tools/testing/selftests/bpf/prog_tests/mmap.c                       |   19 
 tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c             |    2 
 tools/testing/selftests/bpf/prog_tests/skb_ctx.c                    |    2 
 tools/testing/selftests/bpf/prog_tests/test_global_funcs.c          |    2 
 tools/testing/selftests/bpf/progs/core_reloc_types.h                |   69 +--
 tools/testing/selftests/bpf/test_btf.c                              |    8 
 tools/testing/selftests/bpf/test_progs.h                            |    5 
 tools/testing/selftests/net/icmp_redirect.sh                        |    2 
 tools/testing/selftests/powerpc/pmu/ebb/back_to_back_ebbs_test.c    |    2 
 tools/testing/selftests/powerpc/pmu/ebb/cycles_test.c               |    2 
 tools/testing/selftests/powerpc/pmu/ebb/cycles_with_freeze_test.c   |    2 
 tools/testing/selftests/powerpc/pmu/ebb/cycles_with_mmcr2_test.c    |    2 
 tools/testing/selftests/powerpc/pmu/ebb/ebb.c                       |    2 
 tools/testing/selftests/powerpc/pmu/ebb/ebb_on_willing_child_test.c |    2 
 tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c       |    1 
 tools/testing/selftests/powerpc/pmu/ebb/multi_counter_test.c        |    7 
 tools/testing/selftests/powerpc/pmu/ebb/multi_ebb_procs_test.c      |    2 
 tools/testing/selftests/powerpc/pmu/ebb/pmae_handling_test.c        |    2 
 tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c       |    2 
 313 files changed, 2869 insertions(+), 1351 deletions(-)

Abhishek Sahu (1):
PCI: qcom: Change duplicate PCI reset to phy reset

Aditya Pakki (5):
drm/radeon: fix multiple reference count leak
omapfb: fix multiple reference count leaks due to pm_runtime_get_sync drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open drm/nouveau: fix reference count leak in nv50_disp_atomic_commit drm/nouveau: Fix reference count leak in nouveau_connector_detect

Adrian Hunter (1):
scsi: ufs: Improve interrupt handling for shared interrupts

Alain Volmat (1):
spi: stm32: always perform registers configuration prior to transfer

Alan Stern (3):
USB: yurex: Fix bad gfp argument
USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D
usb: storage: Add unusual_uas entry for Sony PSZ drives

Alex Deucher (4):
drm/amdgpu/fence: fix ref count leak when pm_runtime_get_sync fails drm/amdkfd: fix ref count leak when pm_runtime_get_sync fails drm/amdgpu/pm: fix ref count leak when pm_runtime_get_sync fails drm/amdgpu: Fix buffer overflow in INFO ioctl

Alex Zhuravlev (1):
ext4: skip non-loaded groups at cr=0/1 when scanning for good groups

Alexander Monakov (1):
drm/amd/display: use correct scale for actual_brightness

Alexander Popov (1):
gcc-plugins/stackleak: Don't instrument itself

Alexander Tsoy (1):
ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)

Alexey Kardashevskiy (2):
powerpc/xive: Ignore kmemleak false positives powerpc/perf: Fix crashes with generic_compat_pmu & BHRB

Alvin Šipraga (1):
macvlan: validate setting of multiple remote source MAC addresses

Amelie Delaunay (2):
spi: stm32: fix fifo threshold level in case of short transfer
spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate

Andrey Konovalov (2):
media: i2c: imx290: fix reset GPIO pin handling
efi: provide empty efi_enter_virtual_mode implementation

Andrii Nakryiko (4):
tools/bpftool: Fix compilation warnings in 32-bit mode selftest/bpf: Fix compilation warnings in 32-bit mode selftests/bpf: Fix btf_dump test cases on 32-bit arches selftests/bpf: Correct various core_reloc 64-bit assumptions

Andy Shevchenko (4):
mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs
mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs
i2c: core: Don't fail PRP0001 enumeration when no ID table exist
USB: gadget: u_f: Unbreak offset calculation in VLAs

Ansuel Smith (2):
PCI: qcom: Add missing ipq806x clocks in PCIe driver
PCI: qcom: Add missing reset for ipq806x

Anthony Koo (2):
drm/amd/display: Fix LFC multiplier changing erratically drm/amd/display: Switch to immediate mode for updating infopackets

Antonio Borneo (1):
spi: stm32h7: fix race condition at end of transfer

Arnd Bergmann (1):
powerpc/spufs: add CONFIG_COREDUMP dependency

Ashok Raj (1):
x86/hotplug: Silence APIC only after all interrupts are migrated

Athira Rajeev (1):
powerpc/perf: Fix soft lockups due to missed interrupt accounting

Badhri Jagan Sridharan (1):
usb: typec: tcpm: Fix Fix source hard reset response for TDA 2.3.1.1 and TDA 2.3.1.2 failures

Bastien Nocera (2):
USB: Also match device drivers using the ->match vfunc
USB: Fix device driver race

Bhawanpreet Lakha (1):
drm/dp_mst: Don't return error code when crtc is null

Bodo Stroesser (1):
scsi: target: tcmu: Fix crash on ARM during cmd completion

Boris Burkov (1):
btrfs: detect nocow for swap after snapshot delete

Brooke Basile (2):
USB: gadget: u_f: add overflow checks to VLA macros
USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()

Changming Liu (1):
USB: sisusbvga: Fix a potential UB casued by left shifting a negative value

Chanwoo Choi (1):
PM / devfreq: Fix the wrong end with semicolon

Chao Yu (1):
f2fs: fix error path in do_recover_data()

Chris Wilson (1):
locking/lockdep: Fix overflow in presentation of average lock-time

Christian Gmeiner (1):

      drm/etnaviv: fix external abort seen on GC600 rev 0x19

Christoph Hellwig (1):
dma-pool: fix coherent pool allocations for IOMMU mappings

Christophe JAILLET (1):
usb: gadget: f_tcm: Fix some resource leaks in some error paths

Christophe Leroy (1):
powerpc/32s: Disable VMAP stack which CONFIG_ADB_PMU

Cyril Roelandt (1):
USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge

Dan Carpenter (2):
habanalabs: Fix memory corruption in debugfs
dma-pool: Fix an uninitialized variable bug in atomic_pool_expand()

Daniel Vetter (3):
drm/modeset-lock: Take the modeset BKL for legacy drivers drm/atomic-helper: reset vblank on crtc reset drm/vmwgfx/stdu: Use drm_mode_config_reset

Dave Chinner (1):
xfs: Don't allow logging of XFS_ISTALE inodes

David Ahern (1):
selftests: disable rp_filter for icmp_redirect.sh

David Brazdil (1):
KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe

Dehe Gu (1):
f2fs: remove write attribute of main_blkaddr sysfs node

Desnes A. Nunes do Rosario (1):
selftests/powerpc: Purge extra count_pmc() calls of ebb selftests

Dick Kennedy (1):
scsi: lpfc: Fix shost refcount mismatch when deleting vport

Ding Hui (1):
xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed

Dmitry Monakhov (1):
bfq: fix blkio cgroup leakage v4

Dmitry Osipenko (1):
gpu: host1x: Put gather's BO on pinning error

Douglas Gilbert (1):
scsi: scsi_debug: Fix scp is NULL errors

Evan Quan (6):
drm/amd/powerplay: correct Vega20 cached smu feature state drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading drm/amd/pm: correct Vega10 swctf limit setting
drm/amd/pm: correct Vega12 swctf limit setting
drm/amd/pm: correct Vega20 swctf limit setting
drm/amd/pm: correct the thermal alert temperature limit settings

Evgeny Novikov (3):
staging: rts5208: fix memleaks on error handling paths in probe
media: davinci: vpif_capture: fix potential double free
USB: lvtest: return proper error code in probe

Filipe Manana (1):
btrfs: fix space cache memory leak after transaction abort

Florian Westphal (1):

      netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency

Frank van der Linden (1):
arm64: vdso32: make vdso32 install conditional

George Kennedy (2):
fbcon: prevent user font height or width change from causing potential out-of-bounds access
vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()

Greg Kroah-Hartman (1):

      Linux 5.8.6

Guchun Chen (2):
drm/amdgpu: fix RAS memory leak in error case drm/amdgpu: fix NULL pointer access issue when unloading driver

Gwendal Grignou (1):
platform/chrome: cros_ec_sensorhub: Fix EC timestamp overflow

Hanks Chen (1):
pinctrl: mediatek: avoid virtual gpio trying to set reg

Hans Verkuil (1):
cec-api: prevent leaking memory through hole in structure

Hans de Goede (5):
HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands
usb: typec: ucsi: Fix AB BA lock inversion
usb: typec: ucsi: Fix 2 unlocked ucsi_run_command calls
usb: typec: ucsi: Rework ppm_lock handling
usb: typec: ucsi: Hold con->lock for the entire duration of ucsi_register_port()

Hector Martin (1):
ALSA: usb-audio: Update documentation comment for MS2109 quirk

Heikki Krogerus (1):
device property: Fix the secondary firmware node handling in set_primary_fwnode()

Herbert Xu (1):
crypto: af_alg - Work around empty control messages without MSG_MORE

Holger Assmann (1):
serial: stm32: avoid kernel warning on absence of optional IRQ

Hou Pu (1):
null_blk: fix passing of REQ_FUA flag in null_handle_rq

Huang Rui (1):
drm/amdkfd: fix the wrong sdma instance query for renoir

Hugh Dickins (1):
khugepaged: khugepaged_test_exit() check mmget_still_valid()

Ikjoon Jang (1):
HID: quirks: add NOGET quirk for Logitech GROUP

J. Bruce Fields (1):
nfsd: fix oops on mixed NFSv4/NFSv3 client access

JC Kuo (2):
usb: host: xhci-tegra: otg usb2/usb3 port init
usb: host: xhci-tegra: fix tegra_xusb_get_phy()

James Morse (1):
KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception

Jan Kara (6):
ext4: don't BUG on inconsistent journal feature
ext4: handle error of ext4_setup_system_zone() on remount
ext4: correctly restore system zone info when remount fails
writeback: Protect inode->i_io_list with inode->i_lock
writeback: Avoid skipping inode writeback
writeback: Fix sync livelock due to b_dirty_time processing

Jarkko Nikula (1):
i2c: i801: Add support for Intel Tiger Lake PCH-H

Jason Baron (2):
EDAC/ie31200: Fallback if host bridge device is already initialized
hwmon: (nct7904) Correct divide by 0

Jason Wang (2):
vdpa: ifcvf: return err when fail to request config irq
vdpa: ifcvf: free config irq in ifcvf_free_irq()

Javed Hasan (1):
scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()

Jens Axboe (4):

      io_uring: clear req->result on IOPOLL re-issue
      io_uring: don't recurse on tsk->sighand->siglock with signalfd
      io_uring: don't use poll handler if file can't be nonblocking read/written
      io_uring: make offset == -1 consistent with preadv2/pwritev2

Jia-Ju Bai (1):
media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()

Jianlin Lv (1):
selftests/bpf: Fix segmentation fault in test_progs

Jiansong Chen (1):
drm/amdgpu/gfx10: refine mgcg setting

Jiaxun Yang (1):
MIPS: KVM: Limit Trap-and-Emulate to MIPS32R2 only

Jing Xiangfeng (1):
scsi: iscsi: Do not put host in iscsi_set_flashnode_param()

Josef Bacik (1):
btrfs: check the right error variable in btrfs_del_dir_entries_in_log

Kai Vehmanen (1):
ASoC: intel/skl/hda - fix probe regression on systems without i915

Kai-Heng Feng (5):
ALSA: hda/hdmi: Add quirk to force connectivity
ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged
ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop
xhci: Do warm-reset when both CAS and XDEV_RESUME are set
USB: quirks: Add no-lpm quirk for another Raydium touchscreen

Kaige Li (1):
ALSA: hda: Add support for Loongson 7A1000 controller

Kefeng Wang (1):
arm64: Fix __cpu_logical_map undefined issue

Keith Busch (1):
block: fix get_max_io_size()

Lewis Huang (1):
drm/amd/display: change global buffer to local buffer

Li Guifu (1):
f2fs: fix use-after-free issue

Li Jun (1):
usb: host: xhci: fix ep context print mismatch in debugfs

Lucas Stach (1):
drm/etnaviv: always start/stop scheduler in timeout processing

Luis Chamberlain (1):
blktrace: ensure our debugfs dir exists

Lukas Czerner (3):
jbd2: make sure jh have b_transaction set in refile/unfile_buffer
ext4: handle read only external journal device
ext4: handle option set by mount flags correctly

Lukas Wunner (2):
serial: pl011: Fix oops on -EPROBE_DEFER
serial: pl011: Don't leak amba_ports entry on driver register error

M. Vefa Bicakci (1):
usbip: Implement a match function to fix usbip

Manish Narani (1):
mmc: sdhci-of-arasan: fix timings allocation code

Marc Zyngier (2):
arm64: Move handling of erratum 1418040 into C code
arm64: Allow booting of late CPUs affected by erratum 1418040

Marcos Paulo de Souza (1):
btrfs: reset compression level for lzo on remount

Martin Wilck (1):
nvme: multipath: round-robin: fix single non-optimized path case

Matthew Wilcox (Oracle) (1):
block: Fix page_is_mergeable() for compound pages

Michael Ellerman (1):

      video: fbdev: controlfb: Fix build for COMPILE_TEST=y && PPC_PMAC=n

Mika Kuoppala (1):
drm/i915: Fix cmd parser desc matching with masks

Mike Christie (2):
scsi: target: Fix xcopy sess release leak
scsi: fcoe: Fix I/O path allocation

Mike Kravetz (1):
hugetlbfs: prevent filesystem stacking of hugetlbfs

Mike Pozulp (1):
ALSA: hda/realtek: Add model alc298-samsung-headphone

Ming Lei (5):
block: respect queue limit of max discard segment
block: virtio_blk: fix handling single range discard request
blk-mq: insert request not through ->queue_rq into sw/scheduler queue
block: loop: set discard granularity and alignment for block device backed loop
blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART

Navid Emamdoost (4):
drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms drm/amd/display: fix ref count leak in amdgpu_drm_ioctl drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails

Nicholas Kazlauskas (1):
drm/amd/powerplay: Fix hardmins not being sent to SMU for RV

Nicolas Saenz Julienne (2):
brcmfmac: Set timeout value when configuring power save
dma-pool: Only allocate from CMA when in same memory zone

Nikolay Borisov (1):
btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode

Oleksij Rempel (1):
can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect corruptions

Pablo Neira Ayuso (1):
netfilter: nf_tables: report EEXIST on overlaps

Pavel Begunkov (1):
io-wq: fix hang after cancelling pending hashed work

Peilin Ye (1):
HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()

Peng Fan (1):
mips/vdso: Fix resource leaks in genvdso.c

Pierre-Louis Bossart (1):
ASoC: Intel: sof_sdw_rt711: remove properties in card remove

Qian Cai (1):
mm/page_counter: fix various data races at memsw

Qingqing Zhuo (1):
drm/amd/display: fix compilation error on allmodconfig

Qiushi Wu (5):
ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt
ASoC: img-parallel-out: Fix a reference count leak
ASoC: tegra: Fix reference count leaks. drm/amdkfd: Fix reference count leaks.
PCI: Fix pci_create_slot() reference count leak

Qu Wenruo (1):
btrfs: file: reserve qgroup space after the hole punch range is locked

Quinn Tran (5):
scsi: qla2xxx: Flush all sessions on zone disable
scsi: qla2xxx: Flush I/O on zone disable
scsi: qla2xxx: Indicate correct supported speeds for Mezz card
scsi: qla2xxx: Fix login timeout
scsi: qla2xxx: Fix null pointer access during disconnect from subsystem

Rafael J. Wysocki (2):
cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode
PM: sleep: core: Fix the handling of pending runtime resume requests

Randy Dunlap (2):
ALSA: pci: delete repeated words in comments
pinctrl: mediatek: fix build for tristate changes

Reto Schneider (1):
rtlwifi: rtl8192cu: Prevent leaking urb

Rob Clark (1):
drm/msm/adreno: fix updating ring fence

Robin Murphy (1):
iommu/iova: Don't BUG on invalid PFNs

Roland Scheidegger (2):
drm/vmwgfx/sou: Use drm_mode_config_reset
drm/vmwgfx/ldu: Use drm_mode_config_reset

Sagi Grimberg (1):
nvmet: fix a memory leak

Sasha Levin (1):
dmaengine: idxd: fix PCI_MSI build errors

Saurav Kashyap (2):
scsi: qla2xxx: Check if FW supports MQ before enabling Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"

Sergey Senozhatsky (1):
serial: 8250: change lock order in serial8250_do_startup()

Stanley Chu (2):
scsi: ufs: Fix possible infinite loop in ufshcd_hold
scsi: ufs: Clean up completed request without interrupt notification

Stephan Gerhold (1):
arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep

Sumera Priyadarsini (1):
net: gianfar: Add of_node_put() before goto statement

Sylwester Nawrocki (1):
ASoC: wm8994: Avoid attempts to read unreadable registers

Tamseel Shams (1):
serial: samsung: Removes the IRQ not found warning

Tang Bin (1):
usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()

Tetsuo Handa (2):
vt: defer kfree() of vc_screenbuf in vc_do_resize()
fbmem: pull fbcon_update_vcs() out of fb_set_var()

Thinh Nguyen (4):
usb: uas: Add quirk for PNY Pro Elite
usb: dwc3: gadget: Don't setup more than requested
usb: dwc3: gadget: Fix handling ZLP
usb: dwc3: gadget: Handle ZLP for sg requests

Thomas Gleixner (3):
XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information. genirq/matrix: Deal with the sillyness of for_each_cpu() on UP
x86/irq: Unbreak interrupt affinity setting

Tianjia Zhang (1):
nvme-fc: Fix wrong return value in __nvme_fc_init_request()

Tim Harvey (1):
hwmon: (gsc-hwmon) Scale temperature to millidegrees

Tobias Schramm (1):
spi: stm32: clear only asserted irq flags on interrupt

Toke Høiland-Jørgensen (2):
libbpf: Prevent overriding errno when logging errors
libbpf: Fix map index used in error message

Tom Rix (1):
USB: cdc-acm: rework notification_buffer resizing

Tom Yan (1):
ALSA: usb-audio: ignore broken processing/extension unit

Tonghao Zhang (1):
net: openvswitch: introduce common code for flushing flows

Valmer Huhn (1):
serial: 8250_exar: Fix number of ports for Commtech PCIe cards

Vineeth Vijayan (1):
s390/cio: add cond_resched() in the slow_eval_known_fn() loop

Vinod Koul (1):
usb: renesas-xhci: remove version check

Wolfram Sang (1):
i2c: rcar: in slave mode, clear NACK earlier

Xianting Tian (1):
fs: prevent BUG_ON in submit_bh_wbc()

Xie He (1):

      drivers/net/wan/hdlc_x25: Added needed_headroom and a skb->len check

Xin He (1):
drm/virtio: fix memory leak in virtio_gpu_cleanup_object()

Xiubo Li (2):
ceph: fix potential mdsc use-after-free crash
ceph: do not access the kiocb after aio requests

Yangbo Lu (1):
ARM: dts: ls1021a: output PPS signal on FIPER2

Yauheni Kaliuta (1):
bpf: selftests: global_funcs: Check err_str before strstr

Yonghong Song (2):
bpf: Fix a rcu_sched stall issue with bpf task/task_file iterator
bpf: Avoid visit same object multiple times

Yufen Yu (1):
blkcg: fix memleak for iolatency

Zhenzhong Duan (1):
EDAC/mc: Call edac_inc_ue_error() before panic

brookxu (1):
ext4: limit the length of per-inode prealloc list

qiuguorui1 (1):
irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake

zhangyi (F) (2):
ext4: abort the filesystem if failed to async write metadata buffer
jbd2: abort journal if free a async write error metadata buffer

author maintainer
#1 lore raw
Documentation/admin-guide/ext4.rst +3 -0
index 9443fcef1876..f37d0743fd66 100644
@@ -482,6 +482,9 @@ Files in /sys/fs/ext4/<devname>:
         multiple of this tuning parameter if the stripe size is not set in the
         ext4 superblock
 
+  mb_max_inode_prealloc
+        The maximum length of per-inode ext4_prealloc_space list.
+
   mb_max_to_scan
         The maximum number of extents the multiblock allocator will search to
         find the best extent.
Makefile +1 -1
index f47073a3b474..5cf35650373b 100644
@@ -1,7 +1,7 @@
 # SPDX-License-Identifier: GPL-2.0
 VERSION = 5
 PATCHLEVEL = 8
-SUBLEVEL = 5
+SUBLEVEL = 6
 EXTRAVERSION =
 NAME = Kleptomaniac Octopus
 
arch/arm/boot/dts/ls1021a.dtsi +1 -1
index 760a68c163c8..b2ff27af090e 100644
@@ -772,7 +772,7 @@ ptp_clock@2d10e00 {
 			fsl,tmr-prsc    = <2>;
 			fsl,tmr-add     = <0xaaaaaaab>;
 			fsl,tmr-fiper1  = <999999995>;
-			fsl,tmr-fiper2  = <99990>;
+			fsl,tmr-fiper2  = <999999995>;
 			fsl,max-adj     = <499999999>;
 			fsl,extts-fifo;
 		};
arch/arm64/Makefile +2 -1
index 91e377770a6b..d5fe7c9e0be1 100644
@@ -158,7 +158,8 @@ zinstall install:
 PHONY += vdso_install
 vdso_install:
 	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@
-	$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@
+	$(if $(CONFIG_COMPAT_VDSO), \
+		$(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso32 $@)
 
 # We use MRPROPER_FILES and CLEAN_FILES now
 archclean:
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi +1 -1
index 5785bf0a807c..591f48a57535 100644
@@ -569,7 +569,7 @@ pinconf {
 				pins = "gpio63", "gpio64", "gpio65", "gpio66",
 				       "gpio67", "gpio68";
 				drive-strength = <2>;
-				bias-disable;
+				bias-pull-down;
 			};
 		};
 	};
arch/arm64/include/asm/kvm_arm.h +2 -1
index 51c1d9918999..1da8e3dc4455 100644
@@ -71,11 +71,12 @@
  * IMO:		Override CPSR.I and enable signaling with VI
  * FMO:		Override CPSR.F and enable signaling with VF
  * SWIO:	Turn set/way invalidates into set/way clean+invalidate
+ * PTW:		Take a stage2 fault if a stage1 walk steps in device memory
  */
 #define HCR_GUEST_FLAGS (HCR_TSC | HCR_TSW | HCR_TWE | HCR_TWI | HCR_VM | \
 			 HCR_BSU_IS | HCR_FB | HCR_TAC | \
 			 HCR_AMO | HCR_SWIO | HCR_TIDCP | HCR_RW | HCR_TLOR | \
-			 HCR_FMO | HCR_IMO)
+			 HCR_FMO | HCR_IMO | HCR_PTW )
 #define HCR_VIRT_EXCP_MASK (HCR_VSE | HCR_VI | HCR_VF)
 #define HCR_HOST_NVHE_FLAGS (HCR_RW | HCR_API | HCR_APK)
 #define HCR_HOST_VHE_FLAGS (HCR_RW | HCR_TGE | HCR_E2H)
arch/arm64/include/asm/smp.h +6 -1
index a0c8a0b65259..0eadbf933e35 100644
@@ -46,7 +46,12 @@ DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
  * Logical CPU mapping.
  */
 extern u64 __cpu_logical_map[NR_CPUS];
-#define cpu_logical_map(cpu)    __cpu_logical_map[cpu]
+extern u64 cpu_logical_map(int cpu);
+
+static inline void set_cpu_logical_map(int cpu, u64 hwid)
+{
+	__cpu_logical_map[cpu] = hwid;
+}
 
 struct seq_file;
 
arch/arm64/kernel/cpu_errata.c +2 -0
index 79728bfb5351..2c0b82db825b 100644
@@ -910,6 +910,8 @@ const struct arm64_cpu_capabilities arm64_errata[] = {
 		.desc = "ARM erratum 1418040",
 		.capability = ARM64_WORKAROUND_1418040,
 		ERRATA_MIDR_RANGE_LIST(erratum_1418040_list),
+		.type = (ARM64_CPUCAP_SCOPE_LOCAL_CPU |
+			 ARM64_CPUCAP_PERMITTED_FOR_LATE_CPU),
 	},
 #endif
 #ifdef CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT
arch/arm64/kernel/entry.S +0 -21
index 35de8ba60e3d..44445d471442 100644
@@ -169,19 +169,6 @@ alternative_cb_end
 	stp	x28, x29, [sp, #16 * 14]
 
 	.if	\el == 0
-	.if	\regsize == 32
-	/*
-	 * If we're returning from a 32-bit task on a system affected by
-	 * 1418040 then re-enable userspace access to the virtual counter.
-	 */
-#ifdef CONFIG_ARM64_ERRATUM_1418040
-alternative_if ARM64_WORKAROUND_1418040
-	mrs	x0, cntkctl_el1
-	orr	x0, x0, #2	// ARCH_TIMER_USR_VCT_ACCESS_EN
-	msr	cntkctl_el1, x0
-alternative_else_nop_endif
-#endif
-	.endif
 	clear_gp_regs
 	mrs	x21, sp_el0
 	ldr_this_cpu	tsk, __entry_task, x20
@@ -337,14 +324,6 @@ alternative_else_nop_endif
 	tst	x22, #PSR_MODE32_BIT		// native task?
 	b.eq	3f
 
-#ifdef CONFIG_ARM64_ERRATUM_1418040
-alternative_if ARM64_WORKAROUND_1418040
-	mrs	x0, cntkctl_el1
-	bic	x0, x0, #2			// ARCH_TIMER_USR_VCT_ACCESS_EN
-	msr	cntkctl_el1, x0
-alternative_else_nop_endif
-#endif
-
 #ifdef CONFIG_ARM64_ERRATUM_845719
 alternative_if ARM64_WORKAROUND_845719
 #ifdef CONFIG_PID_IN_CONTEXTIDR
arch/arm64/kernel/process.c +34 -0
index 6089638c7d43..d8a10cf28f82 100644
@@ -515,6 +515,39 @@ static void entry_task_switch(struct task_struct *next)
 	__this_cpu_write(__entry_task, next);
 }
 
+/*
+ * ARM erratum 1418040 handling, affecting the 32bit view of CNTVCT.
+ * Assuming the virtual counter is enabled at the beginning of times:
+ *
+ * - disable access when switching from a 64bit task to a 32bit task
+ * - enable access when switching from a 32bit task to a 64bit task
+ */
+static void erratum_1418040_thread_switch(struct task_struct *prev,
+					  struct task_struct *next)
+{
+	bool prev32, next32;
+	u64 val;
+
+	if (!(IS_ENABLED(CONFIG_ARM64_ERRATUM_1418040) &&
+	      cpus_have_const_cap(ARM64_WORKAROUND_1418040)))
+		return;
+
+	prev32 = is_compat_thread(task_thread_info(prev));
+	next32 = is_compat_thread(task_thread_info(next));
+
+	if (prev32 == next32)
+		return;
+
+	val = read_sysreg(cntkctl_el1);
+
+	if (!next32)
+		val |= ARCH_TIMER_USR_VCT_ACCESS_EN;
+	else
+		val &= ~ARCH_TIMER_USR_VCT_ACCESS_EN;
+
+	write_sysreg(val, cntkctl_el1);
+}
+
 /*
  * Thread switching.
  */
@@ -530,6 +563,7 @@ __notrace_funcgraph struct task_struct *__switch_to(struct task_struct *prev,
 	entry_task_switch(next);
 	uao_thread_switch(next);
 	ssbs_thread_switch(next);
+	erratum_1418040_thread_switch(prev, next);
 
 	/*
 	 * Complete any pending TLB or cache maintenance on this CPU in case
arch/arm64/kernel/setup.c +7 -1
index 93b3844cf442..07b7940951e2 100644
@@ -85,7 +85,7 @@ u64 __cacheline_aligned boot_args[4];
 void __init smp_setup_processor_id(void)
 {
 	u64 mpidr = read_cpuid_mpidr() & MPIDR_HWID_BITMASK;
-	cpu_logical_map(0) = mpidr;
+	set_cpu_logical_map(0, mpidr);
 
 	/*
 	 * clear __my_cpu_offset on boot CPU to avoid hang caused by
@@ -276,6 +276,12 @@ arch_initcall(reserve_memblock_reserved_regions);
 
 u64 __cpu_logical_map[NR_CPUS] = { [0 ... NR_CPUS-1] = INVALID_HWID };
 
+u64 cpu_logical_map(int cpu)
+{
+	return __cpu_logical_map[cpu];
+}
+EXPORT_SYMBOL_GPL(cpu_logical_map);
+
 void __init setup_arch(char **cmdline_p)
 {
 	init_mm.start_code = (unsigned long) _text;
arch/arm64/kernel/smp.c +3 -3
index e43a8ff19f0f..8cd6316a0d83 100644
@@ -567,7 +567,7 @@ acpi_map_gic_cpu_interface(struct acpi_madt_generic_interrupt *processor)
 		return;
 
 	/* map the logical cpu id to cpu MPIDR */
-	cpu_logical_map(cpu_count) = hwid;
+	set_cpu_logical_map(cpu_count, hwid);
 
 	cpu_madt_gicc[cpu_count] = *processor;
 
@@ -681,7 +681,7 @@ static void __init of_parse_and_init_cpus(void)
 			goto next;
 
 		pr_debug("cpu logical map 0x%llx\n", hwid);
-		cpu_logical_map(cpu_count) = hwid;
+		set_cpu_logical_map(cpu_count, hwid);
 
 		early_map_cpu_to_node(cpu_count, of_node_to_nid(dn));
 next:
@@ -722,7 +722,7 @@ void __init smp_init_cpus(void)
 	for (i = 1; i < nr_cpu_ids; i++) {
 		if (cpu_logical_map(i) != INVALID_HWID) {
 			if (smp_cpu_setup(i))
-				cpu_logical_map(i) = INVALID_HWID;
+				set_cpu_logical_map(i, INVALID_HWID);
 		}
 	}
 }
arch/arm64/kvm/hyp/switch.c +1 -1
index db1c4487d95d..9270b14157b5 100644
@@ -897,7 +897,7 @@ static void __hyp_text __hyp_call_panic_nvhe(u64 spsr, u64 elr, u64 par,
 	 * making sure it is a kernel address and not a PC-relative
 	 * reference.
 	 */
-	asm volatile("ldr %0, =__hyp_panic_string" : "=r" (str_va));
+	asm volatile("ldr %0, =%1" : "=r" (str_va) : "S" (__hyp_panic_string));
 
 	__hyp_do_panic(str_va,
 		       spsr, elr,
arch/mips/Kconfig +1 -0
index a7e40bb1e5bc..c43ad3b3cea4 100644
@@ -2203,6 +2203,7 @@ endchoice
 
 config KVM_GUEST
 	bool "KVM Guest Kernel"
+	depends on CPU_MIPS32_R2
 	depends on BROKEN_ON_SMP
 	help
 	  Select this option if building a guest kernel for KVM (Trap & Emulate)
arch/mips/kvm/Kconfig +2 -1
index 2bf02d849a3a..032b3fca6cbb 100644
@@ -37,10 +37,11 @@ choice
 
 config KVM_MIPS_TE
 	bool "Trap & Emulate"
+	depends on CPU_MIPS32_R2
 	help
 	  Use trap and emulate to virtualize 32-bit guests in user mode. This
 	  does not require any special hardware Virtualization support beyond
-	  standard MIPS32/64 r2 or later, but it does require the guest kernel
+	  standard MIPS32 r2 or later, but it does require the guest kernel
 	  to be configured with CONFIG_KVM_GUEST=y so that it resides in the
 	  user address segment.
 
arch/mips/vdso/genvdso.c +10 -0
index be57b832bbe0..ccba50ec8a40 100644
@@ -122,6 +122,7 @@ static void *map_vdso(const char *path, size_t *_size)
 	if (fstat(fd, &stat) != 0) {
 		fprintf(stderr, "%s: Failed to stat '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -130,6 +131,7 @@ static void *map_vdso(const char *path, size_t *_size)
 	if (addr == MAP_FAILED) {
 		fprintf(stderr, "%s: Failed to map '%s': %s\n", program_name,
 			path, strerror(errno));
+		close(fd);
 		return NULL;
 	}
 
@@ -139,6 +141,7 @@ static void *map_vdso(const char *path, size_t *_size)
 	if (memcmp(ehdr->e_ident, ELFMAG, SELFMAG) != 0) {
 		fprintf(stderr, "%s: '%s' is not an ELF file\n", program_name,
 			path);
+		close(fd);
 		return NULL;
 	}
 
@@ -150,6 +153,7 @@ static void *map_vdso(const char *path, size_t *_size)
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF class\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -161,6 +165,7 @@ static void *map_vdso(const char *path, size_t *_size)
 	default:
 		fprintf(stderr, "%s: '%s' has invalid ELF data order\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
@@ -168,15 +173,18 @@ static void *map_vdso(const char *path, size_t *_size)
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF machine (expected EM_MIPS)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	} else if (swap_uint16(ehdr->e_type) != ET_DYN) {
 		fprintf(stderr,
 			"%s: '%s' has invalid ELF type (expected ET_DYN)\n",
 			program_name, path);
+		close(fd);
 		return NULL;
 	}
 
 	*_size = stat.st_size;
+	close(fd);
 	return addr;
 }
 
@@ -293,10 +301,12 @@ int main(int argc, char **argv)
 	/* Calculate and write symbol offsets to <output file> */
 	if (!get_symbols(dbg_vdso_path, dbg_vdso)) {
 		unlink(out_path);
+		fclose(out_file);
 		return EXIT_FAILURE;
 	}
 
 	fprintf(out_file, "};\n");
+	fclose(out_file);
 
 	return EXIT_SUCCESS;
 }
arch/powerpc/perf/core-book3s.c +18 -5
index 01d70280d287..c6f9d7528381 100644
@@ -1517,9 +1517,16 @@ static int power_pmu_add(struct perf_event *event, int ef_flags)
 	ret = 0;
  out:
 	if (has_branch_stack(event)) {
-		power_pmu_bhrb_enable(event);
-		cpuhw->bhrb_filter = ppmu->bhrb_filter_map(
-					event->attr.branch_sample_type);
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
+				event->attr.branch_sample_type);
+
+		if (bhrb_filter != -1) {
+			cpuhw->bhrb_filter = bhrb_filter;
+			power_pmu_bhrb_enable(event);
+		}
 	}
 
 	perf_pmu_enable(event->pmu);
@@ -1841,7 +1848,6 @@ static int power_pmu_event_init(struct perf_event *event)
 	int n;
 	int err;
 	struct cpu_hw_events *cpuhw;
-	u64 bhrb_filter;
 
 	if (!ppmu)
 		return -ENOENT;
@@ -1947,7 +1953,10 @@ static int power_pmu_event_init(struct perf_event *event)
 	err = power_check_constraints(cpuhw, events, cflags, n + 1);
 
 	if (has_branch_stack(event)) {
-		bhrb_filter = ppmu->bhrb_filter_map(
+		u64 bhrb_filter = -1;
+
+		if (ppmu->bhrb_filter_map)
+			bhrb_filter = ppmu->bhrb_filter_map(
 					event->attr.branch_sample_type);
 
 		if (bhrb_filter == -1) {
@@ -2101,6 +2110,10 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
 
 		if (perf_event_overflow(event, &data, regs))
 			power_pmu_stop(event, 0);
+	} else if (period) {
+		/* Account for interrupt in case of invalid SIAR */
+		if (perf_event_account_interrupt(event))
+			power_pmu_stop(event, 0);
 	}
 }
 
arch/powerpc/platforms/Kconfig.cputype +1 -1
index 87737ec86d39..1dc9d3c81872 100644
@@ -36,7 +36,7 @@ config PPC_BOOK3S_6xx
 	select PPC_HAVE_PMU_SUPPORT
 	select PPC_HAVE_KUEP
 	select PPC_HAVE_KUAP
-	select HAVE_ARCH_VMAP_STACK
+	select HAVE_ARCH_VMAP_STACK if !ADB_PMU
 
 config PPC_BOOK3S_601
 	bool "PowerPC 601"
arch/powerpc/platforms/cell/Kconfig +1 -0
index 0f7c8241912b..f2ff359041ee 100644
@@ -44,6 +44,7 @@ config SPU_FS
 	tristate "SPU file system"
 	default m
 	depends on PPC_CELL
+	depends on COREDUMP
 	select SPU_BASE
 	help
 	  The SPU file system is used to access Synergistic Processing
arch/powerpc/sysdev/xive/native.c +2 -0
index 71b881e554fc..cb58ec7ce77a 100644
@@ -18,6 +18,7 @@
 #include <linux/delay.h>
 #include <linux/cpumask.h>
 #include <linux/mm.h>
+#include <linux/kmemleak.h>
 
 #include <asm/machdep.h>
 #include <asm/prom.h>
@@ -647,6 +648,7 @@ static bool xive_native_provision_pages(void)
 			pr_err("Failed to allocate provisioning page\n");
 			return false;
 		}
+		kmemleak_ignore(p);
 		opal_xive_donate_page(chip, __pa(p));
 	}
 	return true;
arch/x86/kernel/apic/vector.c +9 -7
index dae32d948bf2..f8a56b5dc29f 100644
@@ -161,6 +161,7 @@ static void apic_update_vector(struct irq_data *irqd, unsigned int newvec,
 		apicd->move_in_progress = true;
 		apicd->prev_vector = apicd->vector;
 		apicd->prev_cpu = apicd->cpu;
+		WARN_ON_ONCE(apicd->cpu == newcpu);
 	} else {
 		irq_matrix_free(vector_matrix, apicd->cpu, apicd->vector,
 				managed);
@@ -910,7 +911,7 @@ void send_cleanup_vector(struct irq_cfg *cfg)
 		__send_cleanup_vector(apicd);
 }
 
-static void __irq_complete_move(struct irq_cfg *cfg, unsigned vector)
+void irq_complete_move(struct irq_cfg *cfg)
 {
 	struct apic_chip_data *apicd;
 
@@ -918,15 +919,16 @@ static void __irq_complete_move(struct irq_cfg *cfg, unsigned vector)
 	if (likely(!apicd->move_in_progress))
 		return;
 
-	if (vector == apicd->vector && apicd->cpu == smp_processor_id())
+	/*
+	 * If the interrupt arrived on the new target CPU, cleanup the
+	 * vector on the old target CPU. A vector check is not required
+	 * because an interrupt can never move from one vector to another
+	 * on the same CPU.
+	 */
+	if (apicd->cpu == smp_processor_id())
 		__send_cleanup_vector(apicd);
 }
 
-void irq_complete_move(struct irq_cfg *cfg)
-{
-	__irq_complete_move(cfg, ~get_irq_regs()->orig_ax);
-}
-
 /*
  * Called from fixup_irqs() with @desc->lock held and interrupts disabled.
  */
arch/x86/kernel/smpboot.c +20 -6
index 518ac6bf752e..9fb6a8655ddf 100644
@@ -1604,14 +1604,28 @@ int native_cpu_disable(void)
 	if (ret)
 		return ret;
 
-	/*
-	 * Disable the local APIC. Otherwise IPI broadcasts will reach
-	 * it. It still responds normally to INIT, NMI, SMI, and SIPI
-	 * messages.
-	 */
-	apic_soft_disable();
 	cpu_disable_common();
 
+        /*
+         * Disable the local APIC. Otherwise IPI broadcasts will reach
+         * it. It still responds normally to INIT, NMI, SMI, and SIPI
+         * messages.
+         *
+         * Disabling the APIC must happen after cpu_disable_common()
+         * which invokes fixup_irqs().
+         *
+         * Disabling the APIC preserves already set bits in IRR, but
+         * an interrupt arriving after disabling the local APIC does not
+         * set the corresponding IRR bit.
+         *
+         * fixup_irqs() scans IRR for set bits so it can raise a not
+         * yet handled interrupt on the new destination CPU via an IPI
+         * but obviously it can't do so for IRR bits which are not set.
+         * IOW, interrupts arriving after disabling the local APIC will
+         * be lost.
+         */
+	apic_soft_disable();
+
 	return 0;
 }
 
block/bfq-cgroup.c +1 -1
index 68882b9b8f11..b791e2041e49 100644
@@ -332,7 +332,7 @@ static void bfqg_put(struct bfq_group *bfqg)
 		kfree(bfqg);
 }
 
-void bfqg_and_blkg_get(struct bfq_group *bfqg)
+static void bfqg_and_blkg_get(struct bfq_group *bfqg)
 {
 	/* see comments in bfq_bic_update_cgroup for why refcounting bfqg */
 	bfqg_get(bfqg);
block/bfq-iosched.h +0 -1
index cd224aaf9f52..703895224562 100644
@@ -986,7 +986,6 @@ struct bfq_group *bfq_find_set_group(struct bfq_data *bfqd,
 struct blkcg_gq *bfqg_to_blkg(struct bfq_group *bfqg);
 struct bfq_group *bfqq_group(struct bfq_queue *bfqq);
 struct bfq_group *bfq_create_group_hierarchy(struct bfq_data *bfqd, int node);
-void bfqg_and_blkg_get(struct bfq_group *bfqg);
 void bfqg_and_blkg_put(struct bfq_group *bfqg);
 
 #ifdef CONFIG_BFQ_GROUP_IOSCHED
block/bfq-wf2q.c +2 -10
index eb0e2a6daabe..26776bdbdf36 100644
@@ -533,9 +533,7 @@ static void bfq_get_entity(struct bfq_entity *entity)
 		bfqq->ref++;
 		bfq_log_bfqq(bfqq->bfqd, bfqq, "get_entity: %p %d",
 			     bfqq, bfqq->ref);
-	} else
-		bfqg_and_blkg_get(container_of(entity, struct bfq_group,
-					       entity));
+	}
 }
 
 /**
@@ -649,14 +647,8 @@ static void bfq_forget_entity(struct bfq_service_tree *st,
 
 	entity->on_st_or_in_serv = false;
 	st->wsum -= entity->weight;
-	if (is_in_service)
-		return;
-
-	if (bfqq)
+	if (bfqq && !is_in_service)
 		bfq_put_queue(bfqq);
-	else
-		bfqg_and_blkg_put(container_of(entity, struct bfq_group,
-					       entity));
 }
 
 /**
block/bio.c +5 -5
index a7366c02c9b5..b1883adc8f15 100644
@@ -738,8 +738,8 @@ static inline bool page_is_mergeable(const struct bio_vec *bv,
 		struct page *page, unsigned int len, unsigned int off,
 		bool *same_page)
 {
-	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) +
-		bv->bv_offset + bv->bv_len - 1;
+	size_t bv_end = bv->bv_offset + bv->bv_len;
+	phys_addr_t vec_end_addr = page_to_phys(bv->bv_page) + bv_end - 1;
 	phys_addr_t page_addr = page_to_phys(page);
 
 	if (vec_end_addr + 1 != page_addr + off)
@@ -748,9 +748,9 @@ static inline bool page_is_mergeable(const struct bio_vec *bv,
 		return false;
 
 	*same_page = ((vec_end_addr & PAGE_MASK) == page_addr);
-	if (!*same_page && pfn_to_page(PFN_DOWN(vec_end_addr)) + 1 != page)
-		return false;
-	return true;
+	if (*same_page)
+		return true;
+	return (bv->bv_page + bv_end / PAGE_SIZE) == (page + off / PAGE_SIZE);
 }
 
 /*
block/blk-cgroup.c +5 -3
index 0ecc897b225c..6e8f5e60b098 100644
@@ -1056,13 +1056,15 @@ int blkcg_init_queue(struct request_queue *q)
 	if (preloaded)
 		radix_tree_preload_end();
 
-	ret = blk_iolatency_init(q);
+	ret = blk_throtl_init(q);
 	if (ret)
 		goto err_destroy_all;
 
-	ret = blk_throtl_init(q);
-	if (ret)
+	ret = blk_iolatency_init(q);
+	if (ret) {
+		blk_throtl_exit(q);
 		goto err_destroy_all;
+	}
 	return 0;
 
 err_destroy_all:
block/blk-merge.c +10 -3
index f0b0bae075a0..75abba4d4591 100644
@@ -154,7 +154,7 @@ static inline unsigned get_max_io_size(struct request_queue *q,
 	if (max_sectors > start_offset)
 		return max_sectors - start_offset;
 
-	return sectors & (lbs - 1);
+	return sectors & ~(lbs - 1);
 }
 
 static inline unsigned get_max_segment_size(const struct request_queue *q,
@@ -534,10 +534,17 @@ int __blk_rq_map_sg(struct request_queue *q, struct request *rq,
 }
 EXPORT_SYMBOL(__blk_rq_map_sg);
 
+static inline unsigned int blk_rq_get_max_segments(struct request *rq)
+{
+	if (req_op(rq) == REQ_OP_DISCARD)
+		return queue_max_discard_segments(rq->q);
+	return queue_max_segments(rq->q);
+}
+
 static inline int ll_new_hw_segment(struct request *req, struct bio *bio,
 		unsigned int nr_phys_segs)
 {
-	if (req->nr_phys_segments + nr_phys_segs > queue_max_segments(req->q))
+	if (req->nr_phys_segments + nr_phys_segs > blk_rq_get_max_segments(req))
 		goto no_merge;
 
 	if (blk_integrity_merge_bio(req->q, req, bio) == false)
@@ -625,7 +632,7 @@ static int ll_merge_requests_fn(struct request_queue *q, struct request *req,
 		return 0;
 
 	total_phys_segments = req->nr_phys_segments + next->nr_phys_segments;
-	if (total_phys_segments > queue_max_segments(q))
+	if (total_phys_segments > blk_rq_get_max_segments(req))
 		return 0;
 
 	if (blk_integrity_merge_rq(q, req, next) == false)
block/blk-mq-sched.c +9 -0
index fdcc2c1dd178..fd850d9e68a1 100644
@@ -77,6 +77,15 @@ void blk_mq_sched_restart(struct blk_mq_hw_ctx *hctx)
 		return;
 	clear_bit(BLK_MQ_S_SCHED_RESTART, &hctx->state);
 
+	/*
+	 * Order clearing SCHED_RESTART and list_empty_careful(&hctx->dispatch)
+	 * in blk_mq_run_hw_queue(). Its pair is the barrier in
+	 * blk_mq_dispatch_rq_list(). So dispatch code won't see SCHED_RESTART,
+	 * meantime new request added to hctx->dispatch is missed to check in
+	 * blk_mq_run_hw_queue().
+	 */
+	smp_mb();
+
 	blk_mq_run_hw_queue(hctx, true);
 }
 
block/blk-mq.c +11 -1
index 4e0d173beaa3..a366726094a8 100644
@@ -1323,6 +1323,15 @@ bool blk_mq_dispatch_rq_list(struct request_queue *q, struct list_head *list,
 		list_splice_tail_init(list, &hctx->dispatch);
 		spin_unlock(&hctx->lock);
 
+		/*
+		 * Order adding requests to hctx->dispatch and checking
+		 * SCHED_RESTART flag. The pair of this smp_mb() is the one
+		 * in blk_mq_sched_restart(). Avoid restart code path to
+		 * miss the new added requests to hctx->dispatch, meantime
+		 * SCHED_RESTART is observed here.
+		 */
+		smp_mb();
+
 		/*
 		 * If SCHED_RESTART was set by the caller of this function and
 		 * it is no longer set that means that it was cleared by another
@@ -1909,7 +1918,8 @@ static blk_status_t __blk_mq_try_issue_directly(struct blk_mq_hw_ctx *hctx,
 	if (bypass_insert)
 		return BLK_STS_RESOURCE;
 
-	blk_mq_request_bypass_insert(rq, false, run_queue);
+	blk_mq_sched_insert_request(rq, false, run_queue, false);
+
 	return BLK_STS_OK;
 }
 
crypto/af_alg.c +10 -3
index 5882ed46f1ad..e31cf43df2e0 100644
@@ -16,6 +16,7 @@
 #include <linux/module.h>
 #include <linux/net.h>
 #include <linux/rwsem.h>
+#include <linux/sched.h>
 #include <linux/sched/signal.h>
 #include <linux/security.h>
 
@@ -847,9 +848,15 @@ int af_alg_sendmsg(struct socket *sock, struct msghdr *msg, size_t size,
 	}
 
 	lock_sock(sk);
-	if (ctx->init && (init || !ctx->more)) {
-		err = -EINVAL;
-		goto unlock;
+	if (ctx->init && !ctx->more) {
+		if (ctx->used) {
+			err = -EINVAL;
+			goto unlock;
+		}
+
+		pr_info_once(
+			"%s sent an empty control message without MSG_MORE.\n",
+			current->comm);
 	}
 	ctx->init = true;
 
drivers/base/core.c +8 -4
index 05d414e9e8a4..0799e1445f65 100644
@@ -3988,9 +3988,9 @@ static inline bool fwnode_is_primary(struct fwnode_handle *fwnode)
  */
 void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 {
-	if (fwnode) {
-		struct fwnode_handle *fn = dev->fwnode;
+	struct fwnode_handle *fn = dev->fwnode;
 
+	if (fwnode) {
 		if (fwnode_is_primary(fn))
 			fn = fn->secondary;
 
@@ -4000,8 +4000,12 @@ void set_primary_fwnode(struct device *dev, struct fwnode_handle *fwnode)
 		}
 		dev->fwnode = fwnode;
 	} else {
-		dev->fwnode = fwnode_is_primary(dev->fwnode) ?
-			dev->fwnode->secondary : NULL;
+		if (fwnode_is_primary(fn)) {
+			dev->fwnode = fn->secondary;
+			fn->secondary = NULL;
+		} else {
+			dev->fwnode = NULL;
+		}
 	}
 }
 EXPORT_SYMBOL_GPL(set_primary_fwnode);
drivers/base/power/main.c +10 -6
index 9dd85bea4026..205a06752ca9 100644
@@ -1606,13 +1606,17 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
 	}
 
 	/*
-	 * If a device configured to wake up the system from sleep states
-	 * has been suspended at run time and there's a resume request pending
-	 * for it, this is equivalent to the device signaling wakeup, so the
-	 * system suspend operation should be aborted.
+	 * Wait for possible runtime PM transitions of the device in progress
+	 * to complete and if there's a runtime resume request pending for it,
+	 * resume it before proceeding with invoking the system-wide suspend
+	 * callbacks for it.
+	 *
+	 * If the system-wide suspend callbacks below change the configuration
+	 * of the device, they must disable runtime PM for it or otherwise
+	 * ensure that its runtime-resume callbacks will not be confused by that
+	 * change in case they are invoked going forward.
 	 */
-	if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
-		pm_wakeup_event(dev, 0);
+	pm_runtime_barrier(dev);
 
 	if (pm_wakeup_pending()) {
 		dev->power.direct_complete = false;
drivers/block/loop.c +18 -15
index 776083963ee6..84433922aed1 100644
@@ -877,6 +877,7 @@ static void loop_config_discard(struct loop_device *lo)
 	struct file *file = lo->lo_backing_file;
 	struct inode *inode = file->f_mapping->host;
 	struct request_queue *q = lo->lo_queue;
+	u32 granularity, max_discard_sectors;
 
 	/*
 	 * If the backing device is a block device, mirror its zeroing
@@ -889,11 +890,10 @@ static void loop_config_discard(struct loop_device *lo)
 		struct request_queue *backingq;
 
 		backingq = bdev_get_queue(inode->i_bdev);
-		blk_queue_max_discard_sectors(q,
-			backingq->limits.max_write_zeroes_sectors);
 
-		blk_queue_max_write_zeroes_sectors(q,
-			backingq->limits.max_write_zeroes_sectors);
+		max_discard_sectors = backingq->limits.max_write_zeroes_sectors;
+		granularity = backingq->limits.discard_granularity ?:
+			queue_physical_block_size(backingq);
 
 	/*
 	 * We use punch hole to reclaim the free space used by the
@@ -902,23 +902,26 @@ static void loop_config_discard(struct loop_device *lo)
 	 * useful information.
 	 */
 	} else if (!file->f_op->fallocate || lo->lo_encrypt_key_size) {
-		q->limits.discard_granularity = 0;
-		q->limits.discard_alignment = 0;
-		blk_queue_max_discard_sectors(q, 0);
-		blk_queue_max_write_zeroes_sectors(q, 0);
+		max_discard_sectors = 0;
+		granularity = 0;
 
 	} else {
-		q->limits.discard_granularity = inode->i_sb->s_blocksize;
-		q->limits.discard_alignment = 0;
-
-		blk_queue_max_discard_sectors(q, UINT_MAX >> 9);
-		blk_queue_max_write_zeroes_sectors(q, UINT_MAX >> 9);
+		max_discard_sectors = UINT_MAX >> 9;
+		granularity = inode->i_sb->s_blocksize;
 	}
 
-	if (q->limits.max_write_zeroes_sectors)
+	if (max_discard_sectors) {
+		q->limits.discard_granularity = granularity;
+		blk_queue_max_discard_sectors(q, max_discard_sectors);
+		blk_queue_max_write_zeroes_sectors(q, max_discard_sectors);
 		blk_queue_flag_set(QUEUE_FLAG_DISCARD, q);
-	else
+	} else {
+		q->limits.discard_granularity = 0;
+		blk_queue_max_discard_sectors(q, 0);
+		blk_queue_max_write_zeroes_sectors(q, 0);
 		blk_queue_flag_clear(QUEUE_FLAG_DISCARD, q);
+	}
+	q->limits.discard_alignment = 0;
 }
 
 static void loop_unprepare_queue(struct loop_device *lo)
drivers/block/null_blk_main.c +1 -1
index 87b31f9ca362..8cf13ea11cd2 100644
@@ -1139,7 +1139,7 @@ static int null_handle_rq(struct nullb_cmd *cmd)
 		len = bvec.bv_len;
 		err = null_transfer(nullb, bvec.bv_page, len, bvec.bv_offset,
 				     op_is_write(req_op(rq)), sector,
-				     req_op(rq) & REQ_FUA);
+				     rq->cmd_flags & REQ_FUA);
 		if (err) {
 			spin_unlock_irq(&nullb->lock);
 			return err;
drivers/block/virtio_blk.c +23 -8
index 980df853ee49..99991b6a6f0e 100644
@@ -126,16 +126,31 @@ static int virtblk_setup_discard_write_zeroes(struct request *req, bool unmap)
 	if (!range)
 		return -ENOMEM;
 
-	__rq_for_each_bio(bio, req) {
-		u64 sector = bio->bi_iter.bi_sector;
-		u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
-
-		range[n].flags = cpu_to_le32(flags);
-		range[n].num_sectors = cpu_to_le32(num_sectors);
-		range[n].sector = cpu_to_le64(sector);
-		n++;
+	/*
+	 * Single max discard segment means multi-range discard isn't
+	 * supported, and block layer only runs contiguity merge like
+	 * normal RW request. So we can't reply on bio for retrieving
+	 * each range info.
+	 */
+	if (queue_max_discard_segments(req->q) == 1) {
+		range[0].flags = cpu_to_le32(flags);
+		range[0].num_sectors = cpu_to_le32(blk_rq_sectors(req));
+		range[0].sector = cpu_to_le64(blk_rq_pos(req));
+		n = 1;
+	} else {
+		__rq_for_each_bio(bio, req) {
+			u64 sector = bio->bi_iter.bi_sector;
+			u32 num_sectors = bio->bi_iter.bi_size >> SECTOR_SHIFT;
+
+			range[n].flags = cpu_to_le32(flags);
+			range[n].num_sectors = cpu_to_le32(num_sectors);
+			range[n].sector = cpu_to_le64(sector);
+			n++;
+		}
 	}
 
+	WARN_ON_ONCE(n != segments);
+
 	req->special_vec.bv_page = virt_to_page(range);
 	req->special_vec.bv_offset = offset_in_page(range);
 	req->special_vec.bv_len = sizeof(*range) * segments;
drivers/cpufreq/intel_pstate.c +12 -6
index c7540ad28995..8c730a47e053 100644
@@ -649,11 +649,12 @@ static int intel_pstate_set_energy_pref_index(struct cpudata *cpu_data,
 	mutex_lock(&intel_pstate_limits_lock);
 
 	if (boot_cpu_has(X86_FEATURE_HWP_EPP)) {
-		u64 value;
-
-		ret = rdmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, &value);
-		if (ret)
-			goto return_pref;
+		/*
+		 * Use the cached HWP Request MSR value, because the register
+		 * itself may be updated by intel_pstate_hwp_boost_up() or
+		 * intel_pstate_hwp_boost_down() at any time.
+		 */
+		u64 value = READ_ONCE(cpu_data->hwp_req_cached);
 
 		value &= ~GENMASK_ULL(31, 24);
 
@@ -661,13 +662,18 @@ static int intel_pstate_set_energy_pref_index(struct cpudata *cpu_data,
 			epp = epp_values[pref_index - 1];
 
 		value |= (u64)epp << 24;
+		/*
+		 * The only other updater of hwp_req_cached in the active mode,
+		 * intel_pstate_hwp_set(), is called under the same lock as this
+		 * function, so it cannot run in parallel with the update below.
+		 */
+		WRITE_ONCE(cpu_data->hwp_req_cached, value);
 		ret = wrmsrl_on_cpu(cpu_data->cpu, MSR_HWP_REQUEST, value);
 	} else {
 		if (epp == -EINVAL)
 			epp = (pref_index - 1) << 2;
 		ret = intel_pstate_set_epb(cpu_data->cpu, epp);
 	}
-return_pref:
 	mutex_unlock(&intel_pstate_limits_lock);
 
 	return ret;
drivers/devfreq/devfreq.c +2 -2
index 46c84dce6544..5f8d94e812c8 100644
@@ -1690,9 +1690,9 @@ static int devfreq_summary_show(struct seq_file *s, void *data)
 #endif
 
 		mutex_lock(&devfreq->lock);
-		cur_freq = devfreq->previous_freq,
+		cur_freq = devfreq->previous_freq;
 		get_freq_range(devfreq, &min_freq, &max_freq);
-		polling_ms = devfreq->profile->polling_ms,
+		polling_ms = devfreq->profile->polling_ms;
 		mutex_unlock(&devfreq->lock);
 
 		seq_printf(s,
drivers/dma/Kconfig +1 -0
index de41d7928bff..984354ca877d 100644
@@ -285,6 +285,7 @@ config INTEL_IDMA64
 config INTEL_IDXD
 	tristate "Intel Data Accelerators support"
 	depends on PCI && X86_64
+	depends on PCI_MSI
 	select DMA_ENGINE
 	select SBITMAP
 	help
drivers/edac/edac_mc.c +2 -2
index 5813e931f2f0..01ff71f7b645 100644
@@ -950,6 +950,8 @@ static void edac_ue_error(struct edac_raw_error_desc *e)
 			e->other_detail);
 	}
 
+	edac_inc_ue_error(e);
+
 	if (edac_mc_get_panic_on_ue()) {
 		panic("UE %s%son %s (%s page:0x%lx offset:0x%lx grain:%ld%s%s)\n",
 			e->msg,
@@ -959,8 +961,6 @@ static void edac_ue_error(struct edac_raw_error_desc *e)
 			*e->other_detail ? " - " : "",
 			e->other_detail);
 	}
-
-	edac_inc_ue_error(e);
 }
 
 static void edac_inc_csrow(struct edac_raw_error_desc *e, int row, int chan)
drivers/edac/ie31200_edac.c +47 -3

88 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gfx_v9.c +22 -9
index c7fd0c47b254..1102de76d876 100644
@@ -195,19 +195,32 @@ static uint32_t get_sdma_rlc_reg_offset(struct amdgpu_device *adev,
 				unsigned int engine_id,
 				unsigned int queue_id)
 {
-	uint32_t sdma_engine_reg_base[2] = {
-		SOC15_REG_OFFSET(SDMA0, 0,
-				 mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL,
-		SOC15_REG_OFFSET(SDMA1, 0,
-				 mmSDMA1_RLC0_RB_CNTL) - mmSDMA1_RLC0_RB_CNTL
-	};
-	uint32_t retval = sdma_engine_reg_base[engine_id]
+	uint32_t sdma_engine_reg_base = 0;
+	uint32_t sdma_rlc_reg_offset;
+
+	switch (engine_id) {
+	default:
+		dev_warn(adev->dev,
+			 "Invalid sdma engine id (%d), using engine id 0\n",
+			 engine_id);
+		fallthrough;
+	case 0:
+		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA0, 0,
+				mmSDMA0_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
+		break;
+	case 1:
+		sdma_engine_reg_base = SOC15_REG_OFFSET(SDMA1, 0,
+				mmSDMA1_RLC0_RB_CNTL) - mmSDMA0_RLC0_RB_CNTL;
+		break;
+	}
+
+	sdma_rlc_reg_offset = sdma_engine_reg_base
 		+ queue_id * (mmSDMA0_RLC1_RB_CNTL - mmSDMA0_RLC0_RB_CNTL);
 
 	pr_debug("RLC register offset for SDMA%d RLC%d: 0x%x\n", engine_id,
-			queue_id, retval);
+		 queue_id, sdma_rlc_reg_offset);
 
-	return retval;
+	return sdma_rlc_reg_offset;
 }
 
 static inline struct v9_mqd *get_mqd(void *mqd)
drivers/gpu/drm/amd/amdgpu/amdgpu_connectors.c +12 -4
index f355d9a752d2..a1aec205435d 100644
@@ -716,8 +716,10 @@ amdgpu_connector_lvds_detect(struct drm_connector *connector, bool force)
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (encoder) {
@@ -854,8 +856,10 @@ amdgpu_connector_vga_detect(struct drm_connector *connector, bool force)
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	encoder = amdgpu_connector_best_single_encoder(connector);
@@ -977,8 +981,10 @@ amdgpu_connector_dvi_detect(struct drm_connector *connector, bool force)
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
@@ -1328,8 +1334,10 @@ amdgpu_connector_dp_detect(struct drm_connector *connector, bool force)
 
 	if (!drm_kms_helper_is_poll_worker()) {
 		r = pm_runtime_get_sync(connector->dev->dev);
-		if (r < 0)
+		if (r < 0) {
+			pm_runtime_put_autosuspend(connector->dev->dev);
 			return connector_status_disconnected;
+		}
 	}
 
 	if (!force && amdgpu_connector_check_hpd_status_unchanged(connector)) {
drivers/gpu/drm/amd/amdgpu/amdgpu_display.c +3 -2
index f7143d927b6d..5e51f0acf744 100644
@@ -282,7 +282,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set,
 
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_crtc_helper_set_config(set, ctx);
 
@@ -297,7 +297,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set,
 	   take the current one */
 	if (active && !adev->have_disp_power_ref) {
 		adev->have_disp_power_ref = true;
-		return ret;
+		goto out;
 	}
 	/* if we have no active crtcs, then drop the power ref
 	   we got before */
@@ -306,6 +306,7 @@ int amdgpu_display_crtc_set_config(struct drm_mode_set *set,
 		adev->have_disp_power_ref = false;
 	}
 
+out:
 	/* drop the power reference we got coming in here */
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +2 -1
index 126e74758a34..d73924e35a57 100644
@@ -1373,11 +1373,12 @@ long amdgpu_drm_ioctl(struct file *filp,
 	dev = file_priv->minor->dev;
 	ret = pm_runtime_get_sync(dev->dev);
 	if (ret < 0)
-		return ret;
+		goto out;
 
 	ret = drm_ioctl(filp, cmd, arg);
 
 	pm_runtime_mark_last_busy(dev->dev);
+out:
 	pm_runtime_put_autosuspend(dev->dev);
 	return ret;
 }
drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +3 -1
index 3414e119f0cb..f5a6ee7c2eaa 100644
@@ -754,8 +754,10 @@ static int amdgpu_debugfs_gpu_recover(struct seq_file *m, void *data)
 	int r;
 
 	r = pm_runtime_get_sync(dev->dev);
-	if (r < 0)
+	if (r < 0) {
+		pm_runtime_put_autosuspend(dev->dev);
 		return 0;
+	}
 
 	seq_printf(m, "gpu recover\n");
 	amdgpu_device_gpu_recover(adev, NULL);
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +6 -1
index 21292098bc02..0a3b7d9df8a5 100644
@@ -663,8 +663,12 @@ static int amdgpu_info_ioctl(struct drm_device *dev, void *data, struct drm_file
 		 * in the bitfields */
 		if (se_num == AMDGPU_INFO_MMR_SE_INDEX_MASK)
 			se_num = 0xffffffff;
+		else if (se_num >= AMDGPU_GFX_MAX_SE)
+			return -EINVAL;
 		if (sh_num == AMDGPU_INFO_MMR_SH_INDEX_MASK)
 			sh_num = 0xffffffff;
+		else if (sh_num >= AMDGPU_GFX_MAX_SH_PER_SE)
+			return -EINVAL;
 
 		if (info->read_mmr_reg.count > 128)
 			return -EINVAL;
@@ -992,7 +996,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 
 	r = pm_runtime_get_sync(dev->dev);
 	if (r < 0)
-		return r;
+		goto pm_put;
 
 	fpriv = kzalloc(sizeof(*fpriv), GFP_KERNEL);
 	if (unlikely(!fpriv)) {
@@ -1043,6 +1047,7 @@ int amdgpu_driver_open_kms(struct drm_device *dev, struct drm_file *file_priv)
 
 out_suspend:
 	pm_runtime_mark_last_busy(dev->dev);
+pm_put:
 	pm_runtime_put_autosuspend(dev->dev);
 
 	return r;
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c +165 -55

605 lines not on this page · raw message

drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c +10 -11
index 50fe08bf2f72..3f47f35eedff 100644
@@ -1240,7 +1240,6 @@ void amdgpu_ras_debugfs_remove(struct amdgpu_device *adev,
 	if (!obj || !obj->ent)
 		return;
 
-	debugfs_remove(obj->ent);
 	obj->ent = NULL;
 	put_obj(obj);
 }
@@ -1254,7 +1253,6 @@ static void amdgpu_ras_debugfs_remove_all(struct amdgpu_device *adev)
 		amdgpu_ras_debugfs_remove(adev, &obj->head);
 	}
 
-	debugfs_remove_recursive(con->dir);
 	con->dir = NULL;
 }
 /* debugfs end */
@@ -1914,9 +1912,8 @@ int amdgpu_ras_init(struct amdgpu_device *adev)
 	amdgpu_ras_check_supported(adev, &con->hw_supported,
 			&con->supported);
 	if (!con->hw_supported) {
-		amdgpu_ras_set_context(adev, NULL);
-		kfree(con);
-		return 0;
+		r = 0;
+		goto err_out;
 	}
 
 	con->features = 0;
@@ -1927,29 +1924,31 @@ int amdgpu_ras_init(struct amdgpu_device *adev)
 	if (adev->nbio.funcs->init_ras_controller_interrupt) {
 		r = adev->nbio.funcs->init_ras_controller_interrupt(adev);
 		if (r)
-			return r;
+			goto err_out;
 	}
 
 	if (adev->nbio.funcs->init_ras_err_event_athub_interrupt) {
 		r = adev->nbio.funcs->init_ras_err_event_athub_interrupt(adev);
 		if (r)
-			return r;
+			goto err_out;
 	}
 
 	amdgpu_ras_mask &= AMDGPU_RAS_BLOCK_MASK;
 
-	if (amdgpu_ras_fs_init(adev))
-		goto fs_out;
+	if (amdgpu_ras_fs_init(adev)) {
+		r = -EINVAL;
+		goto err_out;
+	}
 
 	dev_info(adev->dev, "RAS INFO: ras initialized successfully, "
 			"hardware ability[%x] ras_mask[%x]\n",
 			con->hw_supported, con->supported);
 	return 0;
-fs_out:
+err_out:
 	amdgpu_ras_set_context(adev, NULL);
 	kfree(con);
 
-	return -EINVAL;
+	return r;
 }
 
 /* helper function to handle common stuff in ip late init phase */
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c +2 -4
index fac77a86c04b..2c7e6efeea2f 100644
@@ -6854,10 +6854,8 @@ static void gfx_v10_0_update_medium_grain_clock_gating(struct amdgpu_device *ade
 		def = data = RREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE);
 		data &= ~(RLC_CGTT_MGCG_OVERRIDE__GRBM_CGTT_SCLK_OVERRIDE_MASK |
 			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGCG_OVERRIDE_MASK |
-			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK);
-
-		/* only for Vega10 & Raven1 */
-		data |= RLC_CGTT_MGCG_OVERRIDE__RLC_CGTT_SCLK_OVERRIDE_MASK;
+			  RLC_CGTT_MGCG_OVERRIDE__GFXIP_MGLS_OVERRIDE_MASK |
+			  RLC_CGTT_MGCG_OVERRIDE__ENABLE_CGTS_LEGACY_MASK);
 
 		if (def != data)
 			WREG32_SOC15(GC, 0, mmRLC_CGTT_MGCG_OVERRIDE, data);
drivers/gpu/drm/amd/amdkfd/kfd_process.c +3 -1
index 0e0c42e9f6a3..6520a920cad4 100644
@@ -1003,8 +1003,10 @@ struct kfd_process_device *kfd_bind_process_to_device(struct kfd_dev *dev,
 	 */
 	if (!pdd->runtime_inuse) {
 		err = pm_runtime_get_sync(dev->ddev->dev);
-		if (err < 0)
+		if (err < 0) {
+			pm_runtime_put_autosuspend(dev->ddev->dev);
 			return ERR_PTR(err);
+		}
 	}
 
 	err = kfd_iommu_bind_process_to_device(pdd);
drivers/gpu/drm/amd/amdkfd/kfd_topology.c +15 -5
index bb77f7af2b6d..dc3c4149f860 100644
@@ -632,8 +632,10 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
 
 	ret = kobject_init_and_add(dev->kobj_node, &node_type,
 			sys_props.kobj_nodes, "%d", id);
-	if (ret < 0)
+	if (ret < 0) {
+		kobject_put(dev->kobj_node);
 		return ret;
+	}
 
 	dev->kobj_mem = kobject_create_and_add("mem_banks", dev->kobj_node);
 	if (!dev->kobj_mem)
@@ -680,8 +682,10 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
 			return -ENOMEM;
 		ret = kobject_init_and_add(mem->kobj, &mem_type,
 				dev->kobj_mem, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(mem->kobj);
 			return ret;
+		}
 
 		mem->attr.name = "properties";
 		mem->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -699,8 +703,10 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
 			return -ENOMEM;
 		ret = kobject_init_and_add(cache->kobj, &cache_type,
 				dev->kobj_cache, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(cache->kobj);
 			return ret;
+		}
 
 		cache->attr.name = "properties";
 		cache->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -718,8 +724,10 @@ static int kfd_build_sysfs_node_entry(struct kfd_topology_device *dev,
 			return -ENOMEM;
 		ret = kobject_init_and_add(iolink->kobj, &iolink_type,
 				dev->kobj_iolink, "%d", i);
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(iolink->kobj);
 			return ret;
+		}
 
 		iolink->attr.name = "properties";
 		iolink->attr.mode = KFD_SYSFS_FILE_MODE;
@@ -798,8 +806,10 @@ static int kfd_topology_update_sysfs(void)
 		ret = kobject_init_and_add(sys_props.kobj_topology,
 				&sysprops_type,  &kfd_device->kobj,
 				"topology");
-		if (ret < 0)
+		if (ret < 0) {
+			kobject_put(sys_props.kobj_topology);
 			return ret;
+		}
 
 		sys_props.kobj_nodes = kobject_create_and_add("nodes",
 				sys_props.kobj_topology);
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c +40 -41

105 lines not on this page · raw message

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_color.c +8 -2
index 4dfb6b55bb2e..b321ff654df4 100644
@@ -195,10 +195,13 @@ static int __set_legacy_tf(struct dc_transfer_func *func,
 			   bool has_rom)
 {
 	struct dc_gamma *gamma = NULL;
+	struct calculate_buffer cal_buffer = {0};
 	bool res;
 
 	ASSERT(lut && lut_size == MAX_COLOR_LEGACY_LUT_ENTRIES);
 
+	cal_buffer.buffer_index = -1;
+
 	gamma = dc_create_gamma();
 	if (!gamma)
 		return -ENOMEM;
@@ -208,7 +211,7 @@ static int __set_legacy_tf(struct dc_transfer_func *func,
 	__drm_lut_to_dc_gamma(lut, gamma, true);
 
 	res = mod_color_calculate_regamma_params(func, gamma, true, has_rom,
-						 NULL);
+						 NULL, &cal_buffer);
 
 	dc_gamma_release(&gamma);
 
@@ -221,10 +224,13 @@ static int __set_output_tf(struct dc_transfer_func *func,
 			   bool has_rom)
 {
 	struct dc_gamma *gamma = NULL;
+	struct calculate_buffer cal_buffer = {0};
 	bool res;
 
 	ASSERT(lut && lut_size == MAX_COLOR_LUT_ENTRIES);
 
+	cal_buffer.buffer_index = -1;
+
 	gamma = dc_create_gamma();
 	if (!gamma)
 		return -ENOMEM;
@@ -248,7 +254,7 @@ static int __set_output_tf(struct dc_transfer_func *func,
 		 */
 		gamma->type = GAMMA_CS_TFM_1D;
 		res = mod_color_calculate_regamma_params(func, gamma, false,
-							 has_rom, NULL);
+							 has_rom, NULL, &cal_buffer);
 	}
 
 	dc_gamma_release(&gamma);
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.c +8 -8
index 07b2f9399671..842abb4c475b 100644
@@ -121,35 +121,35 @@ void enc1_update_generic_info_packet(
 	switch (packet_index) {
 	case 0:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC0_FRAME_UPDATE, 1);
+				AFMT_GENERIC0_IMMEDIATE_UPDATE, 1);
 		break;
 	case 1:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC1_FRAME_UPDATE, 1);
+				AFMT_GENERIC1_IMMEDIATE_UPDATE, 1);
 		break;
 	case 2:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC2_FRAME_UPDATE, 1);
+				AFMT_GENERIC2_IMMEDIATE_UPDATE, 1);
 		break;
 	case 3:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC3_FRAME_UPDATE, 1);
+				AFMT_GENERIC3_IMMEDIATE_UPDATE, 1);
 		break;
 	case 4:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC4_FRAME_UPDATE, 1);
+				AFMT_GENERIC4_IMMEDIATE_UPDATE, 1);
 		break;
 	case 5:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC5_FRAME_UPDATE, 1);
+				AFMT_GENERIC5_IMMEDIATE_UPDATE, 1);
 		break;
 	case 6:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC6_FRAME_UPDATE, 1);
+				AFMT_GENERIC6_IMMEDIATE_UPDATE, 1);
 		break;
 	case 7:
 		REG_UPDATE(AFMT_VBI_PACKET_CONTROL1,
-				AFMT_GENERIC7_FRAME_UPDATE, 1);
+				AFMT_GENERIC7_IMMEDIATE_UPDATE, 1);
 		break;
 	default:
 		break;
drivers/gpu/drm/amd/display/dc/dcn10/dcn10_stream_encoder.h +14 -0
index f9b9e221c698..7507000a99ac 100644
@@ -273,7 +273,14 @@ struct dcn10_stream_enc_registers {
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_FRAME_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC0_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC1_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC2_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC3_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC4_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_IMMEDIATE_UPDATE, mask_sh),\
+	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_IMMEDIATE_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC5_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC6_FRAME_UPDATE, mask_sh),\
 	SE_SF(DIG0_AFMT_VBI_PACKET_CONTROL1, AFMT_GENERIC7_FRAME_UPDATE, mask_sh),\
@@ -337,7 +344,14 @@ struct dcn10_stream_enc_registers {
 	type AFMT_GENERIC2_FRAME_UPDATE;\
 	type AFMT_GENERIC3_FRAME_UPDATE;\
 	type AFMT_GENERIC4_FRAME_UPDATE;\
+	type AFMT_GENERIC0_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC1_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC2_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC3_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC4_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC5_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC6_IMMEDIATE_UPDATE;\
+	type AFMT_GENERIC7_IMMEDIATE_UPDATE;\
 	type AFMT_GENERIC5_FRAME_UPDATE;\
 	type AFMT_GENERIC6_FRAME_UPDATE;\
 	type AFMT_GENERIC7_FRAME_UPDATE;\
drivers/gpu/drm/amd/display/modules/color/Makefile +1 -1
index 65c33a76951a..e66c19a840c2 100644
@@ -23,7 +23,7 @@
 # Makefile for the color sub-module of DAL.
 #
 
-MOD_COLOR = color_gamma.o
+MOD_COLOR = color_gamma.o color_table.o
 
 AMD_DAL_MOD_COLOR = $(addprefix $(AMDDALPATH)/modules/color/,$(MOD_COLOR))
 #$(info ************  DAL COLOR MODULE MAKEFILE ************)
drivers/gpu/drm/amd/display/modules/color/color_gamma.c +61 -54

326 lines not on this page · raw message

drivers/gpu/drm/amd/display/modules/color/color_gamma.h +15 -3
index 7f56226ba77a..37ffbef6602b 100644
@@ -26,6 +26,8 @@
 #ifndef COLOR_MOD_COLOR_GAMMA_H_
 #define COLOR_MOD_COLOR_GAMMA_H_
 
+#include "color_table.h"
+
 struct dc_transfer_func;
 struct dc_gamma;
 struct dc_transfer_func_distributed_points;
@@ -83,6 +85,12 @@ struct freesync_hdr_tf_params {
 	unsigned int skip_tm; // skip tm
 };
 
+struct calculate_buffer {
+	int buffer_index;
+	struct fixed31_32 buffer[NUM_PTS_IN_REGION];
+	struct fixed31_32 gamma_of_2;
+};
+
 struct translate_from_linear_space_args {
 	struct fixed31_32 arg;
 	struct fixed31_32 a0;
@@ -90,6 +98,7 @@ struct translate_from_linear_space_args {
 	struct fixed31_32 a2;
 	struct fixed31_32 a3;
 	struct fixed31_32 gamma;
+	struct calculate_buffer *cal_buffer;
 };
 
 void setup_x_points_distribution(void);
@@ -99,7 +108,8 @@ void precompute_de_pq(void);
 
 bool mod_color_calculate_regamma_params(struct dc_transfer_func *output_tf,
 		const struct dc_gamma *ramp, bool mapUserRamp, bool canRomBeUsed,
-		const struct freesync_hdr_tf_params *fs_params);
+		const struct freesync_hdr_tf_params *fs_params,
+		struct calculate_buffer *cal_buffer);
 
 bool mod_color_calculate_degamma_params(struct dc_color_caps *dc_caps,
 		struct dc_transfer_func *output_tf,
@@ -109,10 +119,12 @@ bool mod_color_calculate_degamma_curve(enum dc_transfer_func_predefined trans,
 				struct dc_transfer_func_distributed_points *points);
 
 bool calculate_user_regamma_coeff(struct dc_transfer_func *output_tf,
-		const struct regamma_lut *regamma);
+		const struct regamma_lut *regamma,
+		struct calculate_buffer *cal_buffer);
 
 bool calculate_user_regamma_ramp(struct dc_transfer_func *output_tf,
-		const struct regamma_lut *regamma);
+		const struct regamma_lut *regamma,
+		struct calculate_buffer *cal_buffer);
 
 
 #endif /* COLOR_MOD_COLOR_GAMMA_H_ */
drivers/gpu/drm/amd/display/modules/color/color_table.c new file +48 -0

48 lines not on this page · raw message

drivers/gpu/drm/amd/display/modules/color/color_table.h new file +47 -0

47 lines not on this page · raw message

drivers/gpu/drm/amd/display/modules/freesync/freesync.c +29 -7
index eb7421e83b86..23a7fa8447e2 100644
@@ -324,22 +324,44 @@ static void apply_below_the_range(struct core_freesync *core_freesync,
 
 		/* Choose number of frames to insert based on how close it
 		 * can get to the mid point of the variable range.
+		 *  - Delta for CEIL: delta_from_mid_point_in_us_1
+		 *  - Delta for FLOOR: delta_from_mid_point_in_us_2
 		 */
-		if ((frame_time_in_us / mid_point_frames_ceil) > in_out_vrr->min_duration_in_us &&
-				(delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2 ||
-						mid_point_frames_floor < 2)) {
+		if ((last_render_time_in_us / mid_point_frames_ceil) < in_out_vrr->min_duration_in_us) {
+			/* Check for out of range.
+			 * If using CEIL produces a value that is out of range,
+			 * then we are forced to use FLOOR.
+			 */
+			frames_to_insert = mid_point_frames_floor;
+		} else if (mid_point_frames_floor < 2) {
+			/* Check if FLOOR would result in non-LFC. In this case
+			 * choose to use CEIL
+			 */
+			frames_to_insert = mid_point_frames_ceil;
+		} else if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
+			/* If choosing CEIL results in a frame duration that is
+			 * closer to the mid point of the range.
+			 * Choose CEIL
+			 */
 			frames_to_insert = mid_point_frames_ceil;
-			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
-					delta_from_mid_point_in_us_1;
 		} else {
+			/* If choosing FLOOR results in a frame duration that is
+			 * closer to the mid point of the range.
+			 * Choose FLOOR
+			 */
 			frames_to_insert = mid_point_frames_floor;
-			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
-					delta_from_mid_point_in_us_2;
 		}
 
 		/* Prefer current frame multiplier when BTR is enabled unless it drifts
 		 * too far from the midpoint
 		 */
+		if (delta_from_mid_point_in_us_1 < delta_from_mid_point_in_us_2) {
+			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_2 -
+					delta_from_mid_point_in_us_1;
+		} else {
+			delta_from_mid_point_delta_in_us = delta_from_mid_point_in_us_1 -
+					delta_from_mid_point_in_us_2;
+		}
 		if (in_out_vrr->btr.frames_to_insert != 0 &&
 				delta_from_mid_point_delta_in_us < BTR_DRIFT_MARGIN) {
 			if (((last_render_time_in_us / in_out_vrr->btr.frames_to_insert) <
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c +3 -6
index c9cfe90a2947..9ee8cf8267c8 100644
@@ -204,8 +204,7 @@ static int smu10_set_min_deep_sleep_dcefclk(struct pp_hwmgr *hwmgr, uint32_t clo
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->need_min_deep_sleep_dcefclk &&
-		smu10_data->deep_sleep_dcefclk != clock) {
+	if (clock && smu10_data->deep_sleep_dcefclk != clock) {
 		smu10_data->deep_sleep_dcefclk = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetMinDeepSleepDcefclk,
@@ -219,8 +218,7 @@ static int smu10_set_hard_min_dcefclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t c
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->dcf_actual_hard_min_freq &&
-		smu10_data->dcf_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->dcf_actual_hard_min_freq != clock) {
 		smu10_data->dcf_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinDcefclkByFreq,
@@ -234,8 +232,7 @@ static int smu10_set_hard_min_fclk_by_freq(struct pp_hwmgr *hwmgr, uint32_t cloc
 {
 	struct smu10_hwmgr *smu10_data = (struct smu10_hwmgr *)(hwmgr->backend);
 
-	if (smu10_data->f_actual_hard_min_freq &&
-		smu10_data->f_actual_hard_min_freq != clock) {
+	if (clock && smu10_data->f_actual_hard_min_freq != clock) {
 		smu10_data->f_actual_hard_min_freq = clock;
 		smum_send_msg_to_smc_with_parameter(hwmgr,
 					PPSMC_MSG_SetHardMinFclkByFreq,
drivers/gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c +12 -10
index 7783c7fd7ccb..eff87c896838 100644
@@ -363,17 +363,19 @@ int vega10_thermal_get_temperature(struct pp_hwmgr *hwmgr)
 static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v2_information *pp_table_info =
+		(struct phm_ppt_v2_information *)(hwmgr->pptable);
+	struct phm_tdp_table *tdp_table = pp_table_info->tdp_table;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA10_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA10_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > tdp_table->usSoftwareShutdownTemp)
+		high = tdp_table->usSoftwareShutdownTemp;
 
 	if (low > high)
 		return -EINVAL;
@@ -382,8 +384,8 @@ static int vega10_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val &= (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTH_MASK_MASK) &
 			(~THM_THERMAL_INT_CTRL__THERM_INTL_MASK_MASK);
drivers/gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c +11 -10
index c85806a6f62e..650623106ceb 100644
@@ -170,17 +170,18 @@ int vega12_thermal_get_temperature(struct pp_hwmgr *hwmgr)
 static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA12_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA12_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -189,8 +190,8 @@ static int vega12_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c +19 -25

74 lines not on this page · raw message

drivers/gpu/drm/amd/powerplay/hwmgr/vega20_thermal.c +11 -10
index 7add2f60f49c..364162ddaa9c 100644
@@ -240,17 +240,18 @@ int vega20_thermal_get_temperature(struct pp_hwmgr *hwmgr)
 static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 		struct PP_TemperatureRange *range)
 {
+	struct phm_ppt_v3_information *pptable_information =
+		(struct phm_ppt_v3_information *)hwmgr->pptable;
 	struct amdgpu_device *adev = hwmgr->adev;
-	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
-	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP *
-			PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	int low = VEGA20_THERMAL_MINIMUM_ALERT_TEMP;
+	int high = VEGA20_THERMAL_MAXIMUM_ALERT_TEMP;
 	uint32_t val;
 
-	if (low < range->min)
-		low = range->min;
-	if (high > range->max)
-		high = range->max;
+	/* compare them in unit celsius degree */
+	if (low < range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES)
+		low = range->min / PP_TEMPERATURE_UNITS_PER_CENTIGRADES;
+	if (high > pptable_information->us_software_shutdown_temp)
+		high = pptable_information->us_software_shutdown_temp;
 
 	if (low > high)
 		return -EINVAL;
@@ -259,8 +260,8 @@ static int vega20_thermal_set_temperature_range(struct pp_hwmgr *hwmgr,
 
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, MAX_IH_CREDIT, 5);
 	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, THERM_IH_HW_ENA, 1);
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, (high / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
-	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, (low / PP_TEMPERATURE_UNITS_PER_CENTIGRADES));
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTH, high);
+	val = CGS_REG_SET_FIELD(val, THM_THERMAL_INT_CTRL, DIG_THERM_INTL, low);
 	val = val & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK);
 
 	WREG32_SOC15(THM, 0, mmTHM_THERMAL_INT_CTRL, val);
drivers/gpu/drm/arm/display/komeda/komeda_crtc.c +2 -5
index 56bd938961ee..f33418d6e1a0 100644
@@ -492,10 +492,8 @@ static void komeda_crtc_reset(struct drm_crtc *crtc)
 	crtc->state = NULL;
 
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
-	if (state) {
-		crtc->state = &state->base;
-		crtc->state->crtc = crtc;
-	}
+	if (state)
+		__drm_atomic_helper_crtc_reset(crtc, &state->base);
 }
 
 static struct drm_crtc_state *
@@ -616,7 +614,6 @@ static int komeda_crtc_add(struct komeda_kms_dev *kms,
 		return err;
 
 	drm_crtc_helper_add(crtc, &komeda_crtc_helper_funcs);
-	drm_crtc_vblank_reset(crtc);
 
 	crtc->port = kcrtc->master->of_output_port;
 
drivers/gpu/drm/arm/malidp_drv.c +0 -1
index def8c9ffafca..a2a10bfbccac 100644
@@ -870,7 +870,6 @@ static int malidp_bind(struct device *dev)
 	drm->irq_enabled = true;
 
 	ret = drm_vblank_init(drm, drm->mode_config.num_crtc);
-	drm_crtc_vblank_reset(&malidp->crtc);
 	if (ret < 0) {
 		DRM_ERROR("failed to initialise vblank\n");
 		goto vblank_fail;
drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_crtc.c +2 -5
index 10985134ce0b..ce246b96330b 100644
@@ -411,10 +411,8 @@ static void atmel_hlcdc_crtc_reset(struct drm_crtc *crtc)
 	}
 
 	state = kzalloc(sizeof(*state), GFP_KERNEL);
-	if (state) {
-		crtc->state = &state->base;
-		crtc->state->crtc = crtc;
-	}
+	if (state)
+		__drm_atomic_helper_crtc_reset(crtc, &state->base);
 }
 
 static struct drm_crtc_state *
@@ -528,7 +526,6 @@ int atmel_hlcdc_crtc_create(struct drm_device *dev)
 	}
 
 	drm_crtc_helper_add(&crtc->base, &lcdc_crtc_helper_funcs);
-	drm_crtc_vblank_reset(&crtc->base);
 
 	drm_mode_crtc_set_gamma_size(&crtc->base, ATMEL_HLCDC_CLUT_SIZE);
 	drm_crtc_enable_color_mgmt(&crtc->base, 0, false,
drivers/gpu/drm/drm_atomic_helper.c +4 -3
index 85d163f16801..b78e142a5620 100644
@@ -34,6 +34,7 @@
 #include <drm/drm_bridge.h>
 #include <drm/drm_damage_helper.h>
 #include <drm/drm_device.h>
+#include <drm/drm_drv.h>
 #include <drm/drm_plane_helper.h>
 #include <drm/drm_print.h>
 #include <drm/drm_self_refresh_helper.h>
@@ -3105,7 +3106,7 @@ void drm_atomic_helper_shutdown(struct drm_device *dev)
 	if (ret)
 		DRM_ERROR("Disabling all crtc's during unload failed with %i\n", ret);
 
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
 }
 EXPORT_SYMBOL(drm_atomic_helper_shutdown);
 
@@ -3245,7 +3246,7 @@ struct drm_atomic_state *drm_atomic_helper_suspend(struct drm_device *dev)
 	}
 
 unlock:
-	DRM_MODESET_LOCK_ALL_END(ctx, err);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
 	if (err)
 		return ERR_PTR(err);
 
@@ -3326,7 +3327,7 @@ int drm_atomic_helper_resume(struct drm_device *dev,
 
 	err = drm_atomic_helper_commit_duplicated_state(state, &ctx);
 
-	DRM_MODESET_LOCK_ALL_END(ctx, err);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, err);
 	drm_atomic_state_put(state);
 
 	return err;
drivers/gpu/drm/drm_atomic_state_helper.c +4 -0
index 8fce6a115dfe..9ad74045158e 100644
@@ -32,6 +32,7 @@
 #include <drm/drm_device.h>
 #include <drm/drm_plane.h>
 #include <drm/drm_print.h>
+#include <drm/drm_vblank.h>
 #include <drm/drm_writeback.h>
 
 #include <linux/slab.h>
@@ -93,6 +94,9 @@ __drm_atomic_helper_crtc_reset(struct drm_crtc *crtc,
 	if (crtc_state)
 		__drm_atomic_helper_crtc_state_reset(crtc_state, crtc);
 
+	if (drm_dev_has_vblank(crtc->dev))
+		drm_crtc_vblank_reset(crtc);
+
 	crtc->state = crtc_state;
 }
 EXPORT_SYMBOL(__drm_atomic_helper_crtc_reset);
drivers/gpu/drm/drm_color_mgmt.c +1 -1
index c93123ff7c21..138ff34b31db 100644
@@ -294,7 +294,7 @@ int drm_mode_gamma_set_ioctl(struct drm_device *dev,
 				     crtc->gamma_size, &ctx);
 
 out:
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
 	return ret;
 
 }
drivers/gpu/drm/drm_crtc.c +1 -3
index 4936e1080e41..eb1c33e5d0f4 100644
@@ -561,7 +561,6 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
 	if (crtc_req->mode_valid && !drm_lease_held(file_priv, plane->base.id))
 		return -EACCES;
 
-	mutex_lock(&crtc->dev->mode_config.mutex);
 	DRM_MODESET_LOCK_ALL_BEGIN(dev, ctx,
 				   DRM_MODESET_ACQUIRE_INTERRUPTIBLE, ret);
 
@@ -728,8 +727,7 @@ int drm_mode_setcrtc(struct drm_device *dev, void *data,
 	fb = NULL;
 	mode = NULL;
 
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
-	mutex_unlock(&crtc->dev->mode_config.mutex);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
 
 	return ret;
 }
drivers/gpu/drm/drm_dp_mst_topology.c +2 -2
index ffbd754a5382..954cd6911782 100644
@@ -4993,8 +4993,8 @@ int drm_dp_mst_add_affected_dsc_crtcs(struct drm_atomic_state *state, struct drm
 
 		crtc = conn_state->crtc;
 
-		if (WARN_ON(!crtc))
-			return -EINVAL;
+		if (!crtc)
+			continue;
 
 		if (!drm_dp_mst_dsc_aux_for_port(pos->port))
 			continue;
drivers/gpu/drm/drm_mode_object.c +2 -2
index 901b078abf40..db05f386a709 100644
@@ -428,7 +428,7 @@ int drm_mode_obj_get_properties_ioctl(struct drm_device *dev, void *data,
 out_unref:
 	drm_mode_object_put(obj);
 out:
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
 	return ret;
 }
 
@@ -470,7 +470,7 @@ static int set_property_legacy(struct drm_mode_object *obj,
 		break;
 	}
 	drm_property_change_valid_put(prop, ref);
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
+	DRM_MODESET_LOCK_ALL_END(dev, ctx, ret);
 
 	return ret;
 }
drivers/gpu/drm/drm_plane.c +1 -1
index 4af173ced327..fdbafc2b8199 100644
@@ -791,7 +791,7 @@ static int setplane_internal(struct drm_plane *plane,
 					  crtc_x, crtc_y, crtc_w, crtc_h,
 					  src_x, src_y, src_w, src_h, &ctx);
 
-	DRM_MODESET_LOCK_ALL_END(ctx, ret);
+	DRM_MODESET_LOCK_ALL_END(plane->dev, ctx, ret);
 
 	return ret;
 }
drivers/gpu/drm/etnaviv/etnaviv_gpu.c +9 -2
index 4a512b062df8..bb9a37d3fcff 100644
@@ -337,9 +337,16 @@ static void etnaviv_hw_identify(struct etnaviv_gpu *gpu)
 
 		gpu->identity.model = gpu_read(gpu, VIVS_HI_CHIP_MODEL);
 		gpu->identity.revision = gpu_read(gpu, VIVS_HI_CHIP_REV);
-		gpu->identity.product_id = gpu_read(gpu, VIVS_HI_CHIP_PRODUCT_ID);
 		gpu->identity.customer_id = gpu_read(gpu, VIVS_HI_CHIP_CUSTOMER_ID);
-		gpu->identity.eco_id = gpu_read(gpu, VIVS_HI_CHIP_ECO_ID);
+
+		/*
+		 * Reading these two registers on GC600 rev 0x19 result in a
+		 * unhandled fault: external abort on non-linefetch
+		 */
+		if (!etnaviv_is_model_rev(gpu, GC600, 0x19)) {
+			gpu->identity.product_id = gpu_read(gpu, VIVS_HI_CHIP_PRODUCT_ID);
+			gpu->identity.eco_id = gpu_read(gpu, VIVS_HI_CHIP_ECO_ID);
+		}
 
 		/*
 		 * !!!! HACK ALERT !!!!
drivers/gpu/drm/etnaviv/etnaviv_sched.c +6 -5
index 4e3e95dce6d8..cd46c882269c 100644
@@ -89,12 +89,15 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job)
 	u32 dma_addr;
 	int change;
 
+	/* block scheduler */
+	drm_sched_stop(&gpu->sched, sched_job);
+
 	/*
 	 * If the GPU managed to complete this jobs fence, the timout is
 	 * spurious. Bail out.
 	 */
 	if (dma_fence_is_signaled(submit->out_fence))
-		return;
+		goto out_no_timeout;
 
 	/*
 	 * If the GPU is still making forward progress on the front-end (which
@@ -105,12 +108,9 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job)
 	change = dma_addr - gpu->hangcheck_dma_addr;
 	if (change < 0 || change > 16) {
 		gpu->hangcheck_dma_addr = dma_addr;
-		return;
+		goto out_no_timeout;
 	}
 
-	/* block scheduler */
-	drm_sched_stop(&gpu->sched, sched_job);
-
 	if(sched_job)
 		drm_sched_increase_karma(sched_job);
 
@@ -120,6 +120,7 @@ static void etnaviv_sched_timedout_job(struct drm_sched_job *sched_job)
 
 	drm_sched_resubmit_jobs(&gpu->sched);
 
+out_no_timeout:
 	/* restart scheduler after GPU is usable again */
 	drm_sched_start(&gpu->sched, true);
 }
drivers/gpu/drm/i915/i915_cmd_parser.c +10 -4
index 372354d33f55..5ac4a999f05a 100644
@@ -1204,6 +1204,12 @@ static u32 *copy_batch(struct drm_i915_gem_object *dst_obj,
 	return dst;
 }
 
+static inline bool cmd_desc_is(const struct drm_i915_cmd_descriptor * const desc,
+			       const u32 cmd)
+{
+	return desc->cmd.value == (cmd & desc->cmd.mask);
[… more lines in the raw message]

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

drivers/gpu/drm/msm/adreno/adreno_gpu.c +1 -1
index 5db06b590943..e7b39f3ca33d 100644

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

drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +0 -2
index b5fed67c4651..0c54b7bc1901 100644

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

drivers/gpu/drm/nouveau/dispnv50/disp.c +3 -1
index 800b7757252e..d2c2d102e732 100644

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

drivers/gpu/drm/nouveau/nouveau_connector.c +3 -1
index 1b383ae0248f..ef8ddbe44581 100644

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

drivers/gpu/drm/nouveau/nouveau_fbcon.c +3 -1
index d5c23d1c20d8..44e515bbbb44 100644

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

drivers/gpu/drm/omapdrm/omap_crtc.c +5 -3
index fce7e944a280..6d40914675da 100644

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

drivers/gpu/drm/omapdrm/omap_drv.c +0 -4
index cdafd7ef1c32..cc4d754ff8c0 100644

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

drivers/gpu/drm/radeon/radeon_connectors.c +15 -5
index fe12d9d91d7a..e30834434442 100644

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

drivers/gpu/drm/rcar-du/rcar_du_crtc.c +1 -5
index d73e88ddecd0..fe86a3e67757 100644

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

drivers/gpu/drm/tegra/dc.c +0 -1
index 04d6848d19fc..da8b9983b7de 100644

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

drivers/gpu/drm/tidss/tidss_crtc.c +1 -2
index 89a226912de8..4d01c4af61cd 100644

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

drivers/gpu/drm/tidss/tidss_kms.c +0 -5
index c0240f7e0b19..eec359f61a06 100644

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

drivers/gpu/drm/virtio/virtgpu_object.c +1 -0
index 6ccbd01cd888..703b5cd51751 100644

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

drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c +2 -6
index 009f1742bed5..c4017c7a24db 100644

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

drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c +2 -7
index 32a22e4eddb1..4bf0f5ec4fc2 100644

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

drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c +2 -7
index 16b385629688..cf3aafd00837 100644

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

drivers/gpu/host1x/job.c +8 -5
index a10643aa89aa..2ac5a99406d9 100644

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

drivers/hid/hid-ids.h +1 -0
index 6f370e020feb..7cfa9785bfbb 100644

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

drivers/hid/hid-quirks.c +1 -0
index 934fc0a798d4..c242150d35a3 100644

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

drivers/hid/i2c-hid/i2c-hid-core.c +13 -9
index 294c84e136d7..dbd04492825d 100644

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

drivers/hid/usbhid/hiddev.c +4 -0
index 4140dea693e9..4f97e6c12059 100644

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

drivers/hwmon/gsc-hwmon.c +1 -0
index 2137bc65829d..35337922aa1b 100644

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

drivers/hwmon/nct7904.c +2 -2
index b0425694f702..242ff8bee78d 100644

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

drivers/i2c/busses/i2c-i801.c +4 -0
index fea644921a76..f206e28af583 100644

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

drivers/i2c/busses/i2c-rcar.c +1 -0
index 9e883474db8c..c7c543483b08 100644

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

drivers/i2c/i2c-core-base.c +1 -1
index 26f03a14a478..4f09d4c31828 100644

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

drivers/iommu/dma-iommu.c +2 -2
index 4959f5df21bd..5141d49a046b 100644

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

drivers/iommu/iova.c +3 -1
index 49fc01f2a28d..45a251da5453 100644

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

drivers/irqchip/irq-stm32-exti.c +12 -2
index faa8482c8246..4dd8a5532f89 100644

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

drivers/media/cec/core/cec-api.c +7 -1
index 17d1cb2e5f97..f922a2196b2b 100644

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

drivers/media/i2c/imx290.c +4 -3
index f7678e5a5d87..157a0ed0a885 100644

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

drivers/media/pci/ttpci/av7110.c +3 -2
index d0cdee1c6eb0..bf36b1e22b63 100644

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

drivers/media/platform/davinci/vpif_capture.c +0 -2
index d9ec439faefa..72a0e94e2e21 100644

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

drivers/mfd/intel-lpss-pci.c +19 -0
index 046222684b8b..9a58032f818a 100644

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

drivers/misc/habanalabs/debugfs.c +4 -4
index 0bc036e01ee8..6c2b9cf45e83 100644

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

drivers/mmc/host/sdhci-of-arasan.c +14 -11
index fb26e743e1fd..d0a80bfb953b 100644

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

drivers/net/ethernet/freescale/gianfar.c +3 -1
index b513b8c5c3b5..41dd3d0f3452 100644

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

drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c +1 -1
index ec7a11d13fdc..9e70b9a67440 100644

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

drivers/net/macvlan.c +17 -4
index 4942f6112e51..5da04e997989 100644

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

drivers/net/wan/hdlc.c +1 -0
index dfc16770458d..386ed2aa31fd 100644

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

drivers/net/wan/hdlc_x25.c +16 -1
index f70336bb6f52..f52b9fed0593 100644

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

drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +8 -0
index a757abd7a599..f4db818cccae 100644

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

drivers/net/wireless/realtek/rtlwifi/usb.c +4 -1
index c66c6dc00378..bad06939a247 100644

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

drivers/nvme/host/fc.c +2 -2
index 549f5b0fb0b4..1a2b6910509c 100644

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

drivers/nvme/host/multipath.c +10 -5
index 267295323343..041a755f936a 100644

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

drivers/nvme/target/configfs.c +1 -0
index 419e0d4ce79b..d84b935704a3 100644

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

drivers/pci/controller/dwc/pcie-qcom.c +48 -10

58 lines not on this page · raw message

drivers/pci/slot.c +4 -2
index cc386ef2fa12..3861505741e6 100644

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

drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c +26 -0
index b77b18fe5adc..2f3dfb56c3fa 100644

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

drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h +1 -0
index 27df08736396..bd079f4fb1d6 100644

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

drivers/pinctrl/mediatek/pinctrl-paris.c +7 -0
index 90a432bf9fed..a23c18251965 100644

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

drivers/platform/chrome/cros_ec_sensorhub_ring.c +1 -3
index 24e48d96ed76..b1c641c72f51 100644

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

drivers/s390/cio/css.c +5 -0
index 94edbb33d0d1..aca022239b33 100644

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

drivers/scsi/fcoe/fcoe_ctlr.c +1 -1
index 1791a393795d..07a0dadc75bf 100644

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

drivers/scsi/lpfc/lpfc_vport.c +8 -18
index b76646357980..d0296f7cf45f 100644

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

drivers/scsi/qla2xxx/qla_gs.c +39 -9

48 lines not on this page · raw message

drivers/scsi/qla2xxx/qla_mbx.c +0 -8
index df31ee0d59b2..fdb2ce7acb91 100644

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

drivers/scsi/qla2xxx/qla_nvme.c +5 -0
index fa695a4007f8..262dfd7635a4 100644

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

drivers/scsi/qla2xxx/qla_os.c +5 -0
index 5c7c22d0fab4..8b6803f4f2dc 100644

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

drivers/scsi/qla2xxx/qla_target.c +1 -1
index fbb80a043b4f..90289162dbd4 100644

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

drivers/scsi/scsi_debug.c +2 -0
index b0d93bf79978..25faad7f8e61 100644

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

drivers/scsi/scsi_transport_iscsi.c +1 -1
index 7ae5024e7824..df07ecd94793 100644

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

drivers/scsi/ufs/ufshcd.c +9 -5
index 136b863bc1d4..8bc8e4e62c04 100644

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

drivers/spi/spi-stm32.c +38 -35

73 lines not on this page · raw message

drivers/staging/rts5208/rtsx.c +1 -0
index be0053c795b7..937f4e732a75 100644

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

drivers/target/target_core_internal.h +1 -0
index 853344415963..e7b3c6e5d574 100644

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

drivers/target/target_core_transport.c +6 -1
index 90ecdd706a01..e6e1fa68de54 100644

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

drivers/target/target_core_user.c +8 -1
index 63cca0e1e912..9ab960cc39b6 100644

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

drivers/target/target_core_xcopy.c +9 -2
index 0d00ccbeb050..44e15d7fb2f0 100644

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

drivers/tty/serial/8250/8250_exar.c +21 -3
index 04b9af7ed941..2d0e7c7e408d 100644

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

drivers/tty/serial/8250/8250_port.c +6 -3
index 1632f7d25acc..63a6d13f70b8 100644

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

drivers/tty/serial/amba-pl011.c +9 -7
index 8efd7c2a34fe..a8d1edcf252c 100644

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

drivers/tty/serial/samsung_tty.c +5 -3
index d913d9b2762a..815da3e78ad1 100644

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

drivers/tty/serial/stm32-usart.c +1 -1
index 8602ff357321..b77b41c768fb 100644

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

drivers/tty/vt/vt.c +3 -2
index 42d8c67a481f..c9ee8e9498d5 100644

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

drivers/tty/vt/vt_ioctl.c +11 -1
index daf61c28ba76..cbc85c995d92 100644

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

drivers/usb/class/cdc-acm.c +10 -12
index d5187b50fc82..7499ba118665 100644

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

drivers/usb/core/driver.c +38 -2
index f81606c6a35b..7e73e989645b 100644

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

drivers/usb/core/generic.c +3 -2
index 4626227a6dd2..cd08a47144bd 100644

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

drivers/usb/core/quirks.c +7 -0
index c96c50faccf7..2f068e525a37 100644

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

drivers/usb/dwc3/gadget.c +89 -18

107 lines not on this page · raw message

drivers/usb/gadget/function/f_ncm.c +69 -12

81 lines not on this page · raw message

drivers/usb/gadget/function/f_tcm.c +4 -3
index eaf556ceac32..0a45b4ef66a6 100644

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

drivers/usb/gadget/u_f.h +27 -11
index eaa13fd3dc7f..e313c3b8dcb1 100644

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

drivers/usb/host/ohci-exynos.c +2 -3
index bd40e597f256..5f5e8a64c8e2 100644

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

drivers/usb/host/xhci-debugfs.c +4 -4
index 76c3f29562d2..448d7b11dec4 100644

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

drivers/usb/host/xhci-hub.c +10 -9
index f37316d2c8fa..fa8f7935c2ab 100644

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

drivers/usb/host/xhci-pci-renesas.c +1 -18
index 59b1965ad0a3..f97ac9f52bf4 100644

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

drivers/usb/host/xhci-tegra.c +3 -1
index ee6bf01775bb..545bdecc8f15 100644

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

drivers/usb/host/xhci.c +2 -1
index ed468eed299c..113ab5d3cbfe 100644

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

drivers/usb/misc/lvstest.c +1 -1
index 407fe7570f3b..f8686139d6f3 100644

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

drivers/usb/misc/sisusbvga/sisusb.c +1 -1
index fc8a5da4a07c..0734e6dd9386 100644

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

drivers/usb/misc/yurex.c +1 -1
index be0505b8b5d4..785080f79073 100644

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

drivers/usb/storage/unusual_devs.h +1 -1
index b6a9a7451620..e5f9557690f9 100644

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

drivers/usb/storage/unusual_uas.h +14 -0
index 162b09d69f62..711ab240058c 100644

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

drivers/usb/typec/tcpm/tcpm.c +25 -3
index 82b19ebd7838..b2111fe6d140 100644

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

drivers/usb/typec/ucsi/displayport.c +1 -8
index 048381c058a5..261131c9e37c 100644

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

drivers/usb/typec/ucsi/ucsi.c +53 -50

103 lines not on this page · raw message

drivers/usb/usbip/stub_dev.c +6 -0
index 2305d425e6c9..9d7d642022d1 100644

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

drivers/vdpa/ifcvf/ifcvf_base.h +1 -1
index f4554412e607..29efa75cdfce 100644

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

drivers/vdpa/ifcvf/ifcvf_main.c +7 -2
index f5a60c14b979..7a6d899e541d 100644

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

drivers/video/fbdev/controlfb.c +2 -0
index 9c4f1be856ec..547abeb39f87 100644

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

drivers/video/fbdev/core/fbcon.c +23 -2
index e2a490c5ae08..fbf10e62bcde 100644

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

drivers/video/fbdev/core/fbmem.c +2 -6
index 30e73ec4ad5c..da7c88ffaa6a 100644

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

drivers/video/fbdev/core/fbsysfs.c +2 -2
index d54c88f88991..65dae05fff8e 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -2
index 4a16798b2ecd..e2b572761bf6 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dsi.c +5 -2
index d620376216e1..6f9c25fec994 100644

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

drivers/video/fbdev/omap2/omapfb/dss/dss.c +5 -2
index bfc5c4c5a26a..a6b1c1598040 100644

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

drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c +3 -2
index 7060ae56c062..4804aab34298 100644

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

drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c +3 -2
index ac49531e4732..a06b6f1355bd 100644

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

drivers/video/fbdev/omap2/omapfb/dss/venc.c +5 -2
index d5404d56c922..0b0ad20afd63 100644

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

drivers/video/fbdev/ps3fb.c +3 -2
index 9df78fb77267..203c254f8f6c 100644

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

drivers/xen/events/events_base.c +8 -8
index 140c7bf33a98..90b8f56fbadb 100644

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

fs/btrfs/ctree.h +2 -2
index 6fdb3392a06d..284d9afa900b 100644

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

fs/btrfs/disk-io.c +1 -0
index 66618a1794ea..983f4d58ae59 100644

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

fs/btrfs/extent-tree.c +11 -6
index de6fe176fdfb..5871ef78edba 100644

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

fs/btrfs/file.c +5 -5
index 1523aa4eaff0..e485f0275e1a 100644

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

fs/btrfs/free-space-cache.c +1 -1
index 6f7b6bca6dc5..53cfcf017b8d 100644

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

fs/btrfs/inode.c +10 -8
index 7ba1218b1630..cb2a6893ec41 100644

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

fs/btrfs/qgroup.c +7 -7
index 5bd4089ad0e1..574a66989477 100644

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

fs/btrfs/qgroup.h +1 -1
index 1bc654459469..406366f20cb0 100644

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

fs/btrfs/super.c +1 -0
index 56cd2cf57158..9eb03b0e0dd4 100644

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

fs/btrfs/tree-log.c +6 -4
index d22ff1e0963c..065439b4bdda 100644

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

fs/buffer.c +9 -0
index 64fe82ec65ff..75a8849abb5d 100644

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

fs/ceph/file.c +3 -2
index 160644ddaeed..d51c3f2fdca0 100644

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

fs/ceph/mds_client.c +13 -1
index 946f9a92658a..903b6a35b321 100644

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

fs/ext4/block_validity.c +0 -8
index e830a9d4e10d..11aa37693e43 100644

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

fs/ext4/ext4.h +6 -1
index 42815304902b..ff46defc6568 100644

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

fs/ext4/ext4_jbd2.c +25 -0
index 0c76cdd44d90..760b9ee49dc0 100644

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

fs/ext4/extents.c +5 -5
index d75054570e44..11a321dd11e7 100644

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

fs/ext4/file.c +1 -1
index 8f742b53f1d4..4ee9a4dc01a8 100644

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

fs/ext4/indirect.c +1 -1
index 402641825712..e8ca40567392 100644

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

fs/ext4/inode.c +3 -3
index 92573f8540ab..9c0629ffb426 100644

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

fs/ext4/ioctl.c +1 -1
index 999cf6add39c..a5fcc238c669 100644

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

fs/ext4/mballoc.c +86 -9

95 lines not on this page · raw message

fs/ext4/mballoc.h +4 -0
index 6b4d17c2935d..e75b4749aa1c 100644

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

fs/ext4/move_extent.c +2 -2
index 1ed86fb6c302..0d601b822875 100644

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

fs/ext4/super.c +137 -58

195 lines not on this page · raw message

fs/ext4/sysfs.c +2 -0
index 6c9fc9e21c13..92f04e9e9441 100644

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

fs/f2fs/f2fs.h +2 -2
index b35a50f4953c..7d9afd54e9d8 100644

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

fs/f2fs/inline.c +12 -7
index dbade310dc79..cf2c347bd7a3 100644

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

fs/f2fs/node.c +4 -2
index e61ce7fb0958..98736d0598b8 100644

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

fs/f2fs/recovery.c +8 -2
index ae5310f02e7f..280725194466 100644

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

fs/f2fs/super.c +3 -2
index 20e56b0fa46a..0deb839da0a0 100644

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

fs/f2fs/sysfs.c +8 -1
index e877c59b9fdb..c5e32ceb9482 100644

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

fs/fs-writeback.c +46 -37

83 lines not on this page · raw message

fs/hugetlbfs/inode.c +6 -0
index ef5313f9c78f..f936bcf02cce 100644

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

fs/io-wq.c +19 -2
index 47c5f3aeb460..cb9e5a444fba 100644

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

fs/io_uring.c +32 -8
index 26978630378e..4115bfedf15d 100644

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

fs/jbd2/transaction.c +26 -0
index e91aad3637a2..6250c9faa4cb 100644

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

fs/nfsd/nfs4state.c +2 -0
index c9056316a0b3..cea682ce8aa1 100644

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

fs/xfs/libxfs/xfs_trans_inode.c +2 -0
index b5dfb6654842..4504d215cd59 100644

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

fs/xfs/xfs_icache.c +2 -1
index 5daef654956c..59dea8178ae3 100644

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

fs/xfs/xfs_inode.c +22 -3
index 9aea7d68d8ab..6d70daf1c92a 100644

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

include/drm/drm_modeset_lock.h +7 -2
index 4fc9a43ac45a..aafd07388eb7 100644

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

include/linux/dma-direct.h +0 -3
index ab2e20cba951..ba22952c24e2 100644

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

include/linux/dma-mapping.h +3 -2
index a33ed3954ed4..0dc08701d7b7 100644

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

include/linux/efi.h +4 -0
index 05c47f857383..73db1ae04cef 100644

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

include/linux/fb.h +0 -2
index 3b4b2f0c6994..b11eb02cad6d 100644

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

include/linux/fs.h +6 -2
index 2dab217c6047..ac1e89872db4 100644

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

include/linux/netfilter_ipv6.h +0 -18
index aac42c28fe62..9b67394471e1 100644

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

include/trace/events/ext4.h +11 -6
index cc41d692ae8e..628db6a07fda 100644

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

include/trace/events/writeback.h +6 -7
index 10f5d1fa7347..7565dcd59697 100644

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

kernel/Makefile +1 -0
index f3218bc5ec69..155b5380500a 100644

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

kernel/bpf/bpf_iter.c +14 -1
index dd612b80b9fe..3c18090cd73d 100644

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

kernel/bpf/task_iter.c +2 -1
index a4a0fb4f94cc..323def936be2 100644

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

kernel/dma/direct.c +9 -4
index 67f060b86a73..f17aec9d01f0 100644

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

kernel/dma/pool.c +79 -68

147 lines not on this page · raw message

kernel/irq/matrix.c +7 -0
index 30cc217b8631..651a4ad6d711 100644

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

kernel/locking/lockdep_proc.c +1 -1
index 5525cd3ba0c8..02ef87f50df2 100644

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

kernel/trace/blktrace.c +12 -0
index 588e8e396019..1bd6563939e5 100644

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

mm/khugepaged.c +1 -4
index 1d6a9b0b6a9f..dd592ea9a4a0 100644

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

mm/page_counter.c +7 -6
index b4663844c9b3..afe22ad335cc 100644

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

net/bridge/netfilter/nf_conntrack_bridge.c +6 -2
index 809673222382..8d033a75a766 100644

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

net/can/j1939/transport.c +14 -1
index dbd215cbc53d..a8dd956b5e8e 100644

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

net/ipv6/netfilter.c +0 -3
index 409e79b84a83..6d0e942d082d 100644

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

net/netfilter/nf_tables_api.c +7 -9
index 88325b264737..d31832d32e02 100644

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

net/openvswitch/datapath.c +9 -1
index 94b024534987..03b81aa99975 100644

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

net/openvswitch/flow_table.c +15 -20
index 2398d7238300..f198bbb0c517 100644

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

net/openvswitch/flow_table.h +3 -0
index 8a5cea6ae111..8ea8fc957377 100644

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

sound/pci/cs46xx/cs46xx_lib.c +1 -1
index a080d63a9b45..4490dd7469d9 100644

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

sound/pci/cs46xx/dsp_spos_scb_lib.c +1 -1
index 6b536fc23ca6..1f90ca723f4d 100644

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

sound/pci/hda/hda_codec.c +1 -1
index 803978d69e3c..ea7f16dd1f73 100644

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

sound/pci/hda/hda_generic.c +1 -1
index f4e9d9445e18..201a3b6b0b0f 100644

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

sound/pci/hda/hda_intel.c +2 -0
index 4c23b169ac67..1a26940a3fd7 100644

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

sound/pci/hda/patch_hdmi.c +16 -1
index cd46247988e4..f0c6d2907e39 100644

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

sound/pci/hda/patch_realtek.c +12 -0
index b10d005786d0..da23c2d4ca51 100644

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

sound/pci/hda/patch_sigmatel.c +1 -1
index a608d0486ae4..2bea11d62d3e 100644

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

sound/pci/ice1712/prodigy192.c +1 -1
index 8df14f63b10d..096ec76f5304 100644

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

sound/pci/oxygen/xonar_dg.c +1 -1
index c3f8721624cd..b90421a1d909 100644

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

sound/soc/codecs/wm8958-dsp2.c +4 -0
index ca42445b649d..b471892d8477 100644

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

sound/soc/img/img-i2s-in.c +3 -1
index e30b66b94bf6..0843235d73c9 100644

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

sound/soc/img/img-parallel-out.c +3 -1
index 5ddbe3a31c2e..4da49a42e854 100644

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

sound/soc/intel/boards/skl_hda_dsp_common.h +1 -0
index 507750ef67f3..4b0b3959182e 100644

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

sound/soc/intel/boards/skl_hda_dsp_generic.c +11 -6
index 79c8947f840b..ca4900036ead 100644

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

sound/soc/intel/boards/sof_sdw.c +1 -0
index 1bfd9613449e..95a119a2d354 100644

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

sound/soc/intel/boards/sof_sdw_common.h +1 -0
index 69b363b8a686..fdd2385049e1 100644

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

sound/soc/intel/boards/sof_sdw_rt711.c +15 -0
index d4d75c8dc6b7..0cb9f1c1f867 100644

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

sound/soc/tegra/tegra30_ahub.c +3 -1
index 635eacbd28d4..156e3b9d613c 100644

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

sound/soc/tegra/tegra30_i2s.c +3 -1
index d59882ec48f1..db5a8587bfa4 100644

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

sound/usb/mixer.c +7 -1
index eab0fd4fd7c3..e0b7174c1043 100644

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

sound/usb/quirks-table.h +32 -2
index a53eb67ad4bd..366faaa4ba82 100644

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

tools/bpf/bpftool/btf_dumper.c +1 -1
index ede162f83eea..0e9310727281 100644

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

tools/bpf/bpftool/link.c +2 -2
index fca57ee8fafe..dea691c83afc 100644

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

tools/bpf/bpftool/main.h +9 -1
index 5cdf0bc049bd..5917484c2e02 100644

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

tools/bpf/bpftool/prog.c +8 -8
index a5eff83496f2..2c6f7e160b24 100644

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

tools/lib/bpf/libbpf.c +8 -6
index e7642a6e39f9..3ac0094706b8 100644

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

tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +4 -4
index 7afa4160416f..284d5921c345 100644

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

tools/testing/selftests/bpf/prog_tests/btf_dump.c +20 -7
index cb33a7ee4e04..39fb81d9daeb 100644

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

tools/testing/selftests/bpf/prog_tests/core_extern.c +2 -2
index b093787e9448..1931a158510e 100644

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

tools/testing/selftests/bpf/prog_tests/core_reloc.c +10 -10
index 084ed26a7d78..a54eafc5e4b3 100644

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

tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c +3 -3
index a895bfed55db..197d0d217b56 100644

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

tools/testing/selftests/bpf/prog_tests/flow_dissector.c +1 -1
index f11f187990e9..cd6dc80edf18 100644

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

tools/testing/selftests/bpf/prog_tests/global_data.c +3 -3
index e3cb62b0a110..9efa7e50eab2 100644

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

tools/testing/selftests/bpf/prog_tests/mmap.c +13 -6
index 43d0b5578f46..9c3c5c0f068f 100644

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

tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c +1 -1
index dde2b7ae7bc9..935a294f049a 100644

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

tools/testing/selftests/bpf/prog_tests/skb_ctx.c +1 -1
index 7021b92af313..c61b2b69710a 100644

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

tools/testing/selftests/bpf/prog_tests/test_global_funcs.c +1 -1
index 25b068591e9a..193002b14d7f 100644

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

tools/testing/selftests/bpf/progs/core_reloc_types.h +37 -32

69 lines not on this page · raw message

tools/testing/selftests/bpf/test_btf.c +4 -4
index 305fae8f80a9..c75fc6447186 100644

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

tools/testing/selftests/bpf/test_progs.h +5 -0
index b80924603918..b5670350e326 100644

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

tools/testing/selftests/net/icmp_redirect.sh +2 -0
index 18c5de53558a..bf361f30d6ef 100755

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

tools/testing/selftests/powerpc/pmu/ebb/back_to_back_ebbs_test.c +0 -2
index a2d7b0e3dca9..a26ac122c759 100644

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

tools/testing/selftests/powerpc/pmu/ebb/cycles_test.c +0 -2
index bc893813483e..bb9f587fa76e 100644

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

tools/testing/selftests/powerpc/pmu/ebb/cycles_with_freeze_test.c +0 -2
index dcd351d20328..9ae795ce314e 100644

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

tools/testing/selftests/powerpc/pmu/ebb/cycles_with_mmcr2_test.c +0 -2
index 94c99c12c0f2..4b45a2e70f62 100644

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

tools/testing/selftests/powerpc/pmu/ebb/ebb.c +0 -2
index dfbc5c3ad52d..21537d6eb6b7 100644

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

tools/testing/selftests/powerpc/pmu/ebb/ebb_on_willing_child_test.c +0 -2
index ca2f7d729155..b208bf6ad58d 100644

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

tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c +0 -1
index ac3e6e182614..ba2681a12cc7 100644

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

tools/testing/selftests/powerpc/pmu/ebb/multi_counter_test.c +0 -7
index b8242e9d97d2..791d37ba327b 100644

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

tools/testing/selftests/powerpc/pmu/ebb/multi_ebb_procs_test.c +0 -2
index a05c0e18ded6..9b0f70d59702 100644

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

tools/testing/selftests/powerpc/pmu/ebb/pmae_handling_test.c +0 -2
index 153ebc92234f..2904c741e04e 100644

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

tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c +0 -2
index eadad75ed7e6..b29f8ba22d1e 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.