aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Pateenok <pateenoc@gmail.com>2018-04-23 14:20:17 -0400
committerRichard Weinberger <richard@nod.at>2018-06-10 16:49:14 -0400
commitcca76c1ad61d08097af5a691195f9a42d72e978f (patch)
tree20f48c05786d468e6a52c329b2b047c1191bf872
parent8e0ab9140cdafaa258bf7716cb82d73086ee3d06 (diff)
um: remove uml initcalls
__uml_initcall() is not used and .uml.initcall.init section is empty: $ grep -r '__uml_initcall(' arch/um/include/shared/init.h:#define __uml_initcall(fn) \ $ readelf -s ../umobj/linux | grep __uml_initcall 23214: 00000000603b75d8 0 NOTYPE GLOBAL DEFAULT 32 __uml_initcall_start 25337: 00000000603b75d8 0 NOTYPE GLOBAL DEFAULT 32 __uml_initcall_end So it is unnecessary. Signed-off-by: Alexander Pateenok <pateenoc@gmail.com> Signed-off-by: Richard Weinberger <richard@nod.at>
-rw-r--r--arch/um/include/asm/common.lds.S6
-rw-r--r--arch/um/include/shared/init.h5
-rw-r--r--arch/um/os-Linux/main.c12
3 files changed, 0 insertions, 23 deletions
diff --git a/arch/um/include/asm/common.lds.S b/arch/um/include/asm/common.lds.S
index b30d73ca29d0..7adb4e6b658a 100644
--- a/arch/um/include/asm/common.lds.S
+++ b/arch/um/include/asm/common.lds.S
@@ -53,12 +53,6 @@
53 CON_INITCALL 53 CON_INITCALL
54 } 54 }
55 55
56 .uml.initcall.init : {
57 __uml_initcall_start = .;
58 *(.uml.initcall.init)
59 __uml_initcall_end = .;
60 }
61
62 SECURITY_INIT 56 SECURITY_INIT
63 57
64 .exitcall : { 58 .exitcall : {
diff --git a/arch/um/include/shared/init.h b/arch/um/include/shared/init.h
index b3f5865a92c9..c66de434a983 100644
--- a/arch/um/include/shared/init.h
+++ b/arch/um/include/shared/init.h
@@ -64,14 +64,10 @@ struct uml_param {
64 int (*setup_func)(char *, int *); 64 int (*setup_func)(char *, int *);
65}; 65};
66 66
67extern initcall_t __uml_initcall_start, __uml_initcall_end;
68extern initcall_t __uml_postsetup_start, __uml_postsetup_end; 67extern initcall_t __uml_postsetup_start, __uml_postsetup_end;
69extern const char *__uml_help_start, *__uml_help_end; 68extern const char *__uml_help_start, *__uml_help_end;
70#endif 69#endif
71 70
72#define __uml_initcall(fn) \
73 static initcall_t __uml_initcall_##fn __uml_init_call = fn
74
75#define __uml_exitcall(fn) \ 71#define __uml_exitcall(fn) \
76 static exitcall_t __uml_exitcall_##fn __uml_exit_call = fn 72 static exitcall_t __uml_exitcall_##fn __uml_exit_call = fn
77 73
@@ -108,7 +104,6 @@ extern struct uml_param __uml_setup_start, __uml_setup_end;
108 */ 104 */
109#define __uml_init_setup __used __section(.uml.setup.init) 105#define __uml_init_setup __used __section(.uml.setup.init)
110#define __uml_setup_help __used __section(.uml.help.init) 106#define __uml_setup_help __used __section(.uml.help.init)
111#define __uml_init_call __used __section(.uml.initcall.init)
112#define __uml_postsetup_call __used __section(.uml.postsetup.init) 107#define __uml_postsetup_call __used __section(.uml.postsetup.init)
113#define __uml_exit_call __used __section(.uml.exitcall.exit) 108#define __uml_exit_call __used __section(.uml.exitcall.exit)
114 109
diff --git a/arch/um/os-Linux/main.c b/arch/um/os-Linux/main.c
index 5f970ece5ac3..f1fee2b91239 100644
--- a/arch/um/os-Linux/main.c
+++ b/arch/um/os-Linux/main.c
@@ -40,17 +40,6 @@ static void set_stklim(void)
40 } 40 }
41} 41}
42 42
43static __init void do_uml_initcalls(void)
44{
45 initcall_t *call;
46
47 call = &__uml_initcall_start;
48 while (call < &__uml_initcall_end) {
49 (*call)();
50 call++;
51 }
52}
53
54static void last_ditch_exit(int sig) 43static void last_ditch_exit(int sig)
55{ 44{
56 uml_cleanup(); 45 uml_cleanup();
@@ -151,7 +140,6 @@ int __init main(int argc, char **argv, char **envp)
151 scan_elf_aux(envp); 140 scan_elf_aux(envp);
152#endif 141#endif
153 142
154 do_uml_initcalls();
155 change_sig(SIGPIPE, 0); 143 change_sig(SIGPIPE, 0);
156 ret = linux_main(argc, argv); 144 ret = linux_main(argc, argv);
157 145