Linux 5.8.6
Greg Kroah-Hartman
maintainerI'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/pwritev2Jia-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
Greg Kroah-Hartman
maintainerDocumentation/admin-guide/ext4.rst +3 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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. */ - asmvolatile ("ldr %0, =__hyp_panic_string" :"=r" (str_va)); + asmvolatile ("ldr %0, =%1" :"=r" (str_va) :"S" (__hyp_panic_string)); __hyp_do_panic(str_va, spsr, elr,
arch/mips/Kconfig +1 -0
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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);
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/adreno/adreno_gpu.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/msm/disp/mdp5/mdp5_crtc.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/dispnv50/disp.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_connector.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/nouveau/nouveau_fbcon.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/radeon/radeon_connectors.c +15 -5
Lines of this file are not shown. View the raw message.
drivers/gpu/drm/virtio/virtgpu_object.c +1 -0
Lines of this file are not shown. View the raw message.
drivers/media/platform/davinci/vpif_capture.c +0 -2
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/freescale/gianfar.c +3 -1
Lines of this file are not shown. View the raw message.
drivers/net/ethernet/intel/ixgbe/ixgbe_fcoe.c +1 -1
Lines of this file are not shown. View the raw message.
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +8 -0
Lines of this file are not shown. View the raw message.
drivers/net/wireless/realtek/rtlwifi/usb.c +4 -1
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/pinctrl/mediatek/pinctrl-mtk-common-v2.c +26 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h +1 -0
Lines of this file are not shown. View the raw message.
drivers/pinctrl/mediatek/pinctrl-paris.c +7 -0
Lines of this file are not shown. View the raw message.
drivers/platform/chrome/cros_ec_sensorhub_ring.c +1 -3
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/spi/spi-stm32.c +38 -35
73 lines not on this page · 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/typec/ucsi/ucsi.c +53 -50
103 lines not on this page · raw message
drivers/video/fbdev/omap2/omapfb/dss/dispc.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/dsi.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/dss.c +5 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/hdmi4.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/hdmi5.c +3 -2
Lines of this file are not shown. View the raw message.
drivers/video/fbdev/omap2/omapfb/dss/venc.c +5 -2
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/super.c +137 -58
195 lines not on this page · raw message
fs/fs-writeback.c +46 -37
83 lines not on this page · raw message
kernel/dma/pool.c +79 -68
147 lines not on this page · raw message
net/bridge/netfilter/nf_conntrack_bridge.c +6 -2
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/skl_hda_dsp_common.h +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/skl_hda_dsp_generic.c +11 -6
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/sof_sdw_common.h +1 -0
Lines of this file are not shown. View the raw message.
sound/soc/intel/boards/sof_sdw_rt711.c +15 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/bpf_obj_id.c +4 -4
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/btf_dump.c +20 -7
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/core_extern.c +2 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/core_reloc.c +10 -10
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/fexit_bpf2bpf.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/flow_dissector.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/global_data.c +3 -3
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/mmap.c +13 -6
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/prog_run_xattr.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/skb_ctx.c +1 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/bpf/prog_tests/test_global_funcs.c +1 -1
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_progs.h +5 -0
Lines of this file are not shown. View the raw message.
tools/testing/selftests/net/icmp_redirect.sh +2 -0
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
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/cycles_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/cycles_with_freeze_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/cycles_with_mmcr2_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/ebb.c +0 -2
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
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/lost_exception_test.c +0 -1
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/multi_counter_test.c +0 -7
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/multi_ebb_procs_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/pmae_handling_test.c +0 -2
Lines of this file are not shown. View the raw message.
tools/testing/selftests/powerpc/pmu/ebb/pmc56_overflow_test.c +0 -2
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.