Yongqiang Liu
3cdd91a916
cpufreq: Init completion before kobject_init_and_add()
...
commit 5c51054896bcce1d33d39fead2af73fec24f40b6 upstream.
In cpufreq_policy_alloc(), it will call uninitialed completion in
cpufreq_sysfs_release() when kobject_init_and_add() fails. And
that will cause a crash such as the following page fault in complete:
BUG: unable to handle page fault for address: fffffffffffffff8
[..]
RIP: 0010:complete+0x98/0x1f0
[..]
Call Trace:
kobject_put+0x1be/0x4c0
cpufreq_online.cold+0xee/0x1fd
cpufreq_add_dev+0x183/0x1e0
subsys_interface_register+0x3f5/0x4e0
cpufreq_register_driver+0x3b7/0x670
acpi_cpufreq_init+0x56c/0x1000 [acpi_cpufreq]
do_one_initcall+0x13d/0x780
do_init_module+0x1c3/0x630
load_module+0x6e67/0x73b0
__do_sys_finit_module+0x181/0x240
do_syscall_64+0x35/0x80
entry_SYSCALL_64_after_hwframe+0x63/0xcd
Fixes: 4ebe36c94a ("cpufreq: Fix kobject memleak")
Signed-off-by: Yongqiang Liu <liuyongqiang13@huawei.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Cc: 5.2+ <stable@vger.kernel.org> # 5.2+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-01-18 11:41:46 +01:00
..
acpi-cpufreq.c
x86/devicetable: Move x86 specific macro out of generic code
2022-10-07 09:16:54 +02:00
amd_freq_sensitivity.c
cpufreq: amd_freq_sensitivity: Add missing pci_dev_put()
2023-01-18 11:40:55 +01:00
arm_big_little.c
arm_big_little.h
armada-8k-cpufreq.c
cpufreq: ap806: Add missing MODULE_DEVICE_TABLE
2020-12-30 11:51:19 +01:00
armada-37xx-cpufreq.c
cpufreq: armada-37xx: forbid cpufreq for 1.2 GHz variant
2021-08-26 08:36:16 -04:00
bmips-cpufreq.c
brcmstb-avs-cpufreq.c
cpufreq: brcmstb-avs-cpufreq: Fix resource leaks in ->remove()
2021-03-04 10:26:14 +01:00
cppc_cpufreq.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
cpufreq-dt-platdev.c
cpufreq: blacklist Arm Vexpress platforms in cpufreq-dt-platdev
2021-03-30 14:35:21 +02:00
cpufreq-dt.c
cpufreq-dt.h
cpufreq-nforce2.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
cpufreq.c
cpufreq: Init completion before kobject_init_and_add()
2023-01-18 11:41:46 +01:00
cpufreq_conservative.c
cpufreq_governor.c
cpufreq_governor.h
cpufreq_governor_attr_set.c
cpufreq: schedutil: Destroy mutex before kobject_put() frees the memory
2021-10-06 15:42:30 +02:00
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: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
gx-suspmod.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
highbank-cpufreq.c
cpufreq: highbank: Add missing MODULE_DEVICE_TABLE
2020-12-30 11:51:19 +01:00
ia64-acpi-cpufreq.c
imx-cpufreq-dt.c
cpufreq: imx-cpufreq-dt: Correct i.MX8MN's default speed grade value
2019-12-13 08:43:28 +01:00
imx6q-cpufreq.c
cpufreq: imx6q: fix error handling
2020-04-17 10:50:03 +02:00
intel_pstate.c
cpufreq: intel_pstate: Get per-CPU max freq via MSR_HWP_CAPABILITIES if available
2021-03-04 10:26:50 +01:00
Kconfig
Kconfig.arm
cpufreq: ap806: fix cpufreq driver needs ap cpu clk
2020-08-19 08:16:18 +02:00
Kconfig.powerpc
Kconfig.x86
kirkwood-cpufreq.c
longhaul.c
longhaul.h
longrun.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
loongson1-cpufreq.c
cpufreq: loongson1: Add missing MODULE_ALIAS
2020-12-30 11:51:20 +01:00
loongson2_cpufreq.c
Makefile
Merge branch 'cpufreq/qcom-updates' into cpufreq/arm/linux-next
2019-09-03 07:55:22 +05:30
maple-cpufreq.c
mediatek-cpufreq.c
cpufreq: mediatek: Add missing MODULE_DEVICE_TABLE
2020-12-30 11:51:19 +01:00
mvebu-cpufreq.c
omap-cpufreq.c
p4-clockmod.c
pasemi-cpufreq.c
pcc-cpufreq.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
pmac32-cpufreq.c
cpufreq: pmac32-cpufreq: Fix refcount leak bug
2022-07-21 20:59:24 +02:00
pmac64-cpufreq.c
powernow-k6.c
powernow-k7.c
powernow-k7.h
powernow-k8.c
cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()
2021-01-17 14:05:35 +01:00
powernow-k8.h
powernv-cpufreq.c
cpufreq: powernv: Fix init_chip_info initialization in numa=off
2021-09-22 12:26:37 +02:00
ppc_cbe_cpufreq.c
ppc_cbe_cpufreq.h
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c
cpufreq: Use per-policy frequency QoS
2019-10-21 02:05:21 +02:00
pxa2xx-cpufreq.c
pxa3xx-cpufreq.c
qcom-cpufreq-hw.c
qcom-cpufreq-nvmem.c
cpufreq: qcom: Add missing MODULE_DEVICE_TABLE
2020-12-30 11:51:19 +01:00
qoriq-cpufreq.c
raspberrypi-cpufreq.c
s3c24xx-cpufreq-debugfs.c
s3c24xx-cpufreq.c
s3c64xx-cpufreq.c
s3c2410-cpufreq.c
s3c2412-cpufreq.c
s3c2416-cpufreq.c
s3c2440-cpufreq.c
s5pv210-cpufreq.c
sa1100-cpufreq.c
sa1110-cpufreq.c
sc520_freq.c
scmi-cpufreq.c
scpi-cpufreq.c
cpufreq: scpi: Add missing MODULE_ALIAS
2020-12-30 11:51:20 +01:00
sfi-cpufreq.c
sh-cpufreq.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
sparc-us2e-cpufreq.c
sparc-us3-cpufreq.c
spear-cpufreq.c
speedstep-centrino.c
speedstep-ich.c
speedstep-lib.c
speedstep-lib.h
speedstep-smi.c
sti-cpufreq.c
cpufreq: st: Add missing MODULE_DEVICE_TABLE
2020-12-30 11:51:19 +01:00
sun50i-cpufreq-nvmem.c
cpufreq: fix memory leak in sun50i_cpufreq_nvmem_probe
2022-05-09 09:03:25 +02:00
tango-cpufreq.c
tegra20-cpufreq.c
tegra124-cpufreq.c
tegra186-cpufreq.c
ti-cpufreq.c
unicore2-cpufreq.c
cpufreq: Avoid creating excessively large stack frames
2020-02-11 04:35:25 -08:00
vexpress-spc-cpufreq.c