kernel-fxtec-pro1x/drivers/cpufreq
Oliver O'Halloran 35e68aef65 cpufreq: powernv: Fix use-after-free
commit d0a72efac89d1c35ac55197895201b7b94c5e6ef upstream.

The cpufreq driver has a use-after-free that we can hit if:

a) There's an OCC message pending when the notifier is registered, and
b) The cpufreq driver fails to register with the core.

When a) occurs the notifier schedules a workqueue item to handle the
message. The backing work_struct is located on chips[].throttle and
when b) happens we clean up by freeing the array. Once we get to
the (now free) queued item and the kernel crashes.

Fixes: c5e29ea7ac ("cpufreq: powernv: Fix bugs in powernv_cpufreq_{init/exit}")
Cc: stable@vger.kernel.org # v4.6+
Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
Reviewed-by: Gautham R. Shenoy <ego@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20200206062622.28235-1-oohall@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-04-17 10:48:52 +02:00
..
acpi-cpufreq.c cpufreq: acpi-cpufreq: Report if CPU doesn't support boost technologies 2019-04-05 22:33:03 +02:00
amd_freq_sensitivity.c
arm_big_little.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
arm_big_little.h
arm_big_little_dt.c
armada-37xx-cpufreq.c cpufreq: armada-37xx: fix frequency calculation for opp 2019-05-10 17:54:10 +02:00
bmips-cpufreq.c treewide: kmalloc() -> kmalloc_array() 2018-06-12 16:19:22 -07:00
brcmstb-avs-cpufreq.c cpufreq: brcmstb-avs-cpufreq: Fix types for voltage/frequency 2020-01-27 14:50:53 +01:00
cppc_cpufreq.c cpufreq / CPPC: Add cpuinfo_cur_freq support for CPPC 2018-07-18 10:13:16 +02:00
cpufreq-dt-platdev.c cpufreq: Add Kryo CPU scaling driver 2018-05-30 12:53:11 +02:00
cpufreq-dt.c cpufreq: dt: Try freeing static OPPs only if we have added them 2018-11-13 11:08:24 -08:00
cpufreq-dt.h cpufreq: dt: Allow platform specific suspend/resume callbacks 2018-05-10 11:43:59 +02:00
cpufreq-nforce2.c
cpufreq.c cpufreq: Register drivers only after CPU devices have been registered 2019-12-31 16:36:01 +01:00
cpufreq_conservative.c cpufreq: conservative: Take limits changes into account properly 2018-11-13 11:08:16 -08:00
cpufreq_governor.c sched/cpufreq: Fix kobject memleak 2019-05-31 06:46:12 -07:00
cpufreq_governor.h
cpufreq_governor_attr_set.c
cpufreq_ondemand.c
cpufreq_ondemand.h
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c
cpufreq_userspace.c
davinci-cpufreq.c
e_powersaver.c
elanfreq.c
freq_table.c cpufreq: Drop cpufreq_table_validate_and_show() 2018-04-10 08:40:45 +02:00
gx-suspmod.c
highbank-cpufreq.c
ia64-acpi-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
imx6q-cpufreq.c cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL 2020-04-17 10:48:38 +02:00
intel_pstate.c x86/cpu: Sanitize FAM6_ATOM naming 2019-05-14 19:17:53 +02:00
Kconfig
Kconfig.arm cpufreq: exynos: Remove support for Exynos5440 2018-07-17 19:55:51 +02:00
Kconfig.powerpc
Kconfig.x86
kirkwood-cpufreq.c cpufreq: kirkwood: fix possible object reference leak 2019-05-31 06:46:24 -07:00
longhaul.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
longhaul.h
longrun.c
loongson1-cpufreq.c
loongson2_cpufreq.c
Makefile cpufreq: exynos: Remove support for Exynos5440 2018-07-17 19:55:51 +02:00
maple-cpufreq.c
mediatek-cpufreq.c
mvebu-cpufreq.c
omap-cpufreq.c
p4-clockmod.c
pasemi-cpufreq.c cpufreq/pasemi: fix use-after-free in pas_cpufreq_cpu_init() 2019-08-16 10:12:46 +02:00
pcc-cpufreq.c Merge back cpufreq material for 4.19. 2018-07-25 13:28:01 +02:00
pmac32-cpufreq.c cpufreq: pmac32: fix possible object reference leak 2019-05-31 06:46:24 -07:00
pmac64-cpufreq.c
powernow-k6.c
powernow-k7.c
powernow-k7.h
powernow-k8.c
powernow-k8.h
powernv-cpufreq.c cpufreq: powernv: Fix use-after-free 2020-04-17 10:48:52 +02:00
ppc_cbe_cpufreq.c cpufreq: ppc_cbe: fix possible object reference leak 2019-05-31 06:46:24 -07:00
ppc_cbe_cpufreq.h
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c
pxa2xx-cpufreq.c cpufreq: pxa2xx: remove incorrect __init annotation 2019-03-23 20:10:01 +01:00
pxa3xx-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
qcom-cpufreq-kryo.c cpufreq: kryo: Release OPP tables on module removal 2019-03-23 20:10:01 +01:00
qoriq-cpufreq.c
s3c24xx-cpufreq-debugfs.c
s3c24xx-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
s3c64xx-cpufreq.c
s3c2410-cpufreq.c
s3c2412-cpufreq.c
s3c2416-cpufreq.c
s3c2440-cpufreq.c cpufreq: s3c2440: fix spelling mistake: "divsiors" -> "divisors" 2018-05-10 11:50:42 +02:00
s5pv210-cpufreq.c
sa1100-cpufreq.c
sa1110-cpufreq.c
sc520_freq.c
scmi-cpufreq.c cpufreq: scmi: Fix frequency invariance in slow path 2019-01-16 22:04:29 +01:00
scpi-cpufreq.c
sfi-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sh-cpufreq.c
sparc-us2e-cpufreq.c
sparc-us3-cpufreq.c
spear-cpufreq.c treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
speedstep-centrino.c
speedstep-ich.c
speedstep-lib.c cpufreq: speedstep: fix speedstep_detect_processor()'s return type 2018-05-10 11:46:00 +02:00
speedstep-lib.h
speedstep-smi.c
sti-cpufreq.c
tango-cpufreq.c
tegra20-cpufreq.c cpufreq: tegra20: Wrap cpufreq into platform driver 2018-05-21 13:44:24 +02:00
tegra124-cpufreq.c cpufreq: tegra124: add missing of_node_put() 2019-03-23 20:10:01 +01:00
tegra186-cpufreq.c
ti-cpufreq.c cpufreq: ti-cpufreq: Only register platform_device when supported 2018-12-13 09:16:13 +01:00
unicore2-cpufreq.c
vexpress-spc-cpufreq.c