2020-09-01 16:13:44

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 000/255] 5.8.6-rc1 review

This is the start of the stable review cycle for the 5.8.6 release.
There are 255 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.

Responses should be made by Thu, 03 Sep 2020 15:09:01 +0000.
Anything received after that time might be too late.

The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.6-rc1.gz
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
and the diffstat can be found below.

thanks,

greg k-h

-------------
Pseudo-Shortlog of commits:

Greg Kroah-Hartman <[email protected]>
Linux 5.8.6-rc1

Hector Martin <[email protected]>
ALSA: usb-audio: Update documentation comment for MS2109 quirk

Dan Carpenter <[email protected]>
dma-pool: Fix an uninitialized variable bug in atomic_pool_expand()

Andrii Nakryiko <[email protected]>
libbpf: Fix build on ppc64le architecture

Roland Scheidegger <[email protected]>
drm/vmwgfx/ldu: Use drm_mode_config_reset

Roland Scheidegger <[email protected]>
drm/vmwgfx/sou: Use drm_mode_config_reset

Daniel Vetter <[email protected]>
drm/vmwgfx/stdu: Use drm_mode_config_reset

Peilin Ye <[email protected]>
HID: hiddev: Fix slab-out-of-bounds write in hiddev_ioctl_usage()

Qian Cai <[email protected]>
mm/page_counter: fix various data races at memsw

Tetsuo Handa <[email protected]>
fbmem: pull fbcon_update_vcs() out of fb_set_var()

Daniel Vetter <[email protected]>
drm/atomic-helper: reset vblank on crtc reset

Jens Axboe <[email protected]>
io_uring: make offset == -1 consistent with preadv2/pwritev2

Jens Axboe <[email protected]>
io_uring: don't use poll handler if file can't be nonblocking read/written

Jens Axboe <[email protected]>
io_uring: don't recurse on tsk->sighand->siglock with signalfd

Badhri Jagan Sridharan <[email protected]>
usb: typec: tcpm: Fix Fix source hard reset response for TDA 2.3.1.1 and TDA 2.3.1.2 failures

Hans de Goede <[email protected]>
usb: typec: ucsi: Hold con->lock for the entire duration of ucsi_register_port()

Hans de Goede <[email protected]>
usb: typec: ucsi: Rework ppm_lock handling

Hans de Goede <[email protected]>
usb: typec: ucsi: Fix 2 unlocked ucsi_run_command calls

Hans de Goede <[email protected]>
usb: typec: ucsi: Fix AB BA lock inversion

Bastien Nocera <[email protected]>
USB: Fix device driver race

Bastien Nocera <[email protected]>
USB: Also match device drivers using the ->match vfunc

Alan Stern <[email protected]>
usb: storage: Add unusual_uas entry for Sony PSZ drives

Tom Rix <[email protected]>
USB: cdc-acm: rework notification_buffer resizing

Thinh Nguyen <[email protected]>
usb: dwc3: gadget: Handle ZLP for sg requests

Thinh Nguyen <[email protected]>
usb: dwc3: gadget: Fix handling ZLP

Thinh Nguyen <[email protected]>
usb: dwc3: gadget: Don't setup more than requested

Andy Shevchenko <[email protected]>
USB: gadget: u_f: Unbreak offset calculation in VLAs

Brooke Basile <[email protected]>
USB: gadget: f_ncm: add bounds checks to ncm_unwrap_ntb()

Brooke Basile <[email protected]>
USB: gadget: u_f: add overflow checks to VLA macros

Tang Bin <[email protected]>
usb: host: ohci-exynos: Fix error handling in exynos_ohci_probe()

Cyril Roelandt <[email protected]>
USB: Ignore UAS for JMicron JMS567 ATA/ATAPI Bridge

Alan Stern <[email protected]>
USB: quirks: Ignore duplicate endpoint on Sound Devices MixPre-D

Kai-Heng Feng <[email protected]>
USB: quirks: Add no-lpm quirk for another Raydium touchscreen

Thinh Nguyen <[email protected]>
usb: uas: Add quirk for PNY Pro Elite

Alan Stern <[email protected]>
USB: yurex: Fix bad gfp argument

Evan Quan <[email protected]>
drm/amd/pm: correct the thermal alert temperature limit settings

Evan Quan <[email protected]>
drm/amd/pm: correct Vega20 swctf limit setting

Evan Quan <[email protected]>
drm/amd/pm: correct Vega12 swctf limit setting

Evan Quan <[email protected]>
drm/amd/pm: correct Vega10 swctf limit setting

Nicholas Kazlauskas <[email protected]>
drm/amd/powerplay: Fix hardmins not being sent to SMU for RV

Jiansong Chen <[email protected]>
drm/amdgpu/gfx10: refine mgcg setting

Alexander Monakov <[email protected]>
drm/amd/display: use correct scale for actual_brightness

Alex Deucher <[email protected]>
drm/amdgpu: Fix buffer overflow in INFO ioctl

Daniel Vetter <[email protected]>
drm/modeset-lock: Take the modeset BKL for legacy drivers

Bhawanpreet Lakha <[email protected]>
drm/dp_mst: Don't return error code when crtc is null

Christian Gmeiner <[email protected]>
drm/etnaviv: fix external abort seen on GC600 rev 0x19

Mika Kuoppala <[email protected]>
drm/i915: Fix cmd parser desc matching with masks

Ashok Raj <[email protected]>
x86/hotplug: Silence APIC only after all interrupts are migrated

Thomas Gleixner <[email protected]>
x86/irq: Unbreak interrupt affinity setting

qiuguorui1 <[email protected]>
irqchip/stm32-exti: Avoid losing interrupts due to clearing pending bits by mistake

Thomas Gleixner <[email protected]>
genirq/matrix: Deal with the sillyness of for_each_cpu() on UP

M. Vefa Bicakci <[email protected]>
usbip: Implement a match function to fix usbip

Herbert Xu <[email protected]>
crypto: af_alg - Work around empty control messages without MSG_MORE

Heikki Krogerus <[email protected]>
device property: Fix the secondary firmware node handling in set_primary_fwnode()

Alexey Kardashevskiy <[email protected]>
powerpc/perf: Fix crashes with generic_compat_pmu & BHRB

Christophe Leroy <[email protected]>
powerpc/32s: Disable VMAP stack which CONFIG_ADB_PMU

Rafael J. Wysocki <[email protected]>
PM: sleep: core: Fix the handling of pending runtime resume requests

Frank van der Linden <[email protected]>
arm64: vdso32: make vdso32 install conditional

James Morse <[email protected]>
KVM: arm64: Set HCR_EL2.PTW to prevent AT taking synchronous exception

Pavel Begunkov <[email protected]>
io-wq: fix hang after cancelling pending hashed work

Ding Hui <[email protected]>
xhci: Always restore EP_SOFT_CLEAR_TOGGLE even if ep reset failed

Kai-Heng Feng <[email protected]>
xhci: Do warm-reset when both CAS and XDEV_RESUME are set

Li Jun <[email protected]>
usb: host: xhci: fix ep context print mismatch in debugfs

JC Kuo <[email protected]>
usb: host: xhci-tegra: fix tegra_xusb_get_phy()

JC Kuo <[email protected]>
usb: host: xhci-tegra: otg usb2/usb3 port init

Vinod Koul <[email protected]>
usb: renesas-xhci: remove version check

Thomas Gleixner <[email protected]>
XEN uses irqdesc::irq_data_common::handler_data to store a per interrupt XEN data pointer which contains XEN specific information.

Jan Kara <[email protected]>
writeback: Fix sync livelock due to b_dirty_time processing

Jan Kara <[email protected]>
writeback: Avoid skipping inode writeback

Jan Kara <[email protected]>
writeback: Protect inode->i_io_list with inode->i_lock

Jens Axboe <[email protected]>
io_uring: clear req->result on IOPOLL re-issue

Sergey Senozhatsky <[email protected]>
serial: 8250: change lock order in serial8250_do_startup()

Valmer Huhn <[email protected]>
serial: 8250_exar: Fix number of ports for Commtech PCIe cards

Holger Assmann <[email protected]>
serial: stm32: avoid kernel warning on absence of optional IRQ

Lukas Wunner <[email protected]>
serial: pl011: Don't leak amba_ports entry on driver register error

Lukas Wunner <[email protected]>
serial: pl011: Fix oops on -EPROBE_DEFER

Tamseel Shams <[email protected]>
serial: samsung: Removes the IRQ not found warning

George Kennedy <[email protected]>
vt_ioctl: change VT_RESIZEX ioctl to check for error return from vc_resize()

Tetsuo Handa <[email protected]>
vt: defer kfree() of vc_screenbuf in vc_do_resize()

Evgeny Novikov <[email protected]>
USB: lvtest: return proper error code in probe

George Kennedy <[email protected]>
fbcon: prevent user font height or width change from causing potential out-of-bounds access

Boris Burkov <[email protected]>
btrfs: detect nocow for swap after snapshot delete

Filipe Manana <[email protected]>
btrfs: fix space cache memory leak after transaction abort

Josef Bacik <[email protected]>
btrfs: check the right error variable in btrfs_del_dir_entries_in_log

Marcos Paulo de Souza <[email protected]>
btrfs: reset compression level for lzo on remount

Ming Lei <[email protected]>
blk-mq: order adding requests to hctx->dispatch and checking SCHED_RESTART

Hans de Goede <[email protected]>
HID: i2c-hid: Always sleep 60ms after I2C_HID_PWR_ON commands

Ming Lei <[email protected]>
block: loop: set discard granularity and alignment for block device backed loop

Keith Busch <[email protected]>
block: fix get_max_io_size()

Tim Harvey <[email protected]>
hwmon: (gsc-hwmon) Scale temperature to millidegrees

Marc Zyngier <[email protected]>
arm64: Allow booting of late CPUs affected by erratum 1418040

Marc Zyngier <[email protected]>
arm64: Move handling of erratum 1418040 into C code

Yauheni Kaliuta <[email protected]>
bpf: selftests: global_funcs: Check err_str before strstr

Toke Høiland-Jørgensen <[email protected]>
libbpf: Fix map index used in error message

Athira Rajeev <[email protected]>
powerpc/perf: Fix soft lockups due to missed interrupt accounting

brookxu <[email protected]>
ext4: limit the length of per-inode prealloc list

Yonghong Song <[email protected]>
bpf: Avoid visit same object multiple times

Yonghong Song <[email protected]>
bpf: Fix a rcu_sched stall issue with bpf task/task_file iterator

Huang Rui <[email protected]>
drm/amdkfd: fix the wrong sdma instance query for renoir

Guchun Chen <[email protected]>
drm/amdgpu: fix NULL pointer access issue when unloading driver

Sumera Priyadarsini <[email protected]>
net: gianfar: Add of_node_put() before goto statement

Alvin Šipraga <[email protected]>
macvlan: validate setting of multiple remote source MAC addresses

Saurav Kashyap <[email protected]>
Revert "scsi: qla2xxx: Fix crash on qla2x00_mailbox_command"

Quinn Tran <[email protected]>
scsi: qla2xxx: Fix null pointer access during disconnect from subsystem

Saurav Kashyap <[email protected]>
scsi: qla2xxx: Check if FW supports MQ before enabling

Quinn Tran <[email protected]>
scsi: qla2xxx: Fix login timeout

Quinn Tran <[email protected]>
scsi: qla2xxx: Indicate correct supported speeds for Mezz card

Quinn Tran <[email protected]>
scsi: qla2xxx: Flush I/O on zone disable

Quinn Tran <[email protected]>
scsi: qla2xxx: Flush all sessions on zone disable

Douglas Gilbert <[email protected]>
scsi: scsi_debug: Fix scp is NULL errors

Stanley Chu <[email protected]>
scsi: ufs: Clean up completed request without interrupt notification

Adrian Hunter <[email protected]>
scsi: ufs: Improve interrupt handling for shared interrupts

Stanley Chu <[email protected]>
scsi: ufs: Fix possible infinite loop in ufshcd_hold

Mike Christie <[email protected]>
scsi: fcoe: Fix I/O path allocation

David Ahern <[email protected]>
selftests: disable rp_filter for icmp_redirect.sh

Tom Yan <[email protected]>
ALSA: usb-audio: ignore broken processing/extension unit

Sylwester Nawrocki <[email protected]>
ASoC: wm8994: Avoid attempts to read unreadable registers

Vineeth Vijayan <[email protected]>
s390/cio: add cond_resched() in the slow_eval_known_fn() loop

Mike Pozulp <[email protected]>
ALSA: hda/realtek: Add model alc298-samsung-headphone

Xie He <[email protected]>
drivers/net/wan/hdlc_x25: Added needed_headroom and a skb->len check

Nicolas Saenz Julienne <[email protected]>
dma-pool: Only allocate from CMA when in same memory zone

Christoph Hellwig <[email protected]>
dma-pool: fix coherent pool allocations for IOMMU mappings

Oleksij Rempel <[email protected]>
can: j1939: transport: j1939_xtp_rx_dat_one(): compare own packets to detect corruptions

Andrii Nakryiko <[email protected]>
selftests/bpf: Correct various core_reloc 64-bit assumptions

Andrii Nakryiko <[email protected]>
selftests/bpf: Fix btf_dump test cases on 32-bit arches

Andrii Nakryiko <[email protected]>
selftest/bpf: Fix compilation warnings in 32-bit mode

Andrii Nakryiko <[email protected]>
tools/bpftool: Fix compilation warnings in 32-bit mode

Toke Høiland-Jørgensen <[email protected]>
libbpf: Prevent overriding errno when logging errors

Florian Westphal <[email protected]>
netfilter: avoid ipv6 -> nf_defrag_ipv6 module dependency

Jean-Philippe Brucker <[email protected]>
libbpf: Handle GCC built-in types for Arm NEON

Jianlin Lv <[email protected]>
selftests/bpf: Fix segmentation fault in test_progs

Anthony Koo <[email protected]>
drm/amd/display: Switch to immediate mode for updating infopackets

Anthony Koo <[email protected]>
drm/amd/display: Fix LFC multiplier changing erratically

Evan Quan <[email protected]>
drm/amd/powerplay: correct UVD/VCE PG state on custom pptable uploading

Evan Quan <[email protected]>
drm/amd/powerplay: correct Vega20 cached smu feature state

Alain Volmat <[email protected]>
spi: stm32: always perform registers configuration prior to transfer

Amelie Delaunay <[email protected]>
spi: stm32: fix stm32_spi_prepare_mbr in case of odd clk_rate

Amelie Delaunay <[email protected]>
spi: stm32: fix fifo threshold level in case of short transfer

Antonio Borneo <[email protected]>
spi: stm32h7: fix race condition at end of transfer

Xianting Tian <[email protected]>
fs: prevent BUG_ON in submit_bh_wbc()

Jan Kara <[email protected]>
ext4: correctly restore system zone info when remount fails

Jan Kara <[email protected]>
ext4: handle error of ext4_setup_system_zone() on remount

Lukas Czerner <[email protected]>
ext4: handle option set by mount flags correctly

zhangyi (F) <[email protected]>
jbd2: abort journal if free a async write error metadata buffer

zhangyi (F) <[email protected]>
ext4: abort the filesystem if failed to async write metadata buffer

Xin He <[email protected]>
drm/virtio: fix memory leak in virtio_gpu_cleanup_object()

Alex Zhuravlev <[email protected]>
ext4: skip non-loaded groups at cr=0/1 when scanning for good groups

Lukas Czerner <[email protected]>
ext4: handle read only external journal device

Jan Kara <[email protected]>
ext4: don't BUG on inconsistent journal feature

Lukas Czerner <[email protected]>
jbd2: make sure jh have b_transaction set in refile/unfile_buffer

Tobias Schramm <[email protected]>
spi: stm32: clear only asserted irq flags on interrupt

Michael Ellerman <[email protected]>
video: fbdev: controlfb: Fix build for COMPILE_TEST=y && PPC_PMAC=n

Christophe JAILLET <[email protected]>
usb: gadget: f_tcm: Fix some resource leaks in some error paths

Jason Wang <[email protected]>
vdpa: ifcvf: free config irq in ifcvf_free_irq()

Jason Wang <[email protected]>
vdpa: ifcvf: return err when fail to request config irq

Wolfram Sang <[email protected]>
i2c: rcar: in slave mode, clear NACK earlier

Andy Shevchenko <[email protected]>
i2c: core: Don't fail PRP0001 enumeration when no ID table exist

Lucas Stach <[email protected]>
drm/etnaviv: always start/stop scheduler in timeout processing

Dan Carpenter <[email protected]>
habanalabs: Fix memory corruption in debugfs

Hou Pu <[email protected]>
null_blk: fix passing of REQ_FUA flag in null_handle_rq

Martin Wilck <[email protected]>
nvme: multipath: round-robin: fix single non-optimized path case

Tianjia Zhang <[email protected]>
nvme-fc: Fix wrong return value in __nvme_fc_init_request()

Sagi Grimberg <[email protected]>
nvmet: fix a memory leak

Yufen Yu <[email protected]>
blkcg: fix memleak for iolatency

Ming Lei <[email protected]>
blk-mq: insert request not through ->queue_rq into sw/scheduler queue

Jason Baron <[email protected]>
hwmon: (nct7904) Correct divide by 0

Dmitry Monakhov <[email protected]>
bfq: fix blkio cgroup leakage v4

Matthew Wilcox (Oracle) <[email protected]>
block: Fix page_is_mergeable() for compound pages

Rob Clark <[email protected]>
drm/msm/adreno: fix updating ring fence

Ming Lei <[email protected]>
block: virtio_blk: fix handling single range discard request

Ming Lei <[email protected]>
block: respect queue limit of max discard segment

J. Bruce Fields <[email protected]>
nfsd: fix oops on mixed NFSv4/NFSv3 client access

Alexander Tsoy <[email protected]>
ALSA: usb-audio: Add capture support for Saffire 6 (USB 1.1)

Rafael J. Wysocki <[email protected]>
cpufreq: intel_pstate: Fix EPP setting via sysfs in active mode

Chanwoo Choi <[email protected]>
PM / devfreq: Fix the wrong end with semicolon

Ansuel Smith <[email protected]>
PCI: qcom: Add missing reset for ipq806x

Abhishek Sahu <[email protected]>
PCI: qcom: Change duplicate PCI reset to phy reset

Ansuel Smith <[email protected]>
PCI: qcom: Add missing ipq806x clocks in PCIe driver

Tonghao Zhang <[email protected]>
net: openvswitch: introduce common code for flushing flows

Kefeng Wang <[email protected]>
arm64: Fix __cpu_logical_map undefined issue

Andrey Konovalov <[email protected]>
efi: provide empty efi_enter_virtual_mode implementation

Randy Dunlap <[email protected]>
pinctrl: mediatek: fix build for tristate changes

Hanks Chen <[email protected]>
pinctrl: mediatek: avoid virtual gpio trying to set reg

Nicolas Saenz Julienne <[email protected]>
brcmfmac: Set timeout value when configuring power save

Manish Narani <[email protected]>
mmc: sdhci-of-arasan: fix timings allocation code

Changming Liu <[email protected]>
USB: sisusbvga: Fix a potential UB casued by left shifting a negative value

Sasha Levin <[email protected]>
dmaengine: idxd: fix PCI_MSI build errors

Arnd Bergmann <[email protected]>
powerpc/spufs: add CONFIG_COREDUMP dependency

David Brazdil <[email protected]>
KVM: arm64: Fix symbol dependency in __hyp_call_panic_nvhe

Qingqing Zhuo <[email protected]>
drm/amd/display: fix compilation error on allmodconfig

Lewis Huang <[email protected]>
drm/amd/display: change global buffer to local buffer

Andrey Konovalov <[email protected]>
media: i2c: imx290: fix reset GPIO pin handling

Evgeny Novikov <[email protected]>
media: davinci: vpif_capture: fix potential double free

Mike Kravetz <[email protected]>
hugetlbfs: prevent filesystem stacking of hugetlbfs

Jason Baron <[email protected]>
EDAC/ie31200: Fallback if host bridge device is already initialized

Jarkko Nikula <[email protected]>
i2c: i801: Add support for Intel Tiger Lake PCH-H

Javed Hasan <[email protected]>
scsi: fcoe: Memory leak fix in fcoe_sysfs_fcf_del()

Xiubo Li <[email protected]>
ceph: do not access the kiocb after aio requests

Xiubo Li <[email protected]>
ceph: fix potential mdsc use-after-free crash

Pablo Neira Ayuso <[email protected]>
netfilter: nf_tables: report EEXIST on overlaps

Jing Xiangfeng <[email protected]>
scsi: iscsi: Do not put host in iscsi_set_flashnode_param()

Nikolay Borisov <[email protected]>
btrfs: make btrfs_qgroup_check_reserved_leak take btrfs_inode

Qu Wenruo <[email protected]>
btrfs: file: reserve qgroup space after the hole punch range is locked

Chris Wilson <[email protected]>
locking/lockdep: Fix overflow in presentation of average lock-time

Aditya Pakki <[email protected]>
drm/nouveau: Fix reference count leak in nouveau_connector_detect

Aditya Pakki <[email protected]>
drm/nouveau: fix reference count leak in nv50_disp_atomic_commit

Aditya Pakki <[email protected]>
drm/nouveau/drm/noveau: fix reference count leak in nouveau_fbcon_open

Li Guifu <[email protected]>
f2fs: fix use-after-free issue

Ikjoon Jang <[email protected]>
HID: quirks: add NOGET quirk for Logitech GROUP

Pierre-Louis Bossart <[email protected]>
ASoC: Intel: sof_sdw_rt711: remove properties in card remove

Hans Verkuil <[email protected]>
cec-api: prevent leaking memory through hole in structure

Dmitry Osipenko <[email protected]>
gpu: host1x: Put gather's BO on pinning error

Kaige Li <[email protected]>
ALSA: hda: Add support for Loongson 7A1000 controller

Peng Fan <[email protected]>
mips/vdso: Fix resource leaks in genvdso.c

Reto Schneider <[email protected]>
rtlwifi: rtl8192cu: Prevent leaking urb

Yangbo Lu <[email protected]>
ARM: dts: ls1021a: output PPS signal on FIPER2

Qiushi Wu <[email protected]>
PCI: Fix pci_create_slot() reference count leak

Aditya Pakki <[email protected]>
omapfb: fix multiple reference count leaks due to pm_runtime_get_sync

Jiaxun Yang <[email protected]>
MIPS: KVM: Limit Trap-and-Emulate to MIPS32R2 only

Chao Yu <[email protected]>
f2fs: fix error path in do_recover_data()

Dehe Gu <[email protected]>
f2fs: remove write attribute of main_blkaddr sysfs node

Desnes A. Nunes do Rosario <[email protected]>
selftests/powerpc: Purge extra count_pmc() calls of ebb selftests

Mike Christie <[email protected]>
scsi: target: Fix xcopy sess release leak

Dave Chinner <[email protected]>
xfs: Don't allow logging of XFS_ISTALE inodes

Dick Kennedy <[email protected]>
scsi: lpfc: Fix shost refcount mismatch when deleting vport

Alex Deucher <[email protected]>
drm/amdgpu/pm: fix ref count leak when pm_runtime_get_sync fails

Alex Deucher <[email protected]>
drm/amdkfd: fix ref count leak when pm_runtime_get_sync fails

Alex Deucher <[email protected]>
drm/amdgpu/fence: fix ref count leak when pm_runtime_get_sync fails

Navid Emamdoost <[email protected]>
drm/amdgpu/display: fix ref count leak when pm_runtime_get_sync fails

Navid Emamdoost <[email protected]>
drm/amdgpu: fix ref count leak in amdgpu_display_crtc_set_config

Navid Emamdoost <[email protected]>
drm/amd/display: fix ref count leak in amdgpu_drm_ioctl

Navid Emamdoost <[email protected]>
drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms

Aditya Pakki <[email protected]>
drm/radeon: fix multiple reference count leak

Qiushi Wu <[email protected]>
drm/amdkfd: Fix reference count leaks.

Gwendal Grignou <[email protected]>
platform/chrome: cros_ec_sensorhub: Fix EC timestamp overflow

Robin Murphy <[email protected]>
iommu/iova: Don't BUG on invalid PFNs

Andy Shevchenko <[email protected]>
mfd: intel-lpss: Add Intel Tiger Lake PCH-H PCI IDs

Bodo Stroesser <[email protected]>
scsi: target: tcmu: Fix crash on ARM during cmd completion

Evgeny Novikov <[email protected]>
staging: rts5208: fix memleaks on error handling paths in probe

Luis Chamberlain <[email protected]>
blktrace: ensure our debugfs dir exists

Alexander Popov <[email protected]>
gcc-plugins/stackleak: Don't instrument itself

Jia-Ju Bai <[email protected]>
media: pci: ttpci: av7110: fix possible buffer overflow caused by bad DMA value in debiirq()

Alexey Kardashevskiy <[email protected]>
powerpc/xive: Ignore kmemleak false positives

Stephan Gerhold <[email protected]>
arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep

Andy Shevchenko <[email protected]>
mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs

Qiushi Wu <[email protected]>
ASoC: tegra: Fix reference count leaks.

Qiushi Wu <[email protected]>
ASoC: img-parallel-out: Fix a reference count leak

Qiushi Wu <[email protected]>
ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt

Zhenzhong Duan <[email protected]>
EDAC/mc: Call edac_inc_ue_error() before panic

Guchun Chen <[email protected]>
drm/amdgpu: fix RAS memory leak in error case

Kai-Heng Feng <[email protected]>
ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop

Kai-Heng Feng <[email protected]>
ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged

Randy Dunlap <[email protected]>
ALSA: pci: delete repeated words in comments

Kai-Heng Feng <[email protected]>
ALSA: hda/hdmi: Add quirk to force connectivity

Kai Vehmanen <[email protected]>
ASoC: intel/skl/hda - fix probe regression on systems without i915

Hugh Dickins <[email protected]>
khugepaged: khugepaged_test_exit() check mmget_still_valid()


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

Diffstat:

Documentation/admin-guide/ext4.rst | 3 +
Makefile | 4 +-
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 ++++----
.../drm/amd/display/amdgpu_dm/amdgpu_dm_color.c | 10 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.c | 16 +-
.../amd/display/dc/dcn10/dcn10_stream_encoder.h | 14 ++
drivers/gpu/drm/amd/display/modules/color/Makefile | 2 +-
.../drm/amd/display/modules/color/color_gamma.c | 115 ++++++-----
.../drm/amd/display/modules/color/color_gamma.h | 18 +-
.../drm/amd/display/modules/color/color_table.c | 48 +++++
.../drm/amd/display/modules/color/color_table.h | 47 +++++
.../drm/amd/display/modules/freesync/freesync.c | 36 +++-
drivers/gpu/drm/amd/powerplay/hwmgr/smu10_hwmgr.c | 9 +-
.../gpu/drm/amd/powerplay/hwmgr/vega10_thermal.c | 22 ++-
.../gpu/drm/amd/powerplay/hwmgr/vega12_thermal.c | 21 +-
drivers/gpu/drm/amd/powerplay/hwmgr/vega20_hwmgr.c | 44 ++---
.../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 +-
.../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/btf_dump.c | 35 +++-
tools/lib/bpf/libbpf.c | 14 +-
.../testing/selftests/bpf/prog_tests/bpf_obj_id.c | 8 +-
tools/testing/selftests/bpf/prog_tests/btf_dump.c | 27 ++-
.../testing/selftests/bpf/prog_tests/core_extern.c | 4 +-
.../testing/selftests/bpf/prog_tests/core_reloc.c | 20 +-
.../selftests/bpf/prog_tests/fexit_bpf2bpf.c | 6 +-
.../selftests/bpf/prog_tests/flow_dissector.c | 2 +-
.../testing/selftests/bpf/prog_tests/global_data.c | 6 +-
tools/testing/selftests/bpf/prog_tests/mmap.c | 19 +-
.../selftests/bpf/prog_tests/prog_run_xattr.c | 2 +-
tools/testing/selftests/bpf/prog_tests/skb_ctx.c | 2 +-
.../selftests/bpf/prog_tests/test_global_funcs.c | 2 +-
.../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 +
.../powerpc/pmu/ebb/back_to_back_ebbs_test.c | 2 -
.../selftests/powerpc/pmu/ebb/cycles_test.c | 2 -
.../powerpc/pmu/ebb/cycles_with_freeze_test.c | 2 -
.../powerpc/pmu/ebb/cycles_with_mmcr2_test.c | 2 -
tools/testing/selftests/powerpc/pmu/ebb/ebb.c | 2 -
.../powerpc/pmu/ebb/ebb_on_willing_child_test.c | 2 -
.../powerpc/pmu/ebb/lost_exception_test.c | 1 -
.../selftests/powerpc/pmu/ebb/multi_counter_test.c | 7 -
.../powerpc/pmu/ebb/multi_ebb_procs_test.c | 2 -
.../selftests/powerpc/pmu/ebb/pmae_handling_test.c | 2 -
.../powerpc/pmu/ebb/pmc56_overflow_test.c | 2 -
314 files changed, 2904 insertions(+), 1353 deletions(-)



2020-09-01 16:13:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 008/255] EDAC/mc: Call edac_inc_ue_error() before panic

From: Zhenzhong Duan <[email protected]>

[ Upstream commit e9ff6636d3f97a764487999754c0bfee9d2c231e ]

By calling edac_inc_ue_error() before panic, we get a correct UE error
count for core dump analysis.

Signed-off-by: Zhenzhong Duan <[email protected]>
Signed-off-by: Tony Luck <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/edac/edac_mc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/edac/edac_mc.c b/drivers/edac/edac_mc.c
index 5813e931f2f00..01ff71f7b6456 100644
--- a/drivers/edac/edac_mc.c
+++ b/drivers/edac/edac_mc.c
@@ -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)
--
2.25.1



2020-09-01 16:13:51

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 007/255] drm/amdgpu: fix RAS memory leak in error case

From: Guchun Chen <[email protected]>

[ Upstream commit 5e91160ac0b5cfbbaeb62cbff8b069262095f744 ]

RAS context memory needs to freed in failure case.

Signed-off-by: Guchun Chen <[email protected]>
Reviewed-by: Tao Zhou <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c | 19 ++++++++++---------
1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
index 50fe08bf2f727..20a7d75b2eb88 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c
@@ -1914,9 +1914,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 +1926,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 */
--
2.25.1



2020-09-01 16:13:54

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 025/255] drm/amdgpu: fix ref count leak in amdgpu_driver_open_kms

From: Navid Emamdoost <[email protected]>

[ Upstream commit 9ba8923cbbe11564dd1bf9f3602add9a9cfbb5c6 ]

in amdgpu_driver_open_kms the call to pm_runtime_get_sync increments the
counter even in case of failure, leading to incorrect
ref count. In case of failure, decrement the ref count before returning.

Signed-off-by: Navid Emamdoost <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
index 21292098bc023..0c49ab17be303 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c
@@ -992,7 +992,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 +1043,7 @@ error_pasid:

out_suspend:
pm_runtime_mark_last_busy(dev->dev);
+pm_put:
pm_runtime_put_autosuspend(dev->dev);

return r;
--
2.25.1



2020-09-01 16:13:55

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 016/255] gcc-plugins/stackleak: Dont instrument itself

From: Alexander Popov <[email protected]>

[ Upstream commit 005e696df65d0ff90468ecf38a50aa584dc82421 ]

There is no need to try instrumenting functions in kernel/stackleak.c.
Otherwise that can cause issues if the cleanup pass of stackleak gcc plugin
is disabled.

Signed-off-by: Alexander Popov <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Kees Cook <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
kernel/Makefile | 1 +
1 file changed, 1 insertion(+)

diff --git a/kernel/Makefile b/kernel/Makefile
index f3218bc5ec69f..155b5380500ad 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -125,6 +125,7 @@ obj-$(CONFIG_WATCH_QUEUE) += watch_queue.o

obj-$(CONFIG_SYSCTL_KUNIT_TEST) += sysctl-test.o

+CFLAGS_stackleak.o += $(DISABLE_STACKLEAK_PLUGIN)
obj-$(CONFIG_GCC_PLUGIN_STACKLEAK) += stackleak.o
KASAN_SANITIZE_stackleak.o := n
KCSAN_SANITIZE_stackleak.o := n
--
2.25.1



2020-09-01 16:14:23

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 048/255] HID: quirks: add NOGET quirk for Logitech GROUP

From: Ikjoon Jang <[email protected]>

[ Upstream commit 68f775ddd2a6f513e225f9a565b054ab48fef142 ]

Add HID_QUIRK_NOGET for Logitech GROUP device.

Logitech GROUP is a compound with camera and audio.
When the HID interface in an audio device is requested to get
specific report id, all following control transfers are stalled
and never be restored back.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=203419
Signed-off-by: Ikjoon Jang <[email protected]>
Signed-off-by: Jiri Kosina <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/hid/hid-ids.h | 1 +
drivers/hid/hid-quirks.c | 1 +
2 files changed, 2 insertions(+)

diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 6f370e020feb3..7cfa9785bfbb0 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -773,6 +773,7 @@
#define USB_DEVICE_ID_LOGITECH_G27_WHEEL 0xc29b
#define USB_DEVICE_ID_LOGITECH_WII_WHEEL 0xc29c
#define USB_DEVICE_ID_LOGITECH_ELITE_KBD 0xc30a
+#define USB_DEVICE_ID_LOGITECH_GROUP_AUDIO 0x0882
#define USB_DEVICE_ID_S510_RECEIVER 0xc50c
#define USB_DEVICE_ID_S510_RECEIVER_2 0xc517
#define USB_DEVICE_ID_LOGITECH_CORDLESS_DESKTOP_LX500 0xc512
diff --git a/drivers/hid/hid-quirks.c b/drivers/hid/hid-quirks.c
index 934fc0a798d4d..c242150d35a3a 100644
--- a/drivers/hid/hid-quirks.c
+++ b/drivers/hid/hid-quirks.c
@@ -179,6 +179,7 @@ static const struct hid_device_id hid_quirks[] = {
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP_LTD2, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_QUAD_USB_JOYPAD), HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
{ HID_USB_DEVICE(USB_VENDOR_ID_XIN_MO, USB_DEVICE_ID_XIN_MO_DUAL_ARCADE), HID_QUIRK_MULTI_INPUT },
+ { HID_USB_DEVICE(USB_VENDOR_ID_LOGITECH, USB_DEVICE_ID_LOGITECH_GROUP_AUDIO), HID_QUIRK_NOGET },

{ 0 }
};
--
2.25.1



2020-09-01 16:14:22

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 014/255] powerpc/xive: Ignore kmemleak false positives

From: Alexey Kardashevskiy <[email protected]>

[ Upstream commit f0993c839e95dd6c7f054a1015e693c87e33e4fb ]

xive_native_provision_pages() allocates memory and passes the pointer to
OPAL so kmemleak cannot find the pointer usage in the kernel memory and
produces a false positive report (below) (even if the kernel did scan
OPAL memory, it is unable to deal with __pa() addresses anyway).

This silences the warning.

unreferenced object 0xc000200350c40000 (size 65536):
comm "qemu-system-ppc", pid 2725, jiffies 4294946414 (age 70776.530s)
hex dump (first 32 bytes):
02 00 00 00 50 00 00 00 00 00 00 00 00 00 00 00 ....P...........
01 00 08 07 00 00 00 00 00 00 00 00 00 00 00 00 ................
backtrace:
[<0000000081ff046c>] xive_native_alloc_vp_block+0x120/0x250
[<00000000d555d524>] kvmppc_xive_compute_vp_id+0x248/0x350 [kvm]
[<00000000d69b9c9f>] kvmppc_xive_connect_vcpu+0xc0/0x520 [kvm]
[<000000006acbc81c>] kvm_arch_vcpu_ioctl+0x308/0x580 [kvm]
[<0000000089c69580>] kvm_vcpu_ioctl+0x19c/0xae0 [kvm]
[<00000000902ae91e>] ksys_ioctl+0x184/0x1b0
[<00000000f3e68bd7>] sys_ioctl+0x48/0xb0
[<0000000001b2c127>] system_call_exception+0x124/0x1f0
[<00000000d2b2ee40>] system_call_common+0xe8/0x214

Signed-off-by: Alexey Kardashevskiy <[email protected]>
Signed-off-by: Michael Ellerman <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Sasha Levin <[email protected]>
---
arch/powerpc/sysdev/xive/native.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 71b881e554fcb..cb58ec7ce77ac 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -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;
--
2.25.1



2020-09-01 16:14:29

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 006/255] ALSA: hda/hdmi: Use force connectivity quirk on another HP desktop

From: Kai-Heng Feng <[email protected]>

[ Upstream commit d96f27c80b65437a7b572647ecb4717ec9a50c98 ]

There's another HP desktop has buggy BIOS which flags the Port
Connectivity bit as no connection.

Apply force connectivity quirk to enable DP/HDMI audio.

Signed-off-by: Kai-Heng Feng <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
sound/pci/hda/patch_hdmi.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index b62cd3abb8273..f0c6d2907e396 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1806,6 +1806,7 @@ static int hdmi_add_cvt(struct hda_codec *codec, hda_nid_t cvt_nid)
}

static const struct snd_pci_quirk force_connect_list[] = {
+ SND_PCI_QUIRK(0x103c, 0x870f, "HP", 1),
SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1),
{}
};
--
2.25.1



2020-09-01 16:14:36

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 043/255] mips/vdso: Fix resource leaks in genvdso.c

From: Peng Fan <[email protected]>

[ Upstream commit a859647b4e6bfeb192284d27d24b6a0c914cae1d ]

Close "fd" before the return of map_vdso() and close "out_file"
in main().

Signed-off-by: Peng Fan <[email protected]>
Signed-off-by: Thomas Bogendoerfer <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/mips/vdso/genvdso.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/mips/vdso/genvdso.c b/arch/mips/vdso/genvdso.c
index be57b832bbe0a..ccba50ec8a40e 100644
--- a/arch/mips/vdso/genvdso.c
+++ b/arch/mips/vdso/genvdso.c
@@ -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;
}
--
2.25.1



2020-09-01 16:14:41

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 013/255] arm64: dts: qcom: msm8916: Pull down PDM GPIOs during sleep

From: Stephan Gerhold <[email protected]>

[ Upstream commit e2ee9edc282961783d519c760bbaa20fed4dec38 ]

The original qcom kernel changed the PDM GPIOs to be pull-down
during sleep at some point. Reportedly this was done because
there was some "leakage at PDM outputs during sleep":

https://source.codeaurora.org/quic/la/kernel/msm-3.10/commit/?id=0f87e08c1cd3e6484a6f7fb3e74e37340bdcdee0

I cannot say how effective this is, but everything seems to work
fine with this change so let's apply the same to mainline just
to be sure.

Cc: Srinivas Kandagatla <[email protected]>
Signed-off-by: Stephan Gerhold <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Bjorn Andersson <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8916-pins.dtsi | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
index 5785bf0a807ce..591f48a575353 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-pins.dtsi
@@ -569,7 +569,7 @@
pins = "gpio63", "gpio64", "gpio65", "gpio66",
"gpio67", "gpio68";
drive-strength = <2>;
- bias-disable;
+ bias-pull-down;
};
};
};
--
2.25.1



2020-09-01 16:14:49

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 040/255] PCI: Fix pci_create_slot() reference count leak

From: Qiushi Wu <[email protected]>

[ Upstream commit 8a94644b440eef5a7b9c104ac8aa7a7f413e35e5 ]

kobject_init_and_add() takes a reference even when it fails. If it returns
an error, kobject_put() must be called to clean up the memory associated
with the object.

When kobject_init_and_add() fails, call kobject_put() instead of kfree().

b8eb718348b8 ("net-sysfs: Fix reference count leak in
rx|netdev_queue_add_kobject") fixed a similar problem.

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Qiushi Wu <[email protected]>
Signed-off-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/pci/slot.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index cc386ef2fa122..3861505741e6d 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -268,13 +268,16 @@ placeholder:
slot_name = make_slot_name(name);
if (!slot_name) {
err = -ENOMEM;
+ kfree(slot);
goto err;
}

err = kobject_init_and_add(&slot->kobj, &pci_slot_ktype, NULL,
"%s", slot_name);
- if (err)
+ if (err) {
+ kobject_put(&slot->kobj);
goto err;
+ }

INIT_LIST_HEAD(&slot->list);
list_add(&slot->list, &parent->slots);
@@ -293,7 +296,6 @@ out:
mutex_unlock(&pci_slot_mutex);
return slot;
err:
- kfree(slot);
slot = ERR_PTR(err);
goto out;
}
--
2.25.1



2020-09-01 16:15:01

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 032/255] scsi: lpfc: Fix shost refcount mismatch when deleting vport

From: Dick Kennedy <[email protected]>

[ Upstream commit 03dbfe0668e6692917ac278883e0586cd7f7d753 ]

When vports are deleted, it is observed that there is memory/kthread
leakage as the vport isn't fully being released.

There is a shost reference taken in scsi_add_host_dma that is not released
during scsi_remove_host. It was noticed that other drivers resolve this by
doing a scsi_host_put after calling scsi_remove_host.

The vport_delete routine is taking two references one that corresponds to
an access to the scsi_host in the vport_delete routine and another that is
released after the adapter mailbox command completes that destroys the VPI
that corresponds to the vport.

Remove one of the references taken such that the second reference that is
put will complete the missing scsi_add_host_dma reference and the shost
will be terminated.

Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Dick Kennedy <[email protected]>
Signed-off-by: James Smart <[email protected]>
Signed-off-by: Martin K. Petersen <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/scsi/lpfc/lpfc_vport.c | 26 ++++++++------------------
1 file changed, 8 insertions(+), 18 deletions(-)

diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c
index b766463579800..d0296f7cf45fc 100644
--- a/drivers/scsi/lpfc/lpfc_vport.c
+++ b/drivers/scsi/lpfc/lpfc_vport.c
@@ -642,27 +642,16 @@ lpfc_vport_delete(struct fc_vport *fc_vport)
vport->port_state < LPFC_VPORT_READY)
return -EAGAIN;
}
+
/*
- * This is a bit of a mess. We want to ensure the shost doesn't get
- * torn down until we're done with the embedded lpfc_vport structure.
- *
- * Beyond holding a reference for this function, we also need a
- * reference for outstanding I/O requests we schedule during delete
- * processing. But once we scsi_remove_host() we can no longer obtain
- * a reference through scsi_host_get().
- *
- * So we take two references here. We release one reference at the
- * bottom of the function -- after delinking the vport. And we
- * release the other at the completion of the unreg_vpi that get's
- * initiated after we've disposed of all other resources associated
- * with the port.
+ * Take early refcount for outstanding I/O requests we schedule during
+ * delete processing for unreg_vpi. Always keep this before
+ * scsi_remove_host() as we can no longer obtain a reference through
+ * scsi_host_get() after scsi_host_remove as shost is set to SHOST_DEL.
*/
if (!scsi_host_get(shost))
return VPORT_INVAL;
- if (!scsi_host_get(shost)) {
- scsi_host_put(shost);
- return VPORT_INVAL;
- }
+
lpfc_free_sysfs_attr(vport);

lpfc_debugfs_terminate(vport);
@@ -809,8 +798,9 @@ skip_logo:
if (!(vport->vpi_state & LPFC_VPI_REGISTERED) ||
lpfc_mbx_unreg_vpi(vport))
scsi_host_put(shost);
- } else
+ } else {
scsi_host_put(shost);
+ }

lpfc_free_vpi(phba, vport->vpi);
vport->work_port_events = 0;
--
2.25.1



2020-09-01 16:15:45

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 031/255] drm/amdgpu/pm: fix ref count leak when pm_runtime_get_sync fails

From: Alex Deucher <[email protected]>

[ Upstream commit 66429300e1bd9cdfbe96cfc475e4964db2a36921 ]

The call to pm_runtime_get_sync increments the counter even in case of
failure, leading to incorrect ref count.
In case of failure, decrement the ref count before returning.

Reviewed-by: Evan Quan <[email protected]>
Signed-off-by: Alex Deucher <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c | 220 ++++++++++++++++++-------
1 file changed, 165 insertions(+), 55 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
index 02e6f8c4dde08..459b81fc5aef4 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c
@@ -167,8 +167,10 @@ static ssize_t amdgpu_get_power_dpm_state(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
if (adev->smu.ppt_funcs->get_current_power_state)
@@ -212,8 +214,10 @@ static ssize_t amdgpu_set_power_dpm_state(struct device *dev,
return -EINVAL;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
mutex_lock(&adev->pm.mutex);
@@ -307,8 +311,10 @@ static ssize_t amdgpu_get_power_dpm_force_performance_level(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
level = smu_get_performance_level(&adev->smu);
@@ -369,8 +375,10 @@ static ssize_t amdgpu_set_power_dpm_force_performance_level(struct device *dev,
}

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
current_level = smu_get_performance_level(&adev->smu);
@@ -449,8 +457,10 @@ static ssize_t amdgpu_get_pp_num_states(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
ret = smu_get_power_num_states(&adev->smu, &data);
@@ -491,8 +501,10 @@ static ssize_t amdgpu_get_pp_cur_state(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
pm = smu_get_current_power_state(smu);
@@ -567,8 +579,10 @@ static ssize_t amdgpu_set_pp_force_state(struct device *dev,
state = data.states[idx];

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

/* only set user selected power states */
if (state != POWER_STATE_TYPE_INTERNAL_BOOT &&
@@ -608,8 +622,10 @@ static ssize_t amdgpu_get_pp_table(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
size = smu_sys_get_pp_table(&adev->smu, (void **)&table);
@@ -650,8 +666,10 @@ static ssize_t amdgpu_set_pp_table(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
ret = smu_sys_set_pp_table(&adev->smu, (void *)buf, count);
@@ -790,8 +808,10 @@ static ssize_t amdgpu_set_pp_od_clk_voltage(struct device *dev,
}

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
ret = smu_od_edit_dpm_table(&adev->smu, type,
@@ -847,8 +867,10 @@ static ssize_t amdgpu_get_pp_od_clk_voltage(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
size = smu_print_clk_levels(&adev->smu, SMU_OD_SCLK, buf);
@@ -905,8 +927,10 @@ static ssize_t amdgpu_set_pp_features(struct device *dev,
pr_debug("featuremask = 0x%llx\n", featuremask);

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
ret = smu_sys_set_pp_feature_mask(&adev->smu, featuremask);
@@ -942,8 +966,10 @@ static ssize_t amdgpu_get_pp_features(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_sys_get_pp_feature_mask(&adev->smu, buf);
@@ -1001,8 +1027,10 @@ static ssize_t amdgpu_get_pp_dpm_sclk(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_SCLK, buf);
@@ -1071,8 +1099,10 @@ static ssize_t amdgpu_set_pp_dpm_sclk(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_SCLK, mask, true);
@@ -1101,8 +1131,10 @@ static ssize_t amdgpu_get_pp_dpm_mclk(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_MCLK, buf);
@@ -1135,8 +1167,10 @@ static ssize_t amdgpu_set_pp_dpm_mclk(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_MCLK, mask, true);
@@ -1165,8 +1199,10 @@ static ssize_t amdgpu_get_pp_dpm_socclk(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_SOCCLK, buf);
@@ -1199,8 +1235,10 @@ static ssize_t amdgpu_set_pp_dpm_socclk(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_SOCCLK, mask, true);
@@ -1231,8 +1269,10 @@ static ssize_t amdgpu_get_pp_dpm_fclk(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_FCLK, buf);
@@ -1265,8 +1305,10 @@ static ssize_t amdgpu_set_pp_dpm_fclk(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_FCLK, mask, true);
@@ -1297,8 +1339,10 @@ static ssize_t amdgpu_get_pp_dpm_dcefclk(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_DCEFCLK, buf);
@@ -1331,8 +1375,10 @@ static ssize_t amdgpu_set_pp_dpm_dcefclk(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_DCEFCLK, mask, true);
@@ -1363,8 +1409,10 @@ static ssize_t amdgpu_get_pp_dpm_pcie(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_print_clk_levels(&adev->smu, SMU_PCIE, buf);
@@ -1397,8 +1445,10 @@ static ssize_t amdgpu_set_pp_dpm_pcie(struct device *dev,
return ret;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_force_clk_levels(&adev->smu, SMU_PCIE, mask, true);
@@ -1429,8 +1479,10 @@ static ssize_t amdgpu_get_pp_sclk_od(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
value = smu_get_od_percentage(&(adev->smu), SMU_OD_SCLK);
@@ -1462,8 +1514,10 @@ static ssize_t amdgpu_set_pp_sclk_od(struct device *dev,
return -EINVAL;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
value = smu_set_od_percentage(&(adev->smu), SMU_OD_SCLK, (uint32_t)value);
@@ -1498,8 +1552,10 @@ static ssize_t amdgpu_get_pp_mclk_od(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
value = smu_get_od_percentage(&(adev->smu), SMU_OD_MCLK);
@@ -1531,8 +1587,10 @@ static ssize_t amdgpu_set_pp_mclk_od(struct device *dev,
return -EINVAL;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
value = smu_set_od_percentage(&(adev->smu), SMU_OD_MCLK, (uint32_t)value);
@@ -1587,8 +1645,10 @@ static ssize_t amdgpu_get_pp_power_profile_mode(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
size = smu_get_power_profile_mode(&adev->smu, buf);
@@ -1650,8 +1710,10 @@ static ssize_t amdgpu_set_pp_power_profile_mode(struct device *dev,
parameter[parameter_size] = profile_mode;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev))
ret = smu_set_power_profile_mode(&adev->smu, parameter, parameter_size, true);
@@ -1687,8 +1749,10 @@ static ssize_t amdgpu_get_gpu_busy_percent(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return r;
+ }

/* read the IP busy sensor */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_LOAD,
@@ -1723,8 +1787,10 @@ static ssize_t amdgpu_get_mem_busy_percent(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return r;
+ }

/* read the IP busy sensor */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MEM_LOAD,
@@ -1770,8 +1836,10 @@ static ssize_t amdgpu_get_pcie_bw(struct device *dev,
return -ENODATA;

ret = pm_runtime_get_sync(ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(ddev->dev);
return ret;
+ }

amdgpu_asic_get_pcie_usage(adev, &count0, &count1);

@@ -2003,8 +2071,10 @@ static ssize_t amdgpu_hwmon_show_temp(struct device *dev,
return -EINVAL;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

switch (channel) {
case PP_TEMP_JUNCTION:
@@ -2134,8 +2204,10 @@ static ssize_t amdgpu_hwmon_get_pwm1_enable(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(adev->ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
pwm_mode = smu_get_fan_control_mode(&adev->smu);
@@ -2172,8 +2244,10 @@ static ssize_t amdgpu_hwmon_set_pwm1_enable(struct device *dev,
return err;

ret = pm_runtime_get_sync(adev->ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
smu_set_fan_control_mode(&adev->smu, value);
@@ -2220,8 +2294,10 @@ static ssize_t amdgpu_hwmon_set_pwm1(struct device *dev,
return -EPERM;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
pwm_mode = smu_get_fan_control_mode(&adev->smu);
@@ -2272,8 +2348,10 @@ static ssize_t amdgpu_hwmon_get_pwm1(struct device *dev,
return -EPERM;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
err = smu_get_fan_speed_percent(&adev->smu, &speed);
@@ -2305,8 +2383,10 @@ static ssize_t amdgpu_hwmon_get_fan1_input(struct device *dev,
return -EPERM;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
err = smu_get_fan_speed_rpm(&adev->smu, &speed);
@@ -2337,8 +2417,10 @@ static ssize_t amdgpu_hwmon_get_fan1_min(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MIN_FAN_RPM,
(void *)&min_rpm, &size);
@@ -2365,8 +2447,10 @@ static ssize_t amdgpu_hwmon_get_fan1_max(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_MAX_FAN_RPM,
(void *)&max_rpm, &size);
@@ -2392,8 +2476,10 @@ static ssize_t amdgpu_hwmon_get_fan1_target(struct device *dev,
return -EPERM;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
err = smu_get_fan_speed_rpm(&adev->smu, &rpm);
@@ -2424,8 +2510,10 @@ static ssize_t amdgpu_hwmon_set_fan1_target(struct device *dev,
return -EPERM;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
pwm_mode = smu_get_fan_control_mode(&adev->smu);
@@ -2473,8 +2561,10 @@ static ssize_t amdgpu_hwmon_get_fan1_enable(struct device *dev,
return -EPERM;

ret = pm_runtime_get_sync(adev->ddev->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return ret;
+ }

if (is_support_sw_smu(adev)) {
pwm_mode = smu_get_fan_control_mode(&adev->smu);
@@ -2519,8 +2609,10 @@ static ssize_t amdgpu_hwmon_set_fan1_enable(struct device *dev,
return -EINVAL;

err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev)) {
smu_set_fan_control_mode(&adev->smu, pwm_mode);
@@ -2551,8 +2643,10 @@ static ssize_t amdgpu_hwmon_show_vddgfx(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

/* get the voltage */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDGFX,
@@ -2590,8 +2684,10 @@ static ssize_t amdgpu_hwmon_show_vddnb(struct device *dev,
return -EINVAL;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

/* get the voltage */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_VDDNB,
@@ -2626,8 +2722,10 @@ static ssize_t amdgpu_hwmon_show_power_avg(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

/* get the voltage */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GPU_POWER,
@@ -2665,8 +2763,10 @@ static ssize_t amdgpu_hwmon_show_power_cap_max(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

if (is_support_sw_smu(adev)) {
smu_get_power_limit(&adev->smu, &limit, true, true);
@@ -2697,8 +2797,10 @@ static ssize_t amdgpu_hwmon_show_power_cap(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

if (is_support_sw_smu(adev)) {
smu_get_power_limit(&adev->smu, &limit, false, true);
@@ -2740,8 +2842,10 @@ static ssize_t amdgpu_hwmon_set_power_cap(struct device *dev,


err = pm_runtime_get_sync(adev->ddev->dev);
- if (err < 0)
+ if (err < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return err;
+ }

if (is_support_sw_smu(adev))
err = smu_set_power_limit(&adev->smu, value);
@@ -2771,8 +2875,10 @@ static ssize_t amdgpu_hwmon_show_sclk(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

/* get the sclk */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_SCLK,
@@ -2806,8 +2912,10 @@ static ssize_t amdgpu_hwmon_show_mclk(struct device *dev,
return -EPERM;

r = pm_runtime_get_sync(adev->ddev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(adev->ddev->dev);
return r;
+ }

/* get the sclk */
r = amdgpu_dpm_read_sensor(adev, AMDGPU_PP_SENSOR_GFX_MCLK,
@@ -3669,8 +3777,10 @@ static int amdgpu_debugfs_pm_info(struct seq_file *m, void *data)
return -EPERM;

r = pm_runtime_get_sync(dev->dev);
- if (r < 0)
+ if (r < 0) {
+ pm_runtime_put_autosuspend(dev->dev);
return r;
+ }

amdgpu_device_ip_get_clockgating_state(adev, &flags);
seq_printf(m, "Clock Gating Flags Mask: 0x%x\n", flags);
--
2.25.1



2020-09-01 16:15:50

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 005/255] ALSA: hda/realtek: Fix pin default on Intel NUC 8 Rugged

From: Kai-Heng Feng <[email protected]>

[ Upstream commit e2d2fded6bdf3f7bb40718a208140dba8b4ec574 ]

The jack on Intel NUC 8 Rugged rear panel doesn't work.

The spec [1] states that the jack supports both headphone and
microphone, so override a Pin Complex which has both Amp-In and Amp-Out
to make the jack work.

Node 0x1b fits the requirement, and user confirmed the jack now works
with new pin config.

[1] https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/NUC8CCH_TechProdSpec.pdf
BugLink: https://bugs.launchpad.net/bugs/1875199

Signed-off-by: Kai-Heng Feng <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Takashi Iwai <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
sound/pci/hda/patch_realtek.c | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index b10d005786d07..b767d8fce828e 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -6167,6 +6167,7 @@ enum {
ALC269_FIXUP_CZC_L101,
ALC269_FIXUP_LEMOTE_A1802,
ALC269_FIXUP_LEMOTE_A190X,
+ ALC256_FIXUP_INTEL_NUC8_RUGGED,
};

static const struct hda_fixup alc269_fixups[] = {
@@ -7488,6 +7489,15 @@ static const struct hda_fixup alc269_fixups[] = {
},
.chain_id = ALC269_FIXUP_DMIC,
},
+ [ALC256_FIXUP_INTEL_NUC8_RUGGED] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x1b, 0x01a1913c }, /* use as headset mic, without its own jack detect */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC269_FIXUP_HEADSET_MODE
+ },
};

static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -7787,6 +7797,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x10ec, 0x118c, "Medion EE4254 MD62100", ALC256_FIXUP_MEDION_HEADSET_NO_PRESENCE),
SND_PCI_QUIRK(0x1c06, 0x2013, "Lemote A1802", ALC269_FIXUP_LEMOTE_A1802),
SND_PCI_QUIRK(0x1c06, 0x2015, "Lemote A190X", ALC269_FIXUP_LEMOTE_A190X),
+ SND_PCI_QUIRK(0x8086, 0x2080, "Intel NUC 8 Rugged", ALC256_FIXUP_INTEL_NUC8_RUGGED),

#if 0
/* Below is a quirk table taken from the old code.
--
2.25.1



2020-09-01 16:16:02

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 012/255] mfd: intel-lpss: Add Intel Emmitsburg PCH PCI IDs

From: Andy Shevchenko <[email protected]>

[ Upstream commit 3ea2e4eab64cefa06055bb0541fcdedad4b48565 ]

Intel Emmitsburg PCH has the same LPSS than Intel Ice Lake.
Add the new IDs to the list of supported devices.

Signed-off-by: Andy Shevchenko <[email protected]>
Signed-off-by: Lee Jones <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
drivers/mfd/intel-lpss-pci.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/drivers/mfd/intel-lpss-pci.c b/drivers/mfd/intel-lpss-pci.c
index 046222684b8b2..17bcadc00a11c 100644
--- a/drivers/mfd/intel-lpss-pci.c
+++ b/drivers/mfd/intel-lpss-pci.c
@@ -201,6 +201,9 @@ static const struct pci_device_id intel_lpss_pci_ids[] = {
{ PCI_VDEVICE(INTEL, 0x1ac4), (kernel_ulong_t)&bxt_info },
{ PCI_VDEVICE(INTEL, 0x1ac6), (kernel_ulong_t)&bxt_info },
{ PCI_VDEVICE(INTEL, 0x1aee), (kernel_ulong_t)&bxt_uart_info },
+ /* EBG */
+ { PCI_VDEVICE(INTEL, 0x1bad), (kernel_ulong_t)&bxt_uart_info },
+ { PCI_VDEVICE(INTEL, 0x1bae), (kernel_ulong_t)&bxt_uart_info },
/* GLK */
{ PCI_VDEVICE(INTEL, 0x31ac), (kernel_ulong_t)&glk_i2c_info },
{ PCI_VDEVICE(INTEL, 0x31ae), (kernel_ulong_t)&glk_i2c_info },
--
2.25.1



2020-09-01 16:16:30

by Greg Kroah-Hartman

[permalink] [raw]
Subject: [PATCH 5.8 009/255] ASoC: img: Fix a reference count leak in img_i2s_in_set_fmt

From: Qiushi Wu <[email protected]>

[ Upstream commit c4c59b95b7f7d4cef5071b151be2dadb33f3287b ]

pm_runtime_get_sync() increments the runtime PM usage counter even
when it returns an error code, causing incorrect ref count if
pm_runtime_put_noidle() is not called in error handling paths.
Thus call pm_runtime_put_noidle() if pm_runtime_get_sync() fails.

Signed-off-by: Qiushi Wu <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Mark Brown <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
sound/soc/img/img-i2s-in.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/img/img-i2s-in.c b/sound/soc/img/img-i2s-in.c
index e30b66b94bf67..0843235d73c91 100644
--- a/sound/soc/img/img-i2s-in.c
+++ b/sound/soc/img/img-i2s-in.c
@@ -343,8 +343,10 @@ static int img_i2s_in_set_fmt(struct snd_soc_dai *dai, unsigned int fmt)
chan_control_mask = IMG_I2S_IN_CH_CTL_CLK_TRANS_MASK;

ret = pm_runtime_get_sync(i2s->dev);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put_noidle(i2s->dev);
return ret;
+ }

for (i = 0; i < i2s->active_channels; i++)
img_i2s_in_ch_disable(i2s, i);
--
2.25.1



2020-09-01 19:52:03

by Holger Hoffstätte

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On 2020-09-01 17:07, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.8.6 release.

This one has a bunch of things I care about, so I gave it a try
on both my server & desktop (Gentoo, x86_64). Applies & builds cleanly,
everything working fine: no spontaneous fires or unexpected screams
from the underworld.

Cheers!
Holger

2020-09-01 22:21:31

by Shuah Khan

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On 9/1/20 9:07 AM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.8.6 release.
> There are 255 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 03 Sep 2020 15:09:01 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.6-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>

Compiled and booted on my test system. No dmesg regressions.

Tested-by: Shuah Khan <[email protected]>

thanks,
-- Shuah

2020-09-02 05:46:20

by Naresh Kamboju

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On Tue, 1 Sep 2020 at 21:06, Greg Kroah-Hartman
<[email protected]> wrote:
>
> This is the start of the stable review cycle for the 5.8.6 release.
> There are 255 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu, 03 Sep 2020 15:09:01 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.6-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>

While running LTP CVE test suite on i386 this BUG triggered
after the known warning. Please find below full test log link [1].
This was reported on the mailing list on next-20200811 but
did not get any reply [2].

[ 138.177043] ------------[ cut here ]------------
[ 138.181675] WARNING: CPU: 1 PID: 8301 at mm/mremap.c:230
move_page_tables+0x6ef/0x720
[ 138.189515] Modules linked in: x86_pkg_temp_thermal
[ 138.194436] CPU: 1 PID: 8301 Comm: true Not tainted 5.8.6-rc1 #1
[ 138.194437] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
2.2 05/23/2018
[ 138.194439] EIP: move_page_tables+0x6ef/0x720

<>

[ 802.156512] BUG: unable to handle page fault for address: fe402000
[ 802.162703] #PF: supervisor write access in kernel mode
[ 802.167927] #PF: error_code(0x0002) - not-present page
[ 802.173064] *pde = 23e61067 *pte = 64b32163
[ 802.177329] Oops: 0002 [#1] SMP
[ 802.180469] CPU: 1 PID: 13118 Comm: cve-2017-17053 Tainted: G
W 5.8.6-rc1 #1
[ 802.188811] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
2.2 05/23/2018
[ 802.196199] EIP: memcpy+0x14/0x30
[ 802.199517] Code: e8 a1 72 c5 ff 0f 31 31 c3 59 58 eb 85 cc cc cc
cc cc cc cc cc cc 3e 8d 74 26 00 55 89 e5 57 89 c7 56 89 d6 53 89 cb
c1 e9 02 <f3> a5 89 d9 83 e1 03 74 02 f3 a4 5b 5e 5f 5d c3 8d b4 26 00
00 00
[ 802.218259] EAX: fe402000 EBX: 00010000 ECX: 00004000 EDX: fb3dd000
[ 802.224518] ESI: fb3dd000 EDI: fe402000 EBP: ea799ddc ESP: ea799dd0
[ 802.230773] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010206
[ 802.237551] CR0: 80050033 CR2: fe402000 CR3: 1eee9000 CR4: 003406d0
[ 802.243809] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 802.250065] DR6: fffe0ff0 DR7: 00000400
[ 802.253897] Call Trace:
[ 802.256345] ldt_dup_context+0x6b/0x90
[ 802.260093] dup_mm+0x2b3/0x480
[ 802.263230] copy_process+0x13d6/0x1650
[ 802.267062] _do_fork+0x7b/0x3b0
[ 802.270284] ? set_next_entity+0xa9/0x250
[ 802.274290] __ia32_sys_clone+0x77/0xa0
[ 802.278119] do_syscall_32_irqs_on+0x3d/0x250
[ 802.282472] ? do_fast_syscall_32+0x2d/0xc0
[ 802.286656] ? trace_hardirqs_on+0x30/0xf0
[ 802.290746] ? trace_hardirqs_off_finish+0x32/0xa0
[ 802.295533] ? do_SYSENTER_32+0x15/0x20
[ 802.299371] do_fast_syscall_32+0x49/0xc0
[ 802.303374] do_SYSENTER_32+0x15/0x20
[ 802.307032] entry_SYSENTER_32+0x9f/0xf2
[ 802.310956] EIP: 0xb7fbb549
[ 802.313747] Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01
10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f
34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d 76 00 58 b8 77 00 00 00 cd 80 90
8d 76
[ 802.332483] EAX: ffffffda EBX: 01200011 ECX: 00000000 EDX: 00000000
[ 802.338742] ESI: 00000000 EDI: b7dbdba8 EBP: b7dbd348 ESP: b7dbd2f0
[ 802.344998] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000246
[ 802.351776] Modules linked in: algif_hash x86_pkg_temp_thermal
[ 802.357608] CR2: 00000000fe402000
[ 802.360920] ---[ end trace ea48459ba50c2a87 ]---
[ 802.365542] EIP: memcpy+0x14/0x30
[ 802.368858] Code: e8 a1 72 c5 ff 0f 31 31 c3 59 58 eb 85 cc cc cc
cc cc cc cc cc cc 3e 8d 74 26 00 55 89 e5 57 89 c7 56 89 d6 53 89 cb
c1 e9 02 <f3> a5 89 d9 83 e1 03 74 02 f3 a4 5b 5e 5f 5d c3 8d b4 26 00
00 00
[ 802.387593] EAX: fe402000 EBX: 00010000 ECX: 00004000 EDX: fb3dd000
[ 802.393852] ESI: fb3dd000 EDI: fe402000 EBP: ea799ddc ESP: ea799dd0
[ 802.400107] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010206
[ 802.406887] CR0: 80050033 CR2: fe402000 CR3: 1eee9000 CR4: 003406d0
[ 802.413143] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
[ 802.419400] DR6: fffe0ff0 DR7: 00000400

full test log,
[1] https://qa-reports.linaro.org/lkft/linux-stable-rc-5.8-oe/build/v5.8.5-256-gad57c5b5e64d/testrun/3148295/suite/linux-log-parser/test/check-kernel-bug-1727425/log

[2] https://lore.kernel.org/linux-mm/CA+G9fYsiNgoh09h0paf1+UTKhPnn490QCoLB2dRFhMT+Cjh9RA@mail.gmail.com/

--
Linaro LKFT
https://lkft.linaro.org

2020-09-02 07:41:24

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On Wed, Sep 02, 2020 at 11:14:54AM +0530, Naresh Kamboju wrote:
> On Tue, 1 Sep 2020 at 21:06, Greg Kroah-Hartman
> <[email protected]> wrote:
> >
> > This is the start of the stable review cycle for the 5.8.6 release.
> > There are 255 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 03 Sep 2020 15:09:01 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.6-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
> >
>
> While running LTP CVE test suite on i386 this BUG triggered
> after the known warning. Please find below full test log link [1].
> This was reported on the mailing list on next-20200811 but
> did not get any reply [2].
>
> [ 138.177043] ------------[ cut here ]------------
> [ 138.181675] WARNING: CPU: 1 PID: 8301 at mm/mremap.c:230
> move_page_tables+0x6ef/0x720
> [ 138.189515] Modules linked in: x86_pkg_temp_thermal
> [ 138.194436] CPU: 1 PID: 8301 Comm: true Not tainted 5.8.6-rc1 #1
> [ 138.194437] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
> 2.2 05/23/2018
> [ 138.194439] EIP: move_page_tables+0x6ef/0x720
>
> <>
>
> [ 802.156512] BUG: unable to handle page fault for address: fe402000
> [ 802.162703] #PF: supervisor write access in kernel mode
> [ 802.167927] #PF: error_code(0x0002) - not-present page
> [ 802.173064] *pde = 23e61067 *pte = 64b32163
> [ 802.177329] Oops: 0002 [#1] SMP
> [ 802.180469] CPU: 1 PID: 13118 Comm: cve-2017-17053 Tainted: G
> W 5.8.6-rc1 #1
> [ 802.188811] Hardware name: Supermicro SYS-5019S-ML/X11SSH-F, BIOS
> 2.2 05/23/2018
> [ 802.196199] EIP: memcpy+0x14/0x30
> [ 802.199517] Code: e8 a1 72 c5 ff 0f 31 31 c3 59 58 eb 85 cc cc cc
> cc cc cc cc cc cc 3e 8d 74 26 00 55 89 e5 57 89 c7 56 89 d6 53 89 cb
> c1 e9 02 <f3> a5 89 d9 83 e1 03 74 02 f3 a4 5b 5e 5f 5d c3 8d b4 26 00
> 00 00
> [ 802.218259] EAX: fe402000 EBX: 00010000 ECX: 00004000 EDX: fb3dd000
> [ 802.224518] ESI: fb3dd000 EDI: fe402000 EBP: ea799ddc ESP: ea799dd0
> [ 802.230773] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010206
> [ 802.237551] CR0: 80050033 CR2: fe402000 CR3: 1eee9000 CR4: 003406d0
> [ 802.243809] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
> [ 802.250065] DR6: fffe0ff0 DR7: 00000400
> [ 802.253897] Call Trace:
> [ 802.256345] ldt_dup_context+0x6b/0x90
> [ 802.260093] dup_mm+0x2b3/0x480
> [ 802.263230] copy_process+0x13d6/0x1650
> [ 802.267062] _do_fork+0x7b/0x3b0
> [ 802.270284] ? set_next_entity+0xa9/0x250
> [ 802.274290] __ia32_sys_clone+0x77/0xa0
> [ 802.278119] do_syscall_32_irqs_on+0x3d/0x250
> [ 802.282472] ? do_fast_syscall_32+0x2d/0xc0
> [ 802.286656] ? trace_hardirqs_on+0x30/0xf0
> [ 802.290746] ? trace_hardirqs_off_finish+0x32/0xa0
> [ 802.295533] ? do_SYSENTER_32+0x15/0x20
> [ 802.299371] do_fast_syscall_32+0x49/0xc0
> [ 802.303374] do_SYSENTER_32+0x15/0x20
> [ 802.307032] entry_SYSENTER_32+0x9f/0xf2
> [ 802.310956] EIP: 0xb7fbb549
> [ 802.313747] Code: 03 74 c0 01 10 05 03 74 b8 01 10 06 03 74 b4 01
> 10 07 03 74 b0 01 10 08 03 74 d8 01 00 00 00 00 00 51 52 55 89 e5 0f
> 34 cd 80 <5d> 5a 59 c3 90 90 90 90 8d 76 00 58 b8 77 00 00 00 cd 80 90
> 8d 76
> [ 802.332483] EAX: ffffffda EBX: 01200011 ECX: 00000000 EDX: 00000000
> [ 802.338742] ESI: 00000000 EDI: b7dbdba8 EBP: b7dbd348 ESP: b7dbd2f0
> [ 802.344998] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b EFLAGS: 00000246
> [ 802.351776] Modules linked in: algif_hash x86_pkg_temp_thermal
> [ 802.357608] CR2: 00000000fe402000
> [ 802.360920] ---[ end trace ea48459ba50c2a87 ]---
> [ 802.365542] EIP: memcpy+0x14/0x30
> [ 802.368858] Code: e8 a1 72 c5 ff 0f 31 31 c3 59 58 eb 85 cc cc cc
> cc cc cc cc cc cc 3e 8d 74 26 00 55 89 e5 57 89 c7 56 89 d6 53 89 cb
> c1 e9 02 <f3> a5 89 d9 83 e1 03 74 02 f3 a4 5b 5e 5f 5d c3 8d b4 26 00
> 00 00
> [ 802.387593] EAX: fe402000 EBX: 00010000 ECX: 00004000 EDX: fb3dd000
> [ 802.393852] ESI: fb3dd000 EDI: fe402000 EBP: ea799ddc ESP: ea799dd0
> [ 802.400107] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010206
> [ 802.406887] CR0: 80050033 CR2: fe402000 CR3: 1eee9000 CR4: 003406d0
> [ 802.413143] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
> [ 802.419400] DR6: fffe0ff0 DR7: 00000400
>
> full test log,
> [1] https://qa-reports.linaro.org/lkft/linux-stable-rc-5.8-oe/build/v5.8.5-256-gad57c5b5e64d/testrun/3148295/suite/linux-log-parser/test/check-kernel-bug-1727425/log
>
> [2] https://lore.kernel.org/linux-mm/CA+G9fYsiNgoh09h0paf1+UTKhPnn490QCoLB2dRFhMT+Cjh9RA@mail.gmail.com/

As this also triggers on mainline/Linus's tree, I'll just let it be for
now, thanks!

greg k-h

2020-09-02 07:43:53

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On Tue, Sep 01, 2020 at 09:42:00PM +0200, Holger Hoffst?tte wrote:
> On 2020-09-01 17:07, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.8.6 release.
>
> This one has a bunch of things I care about, so I gave it a try
> on both my server & desktop (Gentoo, x86_64). Applies & builds cleanly,
> everything working fine: no spontaneous fires or unexpected screams
> from the underworld.

Wonderful, glad the underworld is happy with this release :)

Thanks for testing,

greg k-h

2020-09-03 09:31:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH 5.8 000/255] 5.8.6-rc1 review

On Tue, Sep 01, 2020 at 04:19:59PM -0600, Shuah Khan wrote:
> On 9/1/20 9:07 AM, Greg Kroah-Hartman wrote:
> > This is the start of the stable review cycle for the 5.8.6 release.
> > There are 255 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Thu, 03 Sep 2020 15:09:01 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.8.6-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.8.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
> >
>
> Compiled and booted on my test system. No dmesg regressions.
>
> Tested-by: Shuah Khan <[email protected]>

Thanks for testing all of these and letting me know.

greg k-h