Message ID | 20190904160039.3350229-1-arnd@arndb.de (mailing list archive) |
---|---|
State | Mainlined |
Commit | 3b1261fb72c7dc6a9e4604ef1ea01d6bb67cc3d1 |
Headers | show |
Series | bus: imx-weim: remove incorrect __init annotations | expand |
On Wed, Sep 4, 2019 at 9:00 AM Arnd Bergmann <arnd@arndb.de> wrote: > > The probe function is no longer __init, so anything it calls now > must also be available at runtime, as Kbuild points out when building > with clang-9: Thanks for the patch, this has already been addressed in: https://patchwork.kernel.org/patch/11114307/ https://github.com/ClangBuiltLinux/linux/issues/645 > > WARNING: vmlinux.o(.text+0x6e7040): Section mismatch in reference from the function weim_probe() to the function .init.text:imx_weim_gpr_setup() > The function weim_probe() references > the function __init imx_weim_gpr_setup(). > This is often because weim_probe lacks a __init > annotation or the annotation of imx_weim_gpr_setup is wrong. > > WARNING: vmlinux.o(.text+0x6e70f0): Section mismatch in reference from the function weim_probe() to the function .init.text:weim_timing_setup() > The function weim_probe() references > the function __init weim_timing_setup(). > This is often because weim_probe lacks a __init > annotation or the annotation of weim_timing_setup is wrong. > > Remove the remaining __init markings that are now wrong. > > Fixes: 4a92f07816ba ("bus: imx-weim: use module_platform_driver()") > Signed-off-by: Arnd Bergmann <arnd@arndb.de> > --- > I applied this on top of the patch taht introduced the build error > > drivers/bus/imx-weim.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c > index 79af0c27f5a3..28bb65a5613f 100644 > --- a/drivers/bus/imx-weim.c > +++ b/drivers/bus/imx-weim.c > @@ -76,7 +76,7 @@ static const struct of_device_id weim_id_table[] = { > }; > MODULE_DEVICE_TABLE(of, weim_id_table); > > -static int __init imx_weim_gpr_setup(struct platform_device *pdev) > +static int imx_weim_gpr_setup(struct platform_device *pdev) > { > struct device_node *np = pdev->dev.of_node; > struct property *prop; > @@ -126,10 +126,10 @@ static int __init imx_weim_gpr_setup(struct platform_device *pdev) > } > > /* Parse and set the timing for this device. */ > -static int __init weim_timing_setup(struct device *dev, > - struct device_node *np, void __iomem *base, > - const struct imx_weim_devtype *devtype, > - struct cs_timing_state *ts) > +static int weim_timing_setup(struct device *dev, > + struct device_node *np, void __iomem *base, > + const struct imx_weim_devtype *devtype, > + struct cs_timing_state *ts) > { > u32 cs_idx, value[MAX_CS_REGS_COUNT]; > int i, ret; > -- > 2.20.0 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20190904160039.3350229-1-arnd%40arndb.de.
diff --git a/drivers/bus/imx-weim.c b/drivers/bus/imx-weim.c index 79af0c27f5a3..28bb65a5613f 100644 --- a/drivers/bus/imx-weim.c +++ b/drivers/bus/imx-weim.c @@ -76,7 +76,7 @@ static const struct of_device_id weim_id_table[] = { }; MODULE_DEVICE_TABLE(of, weim_id_table); -static int __init imx_weim_gpr_setup(struct platform_device *pdev) +static int imx_weim_gpr_setup(struct platform_device *pdev) { struct device_node *np = pdev->dev.of_node; struct property *prop; @@ -126,10 +126,10 @@ static int __init imx_weim_gpr_setup(struct platform_device *pdev) } /* Parse and set the timing for this device. */ -static int __init weim_timing_setup(struct device *dev, - struct device_node *np, void __iomem *base, - const struct imx_weim_devtype *devtype, - struct cs_timing_state *ts) +static int weim_timing_setup(struct device *dev, + struct device_node *np, void __iomem *base, + const struct imx_weim_devtype *devtype, + struct cs_timing_state *ts) { u32 cs_idx, value[MAX_CS_REGS_COUNT]; int i, ret;
The probe function is no longer __init, so anything it calls now must also be available at runtime, as Kbuild points out when building with clang-9: WARNING: vmlinux.o(.text+0x6e7040): Section mismatch in reference from the function weim_probe() to the function .init.text:imx_weim_gpr_setup() The function weim_probe() references the function __init imx_weim_gpr_setup(). This is often because weim_probe lacks a __init annotation or the annotation of imx_weim_gpr_setup is wrong. WARNING: vmlinux.o(.text+0x6e70f0): Section mismatch in reference from the function weim_probe() to the function .init.text:weim_timing_setup() The function weim_probe() references the function __init weim_timing_setup(). This is often because weim_probe lacks a __init annotation or the annotation of weim_timing_setup is wrong. Remove the remaining __init markings that are now wrong. Fixes: 4a92f07816ba ("bus: imx-weim: use module_platform_driver()") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- I applied this on top of the patch taht introduced the build error drivers/bus/imx-weim.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-)