Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1671237 > unrolled thread

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

Started byStephen Rothwell <sfr@canb.auug.org.au>
First post2017-06-21 01:40 +0200
Last post2017-06-21 18:40 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  linux-next: build warnings after merge of the clk tree Stephen Rothwell <sfr@canb.auug.org.au> - 2017-06-21 01:40 +0200
    Re: linux-next: build warnings after merge of the clk tree Anup Patel <anup.patel@broadcom.com> - 2017-06-21 17:20 +0200
      Re: linux-next: build warnings after merge of the clk tree Stephen Boyd <sboyd@codeaurora.org> - 2017-06-21 18:40 +0200

#1671237 — linux-next: build warnings after merge of the clk tree

FromStephen Rothwell <sfr@canb.auug.org.au>
Date2017-06-21 01:40 +0200
Subjectlinux-next: build warnings after merge of the clk tree
Message-ID<tUAUx-6G1-7@gated-at.bofh.it>
Hi all,

After merging the clk tree, today's linux-next build (x86_64 allmodconfig)
produced these warnings:

WARNING: drivers/clk/bcm/built-in.o(.text+0x4022): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll3_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll3_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x4069): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll_pcie_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll_pcie_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x40b9): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll1_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll1_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x4109): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll0_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll0_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x4159): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll5_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll5_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x41a9): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll4_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll4_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/bcm/built-in.o(.text+0x41f9): 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.

WARNING: drivers/clk/built-in.o(.text+0x14bf2): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll3_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll3_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14c39): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll_pcie_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll_pcie_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14c89): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll1_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll1_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14cd9): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll0_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll0_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14d29): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll5_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll5_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14d79): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll4_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll4_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/clk/built-in.o(.text+0x14dc9): 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.

WARNING: drivers/built-in.o(.text+0x13e3a2): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll3_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll3_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e3e9): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll_pcie_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll_pcie_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e439): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll1_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll1_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e489): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll0_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll0_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e4d9): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll5_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll5_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e529): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll4_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll4_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: drivers/built-in.o(.text+0x13e579): 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.

WARNING: vmlinux.o(.text+0x819132): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll3_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll3_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: vmlinux.o(.text+0x819179): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll_pcie_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll_pcie_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: vmlinux.o(.text+0x8191c9): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll1_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll1_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: vmlinux.o(.text+0x819219): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_lcpll0_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_lcpll0_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: vmlinux.o(.text+0x819269): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll5_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll5_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

WARNING: vmlinux.o(.text+0x8192b9): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
The function sr_genpll4_clk_init() references
the function __init iproc_pll_clk_setup().
This is often because sr_genpll4_clk_init lacks a __init 
annotation or the annotation of iproc_pll_clk_setup is wrong.

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")

-- 
Cheers,
Stephen Rothwell

[toc] | [next] | [standalone]


#1671750

FromAnup Patel <anup.patel@broadcom.com>
Date2017-06-21 17:20 +0200
Message-ID<tUPAe-7N4-11@gated-at.bofh.it>
In reply to#1671237
On Wed, Jun 21, 2017 at 5:04 AM, Stephen Rothwell <sfr@canb.auug.org.au> wrote:
> Hi all,
>
> After merging the clk tree, today's linux-next build (x86_64 allmodconfig)
> produced these warnings:
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x4022): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll3_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll3_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x4069): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll_pcie_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll_pcie_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x40b9): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll1_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll1_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x4109): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll0_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll0_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x4159): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll5_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll5_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x41a9): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll4_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll4_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/bcm/built-in.o(.text+0x41f9): 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.
>
> WARNING: drivers/clk/built-in.o(.text+0x14bf2): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll3_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll3_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14c39): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll_pcie_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll_pcie_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14c89): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll1_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll1_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14cd9): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll0_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll0_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14d29): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll5_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll5_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14d79): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll4_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll4_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/clk/built-in.o(.text+0x14dc9): 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.
>
> WARNING: drivers/built-in.o(.text+0x13e3a2): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll3_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll3_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e3e9): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll_pcie_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll_pcie_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e439): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll1_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll1_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e489): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll0_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll0_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e4d9): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll5_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll5_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e529): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll4_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll4_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: drivers/built-in.o(.text+0x13e579): 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.
>
> WARNING: vmlinux.o(.text+0x819132): Section mismatch in reference from the function sr_genpll3_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll3_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll3_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: vmlinux.o(.text+0x819179): Section mismatch in reference from the function sr_lcpll_pcie_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll_pcie_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll_pcie_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: vmlinux.o(.text+0x8191c9): Section mismatch in reference from the function sr_lcpll1_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll1_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll1_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: vmlinux.o(.text+0x819219): Section mismatch in reference from the function sr_lcpll0_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_lcpll0_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_lcpll0_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: vmlinux.o(.text+0x819269): Section mismatch in reference from the function sr_genpll5_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll5_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll5_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> WARNING: vmlinux.o(.text+0x8192b9): Section mismatch in reference from the function sr_genpll4_clk_init() to the function .init.text:iproc_pll_clk_setup()
> The function sr_genpll4_clk_init() references
> the function __init iproc_pll_clk_setup().
> This is often because sr_genpll4_clk_init lacks a __init
> annotation or the annotation of iproc_pll_clk_setup is wrong.
>
> 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")

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 ??

Regards,
Anup

[toc] | [prev] | [next] | [standalone]


#1671778

FromStephen Boyd <sboyd@codeaurora.org>
Date2017-06-21 18:40 +0200
Message-ID<tUQPE-6J-15@gated-at.bofh.it>
In reply to#1671750
On 06/21, Anup Patel wrote:
> On Wed, Jun 21, 2017 at 5:04 AM, Stephen Rothwell <sfr@canb.auug.org.au> 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@codeaurora.org>
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@canb.auug.org.au>
Cc: Sandeep Tripathy <sandeep.tripathy@broadcom.com>
Cc: Anup Patel <anup.patel@broadcom.com>
Cc: Ray Jui <ray.jui@broadcom.com>
Cc: Scott Branden <scott.branden@broadcom.com>
Fixes: 654cdd3229cd ("clk: bcm: Add clocks for Stingray SOC")
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
---
 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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web