From: Sasha Levin <sashal@kernel.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Marek Szyprowski <m.szyprowski@samsung.com>,
Sylwester Nawrocki <snawrocki@kernel.org>,
Sasha Levin <sashal@kernel.org>,
linux-clk@vger.kernel.org
Subject: [PATCH AUTOSEL 4.9 35/68] clk: samsung: Use clk_hw API for calling clk framework from clk notifiers
Date: Tue, 12 Nov 2019 20:58:59 -0500 [thread overview]
Message-ID: <20191113015932.12655-35-sashal@kernel.org> (raw)
In-Reply-To: <20191113015932.12655-1-sashal@kernel.org>
From: Marek Szyprowski <m.szyprowski@samsung.com>
[ Upstream commit 1da220e3a5d22fccda0bc8542997abc1d1741268 ]
clk_notifier_register() documentation states, that the provided notifier
callbacks associated with the notifier must not re-enter into the clk
framework by calling any top-level clk APIs. Fix this by replacing
clk_get_rate() calls with clk_hw_get_rate(), which is safe in this
context.
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Sylwester Nawrocki <snawrocki@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/clk/samsung/clk-cpu.c | 6 +++---
drivers/clk/samsung/clk-cpu.h | 2 +-
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/samsung/clk-cpu.c b/drivers/clk/samsung/clk-cpu.c
index 8bf7e805fd349..1271315b0c25b 100644
--- a/drivers/clk/samsung/clk-cpu.c
+++ b/drivers/clk/samsung/clk-cpu.c
@@ -152,7 +152,7 @@ static int exynos_cpuclk_pre_rate_change(struct clk_notifier_data *ndata,
struct exynos_cpuclk *cpuclk, void __iomem *base)
{
const struct exynos_cpuclk_cfg_data *cfg_data = cpuclk->cfg;
- unsigned long alt_prate = clk_get_rate(cpuclk->alt_parent);
+ unsigned long alt_prate = clk_hw_get_rate(cpuclk->alt_parent);
unsigned long alt_div = 0, alt_div_mask = DIV_MASK;
unsigned long div0, div1 = 0, mux_reg;
unsigned long flags;
@@ -280,7 +280,7 @@ static int exynos5433_cpuclk_pre_rate_change(struct clk_notifier_data *ndata,
struct exynos_cpuclk *cpuclk, void __iomem *base)
{
const struct exynos_cpuclk_cfg_data *cfg_data = cpuclk->cfg;
- unsigned long alt_prate = clk_get_rate(cpuclk->alt_parent);
+ unsigned long alt_prate = clk_hw_get_rate(cpuclk->alt_parent);
unsigned long alt_div = 0, alt_div_mask = DIV_MASK;
unsigned long div0, div1 = 0, mux_reg;
unsigned long flags;
@@ -432,7 +432,7 @@ int __init exynos_register_cpu_clock(struct samsung_clk_provider *ctx,
else
cpuclk->clk_nb.notifier_call = exynos_cpuclk_notifier_cb;
- cpuclk->alt_parent = __clk_lookup(alt_parent);
+ cpuclk->alt_parent = __clk_get_hw(__clk_lookup(alt_parent));
if (!cpuclk->alt_parent) {
pr_err("%s: could not lookup alternate parent %s\n",
__func__, alt_parent);
diff --git a/drivers/clk/samsung/clk-cpu.h b/drivers/clk/samsung/clk-cpu.h
index d4b6b517fe1b4..bd38c6aa38970 100644
--- a/drivers/clk/samsung/clk-cpu.h
+++ b/drivers/clk/samsung/clk-cpu.h
@@ -49,7 +49,7 @@ struct exynos_cpuclk_cfg_data {
*/
struct exynos_cpuclk {
struct clk_hw hw;
- struct clk *alt_parent;
+ struct clk_hw *alt_parent;
void __iomem *ctrl_base;
spinlock_t *lock;
const struct exynos_cpuclk_cfg_data *cfg;
--
2.20.1
next prev parent reply other threads:[~2019-11-13 2:07 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-13 1:58 [PATCH AUTOSEL 4.9 01/68] net: ovs: fix return type of ndo_start_xmit function Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 02/68] net: xen-netback: " Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 03/68] ARM: dts: omap5: enable OTG role for DWC3 controller Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 04/68] f2fs: return correct errno in f2fs_gc Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 05/68] SUNRPC: Fix priority queue fairness Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 06/68] kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 07/68] arm64/numa: Report correct memblock range for the dummy node Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 08/68] ath10k: fix vdev-start timeout on error Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 09/68] ata: ahci_brcm: Match BCM63138 compatible strings Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 10/68] ata: ahci_brcm: Allow using driver or DSL SoCs Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 11/68] ath9k: fix reporting calculated new FFT upper max Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 12/68] usb: gadget: udc: fotg210-udc: Fix a sleep-in-atomic-context bug in fotg210_get_status() Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 13/68] nl80211: Fix a GET_KEY reply attribute Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 14/68] dmaengine: ep93xx: Return proper enum in ep93xx_dma_chan_direction Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 15/68] dmaengine: timb_dma: Use proper enum in td_prep_slave_sg Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 16/68] mei: samples: fix a signedness bug in amt_host_if_call() Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 17/68] cxgb4: Use proper enum in cxgb4_dcb_handle_fw_update Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 18/68] cxgb4: Use proper enum in IEEE_FAUX_SYNC Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 19/68] powerpc/pseries: Fix DTL buffer registration Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 20/68] powerpc/pseries: Fix how we iterate over the DTL entries Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 21/68] mtd: rawnand: sh_flctl: Use proper enum for flctl_dma_fifo0_transfer Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 22/68] ixgbe: Fix crash with VFs and flow director on interface flap Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 23/68] IB/mthca: Fix error return code in __mthca_init_one() Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 24/68] IB/mlx4: Avoid implicit enumerated type conversion Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 25/68] ACPICA: Never run _REG on system_memory and system_IO Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 26/68] ata: ep93xx: Use proper enums for directions Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 27/68] media: pxa_camera: Fix check for pdev->dev.of_node Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 28/68] ALSA: hda/sigmatel - Disable automute for Elo VuPoint Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 29/68] KVM: PPC: Book3S PR: Exiting split hack mode needs to fixup both PC and LR Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 30/68] USB: serial: cypress_m8: fix interrupt-out transfer length Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 31/68] mtd: physmap_of: Release resources on error Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 32/68] cpu/SMT: State SMT is disabled even with nosmt and without "=force" Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 33/68] brcmfmac: reduce timeout for action frame scan Sasha Levin
2019-11-13 1:58 ` [PATCH AUTOSEL 4.9 34/68] brcmfmac: fix full timeout waiting for action frame on-channel tx Sasha Levin
2019-11-13 1:58 ` Sasha Levin [this message]
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 36/68] i2c: brcmstb: Allow enabling the driver on DSL SoCs Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 37/68] NFSv4.x: fix lock recovery during delegation recall Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 38/68] dmaengine: ioat: fix prototype of ioat_enumerate_channels Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 39/68] Input: st1232 - set INPUT_PROP_DIRECT property Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 40/68] Input: silead - try firmware reload after unsuccessful resume Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 41/68] x86/olpc: Fix build error with CONFIG_MFD_CS5535=m Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 42/68] crypto: mxs-dcp - Fix SHA null hashes and output length Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 43/68] crypto: mxs-dcp - Fix AES issues Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 44/68] ACPI / SBS: Fix rare oops when removing modules Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 45/68] iwlwifi: mvm: don't send keys when entering D3 Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 46/68] fbdev: sbuslib: use checked version of put_user() Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 47/68] fbdev: sbuslib: integer overflow in sbusfb_ioctl_helper() Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 48/68] reset: Fix potential use-after-free in __of_reset_control_get() Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 49/68] bcache: recal cached_dev_sectors on detach Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 50/68] s390/kasan: avoid vdso instrumentation Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 51/68] proc/vmcore: Fix i386 build error of missing copy_oldmem_page_encrypted() Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 52/68] backlight: lm3639: Unconditionally call led_classdev_unregister Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 53/68] mfd: ti_am335x_tscadc: Keep ADC interface on if child is wakeup capable Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 54/68] printk: Give error on attempt to set log buffer length to over 2G Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 55/68] media: isif: fix a NULL pointer dereference bug Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 56/68] GFS2: Flush the GFS2 delete workqueue before stopping the kernel threads Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 57/68] media: cx231xx: fix potential sign-extension overflow on large shift Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 58/68] x86/kexec: Correct KEXEC_BACKUP_SRC_END off-by-one error Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 59/68] gpio: syscon: Fix possible NULL ptr usage Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 60/68] spi: spidev: Fix OF tree warning logic Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 61/68] ARM: 8802/1: Call syscall_trace_exit even when system call skipped Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 62/68] orangefs: rate limit the client not running info message Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 63/68] hwmon: (pwm-fan) Silence error on probe deferral Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 64/68] hwmon: (ina3221) Fix INA3221_CONFIG_MODE macros Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 65/68] misc: cxl: Fix possible null pointer dereference Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 66/68] mac80211: minstrel: fix CCK rate group streams value Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 67/68] spi: rockchip: initialize dma_slave_config properly Sasha Levin
2019-11-13 1:59 ` [PATCH AUTOSEL 4.9 68/68] ARM: dts: omap5: Fix dual-role mode on Super-Speed port Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191113015932.12655-35-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=snawrocki@kernel.org \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox