TencentOS-kernel/drivers
Rafael J. Wysocki fca05ab01f ACPI: thermal: Do not call acpi_thermal_check() directly
commit 81b704d3e4674e09781d331df73d76675d5ad8cb upstream.

Calling acpi_thermal_check() from acpi_thermal_notify() directly
is problematic if _TMP triggers Notify () on the thermal zone for
which it has been evaluated (which happens on some systems), because
it causes a new acpi_thermal_notify() invocation to be queued up
every time and if that takes place too often, an indefinite number of
pending work items may accumulate in kacpi_notify_wq over time.

Besides, it is not really useful to queue up a new invocation of
acpi_thermal_check() if one of them is pending already.

For these reasons, rework acpi_thermal_notify() to queue up a thermal
check instead of calling acpi_thermal_check() directly and only allow
one thermal check to be pending at a time.  Moreover, only allow one
acpi_thermal_check_fn() instance at a time to run
thermal_zone_device_update() for one thermal zone and make it return
early if it sees other instances running for the same thermal zone.

While at it, fold acpi_thermal_check() into acpi_thermal_check_fn(),
as it is only called from there after the other changes made here.

[This issue appears to have been exposed by commit 6d25be5782e4
 ("sched/core, workqueues: Distangle worker accounting from rq
 lock"), but it is unclear why it was not visible earlier.]

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=208877
Reported-by: Stephen Berman <stephen.berman@gmx.net>
Diagnosed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Tested-by: Stephen Berman <stephen.berman@gmx.net>
Cc: All applicable <stable@vger.kernel.org>
[bigeasy: Backported to v5.4.y]
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-04-12 12:51:49 +08:00
..
accessibility
acpi ACPI: thermal: Do not call acpi_thermal_check() directly 2021-04-12 12:51:49 +08:00
amba
android binder: add flag to clear buffer on txn complete 2021-03-16 16:43:28 +08:00
ata ata: sata_nv: Fix retrieving of active qcs 2021-03-16 16:39:39 +08:00
atm atm: idt77252: call pci_disable_device() on error path 2021-04-12 12:51:07 +08:00
auxdisplay
base driver core: Extend device_is_dependent() 2021-04-12 12:51:38 +08:00
bcma
block xen-blkfront: allow discard-* nodes to be optional 2021-04-12 12:51:45 +08:00
bluetooth Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close 2021-04-12 12:51:10 +08:00
bus bus: fsl-mc: fix error return code in fsl_mc_object_allocate() 2021-03-16 16:43:09 +08:00
cdrom
char virtio: virtio_console: fix DMA memory allocation for rproc serial 2021-03-16 16:40:54 +08:00
clk clk: tegra30: Add hda clock default rates to clock driver 2021-04-12 12:51:34 +08:00
clocksource clocksource/drivers/arm_arch_timer: Correct fault programming of CNTKCTL_EL1.EVNTI 2021-03-16 16:43:03 +08:00
connector
counter
cpufreq cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get() 2021-04-12 12:51:18 +08:00
cpuidle cpuidle: Fixup IRQ state 2021-03-16 16:35:25 +08:00
crypto chtls: Fix chtls resources release sequence 2021-04-12 12:51:17 +08:00
dax device-dax/core: Fix memory leak when rmmod dax.ko 2021-03-16 16:43:45 +08:00
dca
devfreq PM / devfreq: tegra30: Fix integer overflow on CPU's freq max out 2021-03-16 16:36:35 +08:00
dio
dma dmaengine: xilinx_dma: fix mixed_enum_type coverity warning 2021-04-12 12:51:19 +08:00
dma-buf dmabuf: fix use-after-free of dmabuf's file->f_inode 2021-04-12 12:51:14 +08:00
edac EDAC/amd64: Fix PCI component registration 2021-03-16 16:43:29 +08:00
eisa
extcon extcon: max77693: Fix modalias string 2021-03-16 16:43:12 +08:00
firewire
firmware firmware: imx: select SOC_BUS to fix firmware build 2021-04-12 12:51:46 +08:00
fpga fpga: dfl: fix bug in port reset handshake 2021-03-16 16:32:23 +08:00
fsi
gnss
gpio gpio: mvebu: fix pwm .get_state period calculation 2021-04-12 12:51:40 +08:00
gpu drm/i915: Check for all subplatform bits 2021-04-12 12:51:45 +08:00
greybus
hid HID: wacom: Correct NULL dereference on AES pen proximity 2021-04-12 12:51:41 +08:00
hsi HSI: omap_ssi: Don't jump to free ID in ssi_add_controller() 2021-03-16 16:42:54 +08:00
hv Drivers: hv: vmbus: Allow cleanup of VMBUS_CONNECT_CPU if disconnected 2021-03-16 16:41:31 +08:00
hwmon hwmon: (pwm-fan) Ensure that calculation doesn't discard big period values 2021-04-12 12:51:24 +08:00
hwspinlock
hwtracing stm class: Fix module init return on allocation failure 2021-04-12 12:51:37 +08:00
i2c i2c: octeon: check correct size of maximum RECV_LEN packet 2021-04-12 12:51:36 +08:00
i3c i3c master: fix missing destroy_workqueue() on error in i3c_master_register 2021-03-16 16:43:55 +08:00
ide scsi: ide: Do not set the RQF_PREEMPT flag for sense requests 2021-04-12 12:51:06 +08:00
idle
iio iio: ad5504: Fix setting power-down state 2021-04-12 12:51:37 +08:00
infiniband RDMA/cxgb4: Fix the reported max_recv_sge value 2021-04-12 12:51:46 +08:00
input Input: cyapa_gen6 - fix out-of-bounds stack access 2021-03-16 16:43:23 +08:00
interconnect interconnect: qcom: qcs404: Remove GPU and display RPM IDs 2021-03-16 16:42:11 +08:00
iommu iommu/vt-d: Don't dereference iommu_device if IOMMU_API is not built 2021-04-12 12:51:48 +08:00
ipack
irqchip irqchip/mips-cpu: Set IPI domain parent chip 2021-04-12 12:51:37 +08:00
isdn misdn: dsp: select CONFIG_BITREVERSE 2021-04-12 12:51:24 +08:00
leds leds: trigger: fix potential deadlock with libata 2021-04-12 12:51:44 +08:00
lightnvm lightnvm: fix memory leak when submit fails 2021-04-12 12:51:39 +08:00
macintosh macintosh/via-macii: Access autopoll_devs when inside lock 2021-03-16 16:33:39 +08:00
mailbox mailbox: avoid timer start from callback 2021-03-16 16:38:59 +08:00
mcb
md dm integrity: conditionally disable "recalculate" feature 2021-04-12 12:51:42 +08:00
media media: rc: ensure that uevent can be read directly after rc device register 2021-04-12 12:51:43 +08:00
memory memory: emif: Remove bogus debugfs error handling 2021-03-16 16:39:52 +08:00
memstick memstick: r592: Fix error return in r592_probe() 2021-03-16 16:43:02 +08:00
message scsi: mptfusion: Fix null pointer dereferences in mptscsih_remove() 2021-03-16 16:39:58 +08:00
mfd mfd: sprd: Add wakeup capability for PMIC IRQ 2021-03-16 16:40:48 +08:00
misc habanalabs: Fix memleak in hl_device_reset 2021-04-12 12:51:24 +08:00
mmc mmc: sdhci-xenon: fix 1.8v regulator stabilization 2021-04-12 12:51:33 +08:00
mtd Revert "mtd: spinand: Fix OOB read" 2021-04-12 12:51:04 +08:00
mux
net ibmvnic: Ensure that CRQ entry read are correctly ordered 2021-04-12 12:51:48 +08:00
nfc nfc: s3fwrn5: Release the nfc firmware 2021-03-16 16:43:15 +08:00
ntb NTB: hw: amd: fix an issue about leak system resources 2021-03-16 16:39:10 +08:00
nubus
nvdimm libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels 2021-03-16 16:43:46 +08:00
nvme nvme-multipath: Early exit if no path is available 2021-04-12 12:51:47 +08:00
nvmem nvmem: core: fix possibly memleak when use nvmem_cell_info_to_nvmem_cell() 2021-03-16 16:38:43 +08:00
of of/address: Fix of_node memory leak in of_dma_is_coherent 2021-03-16 16:40:51 +08:00
opp opp: Reduce the size of critical section in _opp_table_kref_release() 2021-03-16 16:40:41 +08:00
oprofile
parisc parisc: mask out enable and reserved bits from sba imask 2021-03-16 16:33:54 +08:00
parport
pci drivers/pci: Add ecam quirk for Ampere Altra SOC. 2021-03-16 16:43:59 +08:00
pcmcia
perf drivers/perf: thunderx2_pmu: Fix memory resource error handling 2021-03-16 16:38:23 +08:00
phy phy: renesas: rcar-gen3-usb2: disable runtime pm in case of failure 2021-03-16 16:43:03 +08:00
pinctrl pinctrl: ingenic: Fix JZ4760 support 2021-04-12 12:51:38 +08:00
platform platform/x86: intel-vbtn: Drop HP Stream x360 Convertible PC 11 from allow-list 2021-04-12 12:51:36 +08:00
pnp
power power: supply: bq24190_charger: fix reference leak 2021-03-16 16:42:55 +08:00
powercap powercap: restrict energy meter to root access 2021-03-16 16:40:32 +08:00
pps
ps3 powerpc/ps3: use dma_mapping_error() 2021-03-16 16:43:15 +08:00
ptp
pwm pwm: lp3943: Dynamically allocate PWM chip base 2021-03-16 16:43:18 +08:00
rapidio rapidio: fix the missed put_device() for rio_mport_add_riodev 2021-03-16 16:38:59 +08:00
ras
regulator regulator: bd718x7: Add enable times 2021-04-12 12:51:24 +08:00
remoteproc remoteproc: qcom: Fix potential NULL dereference in adsp_init_mmio() 2021-03-16 16:43:11 +08:00
reset
rpmsg rpmsg: glink: Use complete_all for open states 2021-03-16 16:39:50 +08:00
rtc rtc: pl031: fix resource leak in pl031_probe 2021-03-16 16:43:54 +08:00
s390 s390/vfio-ap: No need to disable IRQ after queue reset 2021-04-12 12:51:43 +08:00
sbus
scsi scsi: megaraid_sas: Fix MEGASAS_IOC_FIRMWARE regression 2021-04-12 12:51:36 +08:00
sfi
sh
siox
slimbus slimbus: qcom-ngd-ctrl: Avoid sending power requests without QMI 2021-03-16 16:42:54 +08:00
soc drivers: soc: atmel: add null entry at the end of at91_soc_allowed_list[] 2021-04-12 12:51:44 +08:00
soundwire soundwire: bus: disable pm_runtime in sdw_slave_delete 2021-03-16 16:36:55 +08:00
spi spi: cadence: cache reference clock rate during probe 2021-04-12 12:51:31 +08:00
spmi
ssb
staging exfat: Month timestamp metadata accidentally incremented 2021-04-12 12:51:17 +08:00
target scsi: target: Fix XCOPY NAA identifier lookup 2021-04-12 12:51:14 +08:00
tc
tee tee: optee: replace might_sleep with cond_resched 2021-04-12 12:51:45 +08:00
thermal thermal/drivers/cpufreq_cooling: Update cpufreq_state only if state has changed 2021-03-16 16:43:48 +08:00
thunderbolt thunderbolt: Fix use-after-free in remove_unplugged_switch() 2021-03-16 16:42:03 +08:00
tty serial: mvebu-uart: fix tx lost characters at power off 2021-04-12 12:51:37 +08:00
uio uio: avoid to request_irq when the legacy irq is not connected 2021-03-16 16:43:58 +08:00
usb xhci: tegra: Delay for disabling LFPS detector 2021-04-12 12:51:38 +08:00
vfio vfio iommu: Add dma available capability 2021-04-12 12:51:15 +08:00
vhost vhost_net: fix ubuf refcount incorrectly when sendmsg fails 2021-04-12 12:51:09 +08:00
video video: hyperv_fb: Fix the mmap() regression for v5.4.y and older 2021-04-12 12:51:10 +08:00
virt drivers/virt/fsl_hypervisor: Fix error handling path 2021-03-16 16:38:36 +08:00
virtio virtio_ring: Fix two use after free bugs 2021-03-16 16:43:19 +08:00
visorbus
vlynq
vme
w1 w1: mxc_w1: Fix timeout resolution problem leading to bus error 2021-03-16 16:39:58 +08:00
watchdog watchdog: coh901327: add COMMON_CLK dependency 2021-03-16 16:43:17 +08:00
xen xen: Fix XenStore initialisation for XS_LOCAL 2021-04-12 12:51:44 +08:00
zorro
Kconfig
Makefile