diff options
author | Chen, Kenneth W <kenneth.w.chen@intel.com> | 2006-03-12 12:20:27 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-03-22 19:55:05 -0500 |
commit | 39e18de810049e836390830174a248ad241b156a (patch) | |
tree | 43fa9f4d3e3b842e9556f4ce3d93386edef93902 /arch/ia64 | |
parent | 03906ea0345d3ae6e906495f86846afa4b8b69b6 (diff) |
[IA64] move patchlist and machvec into init section
ia64_mv is initialized based on platform detected or specified.
However, there is one instantiation of each platform type. We
don't expect to switch platform vector during run time. Move
those platform specific type into init section since a copy is
made into global ia64_mv at initialization.
Also move instruction patch list into init section as well.
Signed-off-by: Ken Chen <kenneth.w.chen@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kernel/vmlinux.lds.S | 51 |
1 files changed, 26 insertions, 25 deletions
diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S index 73af6267d2ef..632d65cc0685 100644 --- a/arch/ia64/kernel/vmlinux.lds.S +++ b/arch/ia64/kernel/vmlinux.lds.S | |||
@@ -70,34 +70,9 @@ SECTIONS | |||
70 | __stop___ex_table = .; | 70 | __stop___ex_table = .; |
71 | } | 71 | } |
72 | 72 | ||
73 | .data.patch.vtop : AT(ADDR(.data.patch.vtop) - LOAD_OFFSET) | ||
74 | { | ||
75 | __start___vtop_patchlist = .; | ||
76 | *(.data.patch.vtop) | ||
77 | __end___vtop_patchlist = .; | ||
78 | } | ||
79 | |||
80 | .data.patch.mckinley_e9 : AT(ADDR(.data.patch.mckinley_e9) - LOAD_OFFSET) | ||
81 | { | ||
82 | __start___mckinley_e9_bundles = .; | ||
83 | *(.data.patch.mckinley_e9) | ||
84 | __end___mckinley_e9_bundles = .; | ||
85 | } | ||
86 | |||
87 | /* Global data */ | 73 | /* Global data */ |
88 | _data = .; | 74 | _data = .; |
89 | 75 | ||
90 | #if defined(CONFIG_IA64_GENERIC) | ||
91 | /* Machine Vector */ | ||
92 | . = ALIGN(16); | ||
93 | .machvec : AT(ADDR(.machvec) - LOAD_OFFSET) | ||
94 | { | ||
95 | machvec_start = .; | ||
96 | *(.machvec) | ||
97 | machvec_end = .; | ||
98 | } | ||
99 | #endif | ||
100 | |||
101 | /* Unwind info & table: */ | 76 | /* Unwind info & table: */ |
102 | . = ALIGN(8); | 77 | . = ALIGN(8); |
103 | .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - LOAD_OFFSET) | 78 | .IA_64.unwind_info : AT(ADDR(.IA_64.unwind_info) - LOAD_OFFSET) |
@@ -154,6 +129,32 @@ SECTIONS | |||
154 | *(.initcall7.init) | 129 | *(.initcall7.init) |
155 | __initcall_end = .; | 130 | __initcall_end = .; |
156 | } | 131 | } |
132 | |||
133 | .data.patch.vtop : AT(ADDR(.data.patch.vtop) - LOAD_OFFSET) | ||
134 | { | ||
135 | __start___vtop_patchlist = .; | ||
136 | *(.data.patch.vtop) | ||
137 | __end___vtop_patchlist = .; | ||
138 | } | ||
139 | |||
140 | .data.patch.mckinley_e9 : AT(ADDR(.data.patch.mckinley_e9) - LOAD_OFFSET) | ||
141 | { | ||
142 | __start___mckinley_e9_bundles = .; | ||
143 | *(.data.patch.mckinley_e9) | ||
144 | __end___mckinley_e9_bundles = .; | ||
145 | } | ||
146 | |||
147 | #if defined(CONFIG_IA64_GENERIC) | ||
148 | /* Machine Vector */ | ||
149 | . = ALIGN(16); | ||
150 | .machvec : AT(ADDR(.machvec) - LOAD_OFFSET) | ||
151 | { | ||
152 | machvec_start = .; | ||
153 | *(.machvec) | ||
154 | machvec_end = .; | ||
155 | } | ||
156 | #endif | ||
157 | |||
157 | __con_initcall_start = .; | 158 | __con_initcall_start = .; |
158 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) | 159 | .con_initcall.init : AT(ADDR(.con_initcall.init) - LOAD_OFFSET) |
159 | { *(.con_initcall.init) } | 160 | { *(.con_initcall.init) } |