Arnd Bergmann wrote: > > s3c2440_clk_add is a subsys_interface method and calls clkdev_add_table, > which is marked as __init. The modpost script complains about this > because we must not call an __init function from a function in the .text > section, and we cannot reference an __init function from a > subsys_interface > pointer. > > I have verified that the only code path into s3c2440_clk_add() is > from "int __init s3c2440_init(void)", so s3c2440_clk_add can be marked > __init_refok instead. > > Without this patch, building mini2440_defconfig results in: > > WARNING: vmlinux.o(.text+0x9848): Section mismatch in reference from the > function s3c2440_clk_add() to the function .init.text:clkdev_add_table() > The function s3c2440_clk_add() references > the function __init clkdev_add_table(). > This is often because s3c2440_clk_add lacks a __init > annotation or the annotation of clkdev_add_table is wrong. > > Signed-off-by: Arnd Bergmann <[email protected]> > Cc: Russell King <[email protected]> > Cc: Mike Turquette <[email protected]> > Cc: Kukjin Kim <[email protected]>
Acked-by: Kukjin Kim <[email protected]> > Cc: Ben Dooks <[email protected]> > --- > > I'll put this into arm-soc/fixes unless I hear objections. This replaces > the > earlier "clk: don't mark clkdev_add_table as init" as suggested by Russell. > Yeah, I read it just now and I agree with this patch. Thanks for your fix. Best regards, Kgene. -- Kukjin Kim <[email protected]>, Senior Engineer, SW Solution Development Team, Samsung Electronics Co., Ltd. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/

