linux-stable/drivers/clk
Marc Zyngier 11b6715f97 clk: Unlink clock if failed to prepare or enable
commit 018d4671b9 upstream.

On failing to prepare or enable a clock, remove the core structure
from the list it has been inserted as it is about to be freed.

This otherwise leads to random crashes when subsequent clocks get
registered, during which parsing of the clock tree becomes adventurous.

Observed with QEMU's RPi-3 emulation.

Fixes: 12ead77432 ("clk: Don't try to enable critical clocks if prepare failed")
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Stephen Boyd <sboyd@kernel.org>
Cc: Michael Turquette <mturquette@baylibre.com>
Link: https://lkml.kernel.org/r/20200505140953.409430-1-maz@kernel.org
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-05-20 08:18:52 +02:00
..
actions clk: actions: Fix factor clk struct member access 2020-01-27 14:51:14 +01:00
at91 clk: at91: usb: continue if clk_hw_round_rate() return zero 2020-04-23 10:30:17 +02:00
axis
axs10x
bcm treewide: devm_kzalloc() -> devm_kcalloc() 2018-06-12 16:19:22 -07:00
berlin This time we have a good set of changes to the core framework that do some 2018-06-09 12:06:24 -07:00
davinci ARM: 32-bit SoC platform updates 2018-08-23 13:44:43 -07:00
h8300 clk: h8300: pr_err() strings should end with newlines 2017-12-06 22:40:02 -08:00
hisilicon clk: hi3660: Mark clk_gate_ufs_subsys as critical 2019-05-25 18:23:28 +02:00
imgtec clk: boston: unregister clks on failure in clk_boston_setup() 2019-11-06 13:05:26 +01:00
imx clk: vf610: fix refcount leak in vf610_clocks_init() 2020-01-27 14:50:09 +01:00
ingenic clk: ingenic/jz4770: Exit with error if CGU init failed 2020-04-17 10:48:52 +02:00
keystone clk: keystone: Enable TISCI clocks if K3_ARCH 2019-11-24 08:19:48 +01:00
loongson1
mediatek clk: mediatek: Drop more __init markings for driver probe 2019-12-13 08:52:16 +01:00
meson clk: meson: axg: spread spectrum is on mpll2 2020-01-27 14:50:49 +01:00
microchip
mmp clk: mmp2: Fix the order of timer mux parents 2020-02-05 14:43:43 +00:00
mvebu clk: dove: fix refcount leak in dove_clk_init() 2020-01-27 14:50:10 +01:00
mxs
nxp clk: lpc32xx: Set name of regmap_config 2018-03-19 14:35:16 -07:00
pistachio
pxa clk: pxa: fix one of the pxa RTC clocks 2020-01-04 19:12:57 +01:00
qcom clk: qcom: rcg: Return failure for RCG update 2020-04-13 10:45:15 +02:00
renesas clk: renesas: rcar-gen3: Set state when registering SD clocks 2019-12-13 08:52:32 +01:00
rockchip clk: rockchip: fix incorrect configuration of rk3228 aclk_gpu* clocks 2020-05-20 08:18:50 +02:00
samsung clk: samsung: exynos4: fix refcount leak in exynos4_get_xom() 2020-01-27 14:50:08 +01:00
sirf clk: sirf: Don't reference clk_init_data after registration 2019-10-07 18:56:45 +02:00
socfpga clk: socfpga: fix refcount leak 2020-01-27 14:50:08 +01:00
spear clk: spear: fix WDT clock definition on SPEAr600 2018-04-06 13:45:34 -07:00
sprd clk: sprd: Use IS_ERR() to validate the return value of syscon_regmap_lookup_by_phandle() 2020-01-23 08:21:39 +01:00
st treewide: kzalloc() -> kcalloc() 2018-06-12 16:19:22 -07:00
sunxi clk: sunxi: Fix operator precedence in sunxi_divs_clk_setup 2019-12-05 09:19:38 +01:00
sunxi-ng clk: sunxi-ng: add mux and pll notifiers for A64 CPU clock 2020-02-24 08:34:44 +01:00
tegra clk: tegra: Fix Tegra PMC clock out parents 2020-04-23 10:30:17 +02:00
ti clk: ti: fix refcount leak in ti_dt_clocks_register() 2020-01-27 14:50:08 +01:00
uniphier clk: uniphier: Add SCSSI clock gate for each channel 2020-02-24 08:34:45 +01:00
ux500 clk: ux500: Drop AB8540/9540 support 2018-03-23 09:36:11 -07:00
versatile clk: versatile: Remove WARNs in ->round_rate() 2018-03-16 15:31:16 -07:00
x86 clk: x86: Add system specific quirk to mark clocks as critical 2019-05-08 07:21:54 +02:00
zte clk: zx296718: Don't reference clk_init_data after registration 2019-10-07 18:56:46 +02:00
zynq
clk-asm9260.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-aspeed.c The new and exciting feature this time around is in the clk core. 2018-08-15 21:41:21 -07:00
clk-axi-clkgen.c clk: axi-clkgen: Round closest in round_rate() and recalc_rate() 2017-12-21 18:07:53 -08:00
clk-axm5516.c
clk-bulk.c clk: bulk: silently error out on EPROBE_DEFER 2018-05-15 15:16:13 -07:00
clk-cdce706.c
clk-cdce925.c
clk-clps711x.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-composite.c
clk-conf.c
clk-cs2000-cp.c clk: cs2000-cp: convert to SPDX identifiers 2018-08-02 13:55:00 -07:00
clk-devres.c
clk-divider.c clk: divider: read-only divider can propagate rate change 2018-03-12 15:10:26 -07:00
clk-efm32gg.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-fixed-factor.c clk: fixed-factor: fix of_node_get-put imbalance 2018-11-27 16:13:04 +01:00
clk-fixed-rate.c clk: fixed-rate: fix of_node_get-put imbalance 2018-11-27 16:13:00 +01:00
clk-fractional-divider.c clk: fractional-divider: check parent rate only if flag is set 2019-04-05 22:33:03 +02:00
clk-gate.c
clk-gemini.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-gpio.c clk: clk-gpio: propagate rate change to parent 2020-01-04 19:12:52 +01:00
clk-hi655x.c
clk-highbank.c clk: highbank: fix refcount leak in hb_clk_init() 2020-01-27 14:50:08 +01:00
clk-hsdk-pll.c
clk-max9485.c clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
clk-max77686.c
clk-moxart.c
clk-multiplier.c
clk-mux.c clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux 2018-04-16 09:25:07 -07:00
clk-nomadik.c
clk-npcm7xx.c clk: npcm7xx: fix memory allocation 2018-08-28 15:12:59 -07:00
clk-nspire.c
clk-oxnas.c
clk-palmas.c
clk-pwm.c
clk-qoriq.c clk: qoriq: fix refcount leak in clockgen_init() 2020-01-27 14:50:08 +01:00
clk-rk808.c
clk-s2mps11.c clk: s2mps11: Add used attribute to s2mps11_dt_match 2019-09-16 08:21:45 +02:00
clk-scmi.c clk: scmi: Fix the rounding of clock rate 2018-08-02 13:43:48 -07:00
clk-scpi.c
clk-si514.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si544.c clk-si514, clk-si544: Implement prepare/unprepare/is_prepared operations 2018-06-29 10:59:40 -07:00
clk-si570.c
clk-si5351.c clk: si5351: _si5351_clkout_reset_pll() can be static 2017-12-28 10:49:48 -08:00
clk-si5351.h
clk-stm32f4.c clk: stm32: Add clk entry for SDMMC2 on stm32F769 2018-03-19 13:46:07 -07:00
clk-stm32h7.c treewide: Use struct_size() for kmalloc()-family 2018-06-06 11:15:43 -07:00
clk-stm32mp1.c clk: stm32mp1: parent clocks update 2019-12-05 09:21:35 +01:00
clk-tango4.c
clk-twl6040.c clk: clk-twl6040: Fix imprecise external abort for pdmclk 2019-03-23 20:10:03 +01:00
clk-u300.c
clk-versaclock5.c clk: vc5: Abort clock configuration without upstream clock 2019-03-05 17:58:46 +01:00
clk-vt8500.c
clk-wm831x.c
clk-xgene.c
clk.c clk: Unlink clock if failed to prepare or enable 2020-05-20 08:18:52 +02:00
clk.h clk: Move __clk_{get,put}() into private clk.h API 2018-01-04 15:13:29 -08:00
clkdev.c ARM: 8778/1: clkdev: don't call __of_clk_get_by_name() unnecessarily from clk_get() 2018-08-13 16:27:52 +01:00
Kconfig clk: Add driver for MAX9485 2018-07-06 13:44:06 -07:00
Makefile clk: keystone: Enable TISCI clocks if K3_ARCH 2019-11-24 08:19:48 +01:00