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(-)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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