• A
    ARM: s3c: mark s3c2440_clk_add as __init_refok · 5276b687
    Arnd Bergmann 提交于
    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: NArnd Bergmann <arnd@arndb.de>
    Acked-by: NKukjin Kim <kgene.kim@samsung.com>
    Cc: Russell King <linux@arm.linux.org.uk>
    Cc: Mike Turquette <mturquette@linaro.org>
    Cc: Ben Dooks <ben-linux@fluff.org>
    5276b687
clock-s3c2440.c 5.0 KB