Commit ef3a661af69046df74beb0ddfa27204aad316385
Committed by
Vineet Gupta
1 parent
3d01c1ce41
Exists in
smarc-imx_3.14.28_1.0.0_ga
and in
1 other branch
arc: remove '__init' for setup_processor() and arc_init_IRQ()
They haven't '__init' in definition, but has '__init' in declaration. And normal function start_kernel_secondary() may call setup_processor() which will call arc_init_IRQ(). So need remove '__init' for both of them. The related warning (with allmodconfig): MODPOST vmlinux.o WARNING: vmlinux.o(.text+0x3084): Section mismatch in reference from the function start_kernel_secondary() to the function .init.text:setup_processor() The function start_kernel_secondary() references the function __init setup_processor(). This is often because start_kernel_secondary lacks a __init annotation or the annotation of setup_processor is wrong. Signed-off-by: Chen Gang <gang.chen@asianux.com>
Showing 2 changed files with 2 additions and 2 deletions Inline Diff
arch/arc/include/asm/irq.h
1 | /* | 1 | /* |
2 | * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | 2 | * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify | 4 | * This program is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #ifndef __ASM_ARC_IRQ_H | 9 | #ifndef __ASM_ARC_IRQ_H |
10 | #define __ASM_ARC_IRQ_H | 10 | #define __ASM_ARC_IRQ_H |
11 | 11 | ||
12 | #define NR_CPU_IRQS 32 /* number of interrupt lines of ARC770 CPU */ | 12 | #define NR_CPU_IRQS 32 /* number of interrupt lines of ARC770 CPU */ |
13 | #define NR_IRQS 128 /* allow some CPU external IRQ handling */ | 13 | #define NR_IRQS 128 /* allow some CPU external IRQ handling */ |
14 | 14 | ||
15 | /* Platform Independent IRQs */ | 15 | /* Platform Independent IRQs */ |
16 | #define TIMER0_IRQ 3 | 16 | #define TIMER0_IRQ 3 |
17 | #define TIMER1_IRQ 4 | 17 | #define TIMER1_IRQ 4 |
18 | 18 | ||
19 | #include <asm-generic/irq.h> | 19 | #include <asm-generic/irq.h> |
20 | 20 | ||
21 | extern void __init arc_init_IRQ(void); | 21 | extern void arc_init_IRQ(void); |
22 | extern int __init get_hw_config_num_irq(void); | 22 | extern int __init get_hw_config_num_irq(void); |
23 | 23 | ||
24 | void arc_local_timer_setup(unsigned int cpu); | 24 | void arc_local_timer_setup(unsigned int cpu); |
25 | 25 | ||
26 | #endif | 26 | #endif |
27 | 27 |
arch/arc/include/asm/setup.h
1 | /* | 1 | /* |
2 | * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) | 2 | * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com) |
3 | * | 3 | * |
4 | * This program is free software; you can redistribute it and/or modify | 4 | * This program is free software; you can redistribute it and/or modify |
5 | * it under the terms of the GNU General Public License version 2 as | 5 | * it under the terms of the GNU General Public License version 2 as |
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | #ifndef __ASMARC_SETUP_H | 8 | #ifndef __ASMARC_SETUP_H |
9 | #define __ASMARC_SETUP_H | 9 | #define __ASMARC_SETUP_H |
10 | 10 | ||
11 | 11 | ||
12 | #include <linux/types.h> | 12 | #include <linux/types.h> |
13 | #include <uapi/asm/setup.h> | 13 | #include <uapi/asm/setup.h> |
14 | 14 | ||
15 | #define COMMAND_LINE_SIZE 256 | 15 | #define COMMAND_LINE_SIZE 256 |
16 | 16 | ||
17 | /* | 17 | /* |
18 | * Data structure to map a ID to string | 18 | * Data structure to map a ID to string |
19 | * Used a lot for bootup reporting of hardware diversity | 19 | * Used a lot for bootup reporting of hardware diversity |
20 | */ | 20 | */ |
21 | struct id_to_str { | 21 | struct id_to_str { |
22 | int id; | 22 | int id; |
23 | const char *str; | 23 | const char *str; |
24 | }; | 24 | }; |
25 | 25 | ||
26 | struct cpuinfo_data { | 26 | struct cpuinfo_data { |
27 | struct id_to_str info; | 27 | struct id_to_str info; |
28 | int up_range; | 28 | int up_range; |
29 | }; | 29 | }; |
30 | 30 | ||
31 | extern int root_mountflags, end_mem; | 31 | extern int root_mountflags, end_mem; |
32 | extern int running_on_hw; | 32 | extern int running_on_hw; |
33 | 33 | ||
34 | void __init setup_processor(void); | 34 | void setup_processor(void); |
35 | void __init setup_arch_memory(void); | 35 | void __init setup_arch_memory(void); |
36 | 36 | ||
37 | #endif /* __ASMARC_SETUP_H */ | 37 | #endif /* __ASMARC_SETUP_H */ |
38 | 38 |