Re: linux-next: build warnings after merge of the clk tree

From: Stephen Boyd
Date: Wed Jun 21 2017 - 12:29:54 EST


On 06/21, Anup Patel wrote:
> On Wed, Jun 21, 2017 at 5:04 AM, Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> wrote:
> > Hi all,
> >
> > After merging the clk tree, today's linux-next build (x86_64 allmodconfig)
> > produced these warnings:
> >
> > WARNING: vmlinux.o(.text+0x819309): Section mismatch in reference from the function sr_genpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
> > The function sr_genpll0_clk_init() references
> > the function __init iproc_pll_clk_setup().
> > This is often because sr_genpll0_clk_init lacks a __init
> > annotation or the annotation of iproc_pll_clk_setup is wrong.
> >
> > Introduced by commit
> >
> > 654cdd3229cd ("clk: bcm: Add clocks for Stingray SOC")

Thanks for the report!

>
> All sr_xxx_init() had __init attribute but we had removed it based on
> review comments.
>
> The iproc_pll_xxx() APIs are shared across various clk drivers of iproc SoCs.
>
> I suggest we bring back __init attribute for all sr_xxx_init() in sr_clk.c ??
>

No. We should remove __init from the iproc_pll_clk_setup()
function.

---8<---
From: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
Subject: [PATCH] clk: iproc: Remove __init marking on iproc_pll_clk_setup()

Now that this function is called from driver probe routines, it
needs to drop the __init marking because it isn't just called
from init code.

Reported-by: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx>
Cc: Sandeep Tripathy <sandeep.tripathy@xxxxxxxxxxxx>
Cc: Anup Patel <anup.patel@xxxxxxxxxxxx>
Cc: Ray Jui <ray.jui@xxxxxxxxxxxx>
Cc: Scott Branden <scott.branden@xxxxxxxxxxxx>
Fixes: 654cdd3229cd ("clk: bcm: Add clocks for Stingray SOC")
Signed-off-by: Stephen Boyd <sboyd@xxxxxxxxxxxxxx>
---
drivers/clk/bcm/clk-iproc-pll.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/clk/bcm/clk-iproc-pll.c b/drivers/clk/bcm/clk-iproc-pll.c
index 2d61893da024..375d8dd80d45 100644
--- a/drivers/clk/bcm/clk-iproc-pll.c
+++ b/drivers/clk/bcm/clk-iproc-pll.c
@@ -617,12 +617,12 @@ static void iproc_pll_sw_cfg(struct iproc_pll *pll)
}
}

-void __init iproc_pll_clk_setup(struct device_node *node,
- const struct iproc_pll_ctrl *pll_ctrl,
- const struct iproc_pll_vco_param *vco,
- unsigned int num_vco_entries,
- const struct iproc_clk_ctrl *clk_ctrl,
- unsigned int num_clks)
+void iproc_pll_clk_setup(struct device_node *node,
+ const struct iproc_pll_ctrl *pll_ctrl,
+ const struct iproc_pll_vco_param *vco,
+ unsigned int num_vco_entries,
+ const struct iproc_clk_ctrl *clk_ctrl,
+ unsigned int num_clks)
{
int i, ret;
struct iproc_pll *pll;
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project