• A
    ARM: s3c24xx: fix multiple section mismatch warnings · 673550a1
    Arnd Bergmann 提交于
    The *_irq_add function should not be marked __init because the driver
    subsystem thinks they might be called at a later stage.
    
    The usb_simtec_init function accesses initdata and should be marked
    init. This is safe because the only caller is also an init function.
    
    Without this patch, building s3c2410_defconfig results in:
    
    WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0x1030): Section mismatch in reference from the variable s3c2416_irq_interface to the function .init.text:s3c2416_irq_add()
    The variable s3c2416_irq_interface references
    the function __init s3c2416_irq_add()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
    
    WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0x1b08): Section mismatch in reference from the variable s3c2443_irq_interface to the function .init.text:s3c2443_irq_add()
    The variable s3c2443_irq_interface references
    the function __init s3c2443_irq_add()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
    
    WARNING: arch/arm/mach-s3c24xx/built-in.o(.data+0xf44): Section mismatch in reference from the variable s3c2416_irq_interface to the function .init.text:s3c2416_irq_add()
    The variable s3c2416_irq_interface references
    the function __init s3c2416_irq_add()
    If the reference is valid then annotate the
    variable with __init* or __refdata (see linux/init.h) or name the variable:
    *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
    
    WARNING: arch/arm/mach-s3c24xx/built-in.o(.text+0x3f7c): Section mismatch in reference from the function usb_simtec_init() to the (unknown reference) .init.data:(unknown)
    The function usb_simtec_init() references
    the (unknown reference) __initdata (unknown).
    This is often because usb_simtec_init lacks a __initdata
    annotation or the annotation of (unknown) is wrong.
    Signed-off-by: NArnd Bergmann <arnd@arndb.de>
    Cc: Ben Dooks <ben-linux@fluff.org>
    Cc: Kukjin Kim <kgene.kim@samsung.com>
    673550a1
irq-s3c2416.c 8.3 KB