diff options
Diffstat (limited to 'arch/ia64/include')
| -rw-r--r-- | arch/ia64/include/asm/elf.h | 15 | ||||
| -rw-r--r-- | arch/ia64/include/asm/sections.h | 16 | ||||
| -rw-r--r-- | arch/ia64/include/asm/sn/bte.h | 9 |
3 files changed, 35 insertions, 5 deletions
diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h index 5e0c1a6bce8d..2acb6b6543c9 100644 --- a/arch/ia64/include/asm/elf.h +++ b/arch/ia64/include/asm/elf.h | |||
| @@ -266,4 +266,19 @@ do { \ | |||
| 266 | } \ | 266 | } \ |
| 267 | } while (0) | 267 | } while (0) |
| 268 | 268 | ||
| 269 | /* | ||
| 270 | * format for entries in the Global Offset Table | ||
| 271 | */ | ||
| 272 | struct got_entry { | ||
| 273 | uint64_t val; | ||
| 274 | }; | ||
| 275 | |||
| 276 | /* | ||
| 277 | * Layout of the Function Descriptor | ||
| 278 | */ | ||
| 279 | struct fdesc { | ||
| 280 | uint64_t ip; | ||
| 281 | uint64_t gp; | ||
| 282 | }; | ||
| 283 | |||
| 269 | #endif /* _ASM_IA64_ELF_H */ | 284 | #endif /* _ASM_IA64_ELF_H */ |
diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h index a7acad2bc2f0..1a873b36a4a1 100644 --- a/arch/ia64/include/asm/sections.h +++ b/arch/ia64/include/asm/sections.h | |||
| @@ -6,9 +6,14 @@ | |||
| 6 | * David Mosberger-Tang <davidm@hpl.hp.com> | 6 | * David Mosberger-Tang <davidm@hpl.hp.com> |
| 7 | */ | 7 | */ |
| 8 | 8 | ||
| 9 | #include <linux/elf.h> | ||
| 10 | #include <linux/uaccess.h> | ||
| 9 | #include <asm-generic/sections.h> | 11 | #include <asm-generic/sections.h> |
| 10 | 12 | ||
| 11 | extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[]; | 13 | extern char __per_cpu_start[], __per_cpu_end[], __phys_per_cpu_start[]; |
| 14 | #ifdef CONFIG_SMP | ||
| 15 | extern char __cpu0_per_cpu[]; | ||
| 16 | #endif | ||
| 12 | extern char __start___vtop_patchlist[], __end___vtop_patchlist[]; | 17 | extern char __start___vtop_patchlist[], __end___vtop_patchlist[]; |
| 13 | extern char __start___rse_patchlist[], __end___rse_patchlist[]; | 18 | extern char __start___rse_patchlist[], __end___rse_patchlist[]; |
| 14 | extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[]; | 19 | extern char __start___mckinley_e9_bundles[], __end___mckinley_e9_bundles[]; |
| @@ -22,7 +27,16 @@ extern char __start_unwind[], __end_unwind[]; | |||
| 22 | extern char __start_ivt_text[], __end_ivt_text[]; | 27 | extern char __start_ivt_text[], __end_ivt_text[]; |
| 23 | 28 | ||
| 24 | #undef dereference_function_descriptor | 29 | #undef dereference_function_descriptor |
| 25 | void *dereference_function_descriptor(void *); | 30 | static inline void *dereference_function_descriptor(void *ptr) |
| 31 | { | ||
| 32 | struct fdesc *desc = ptr; | ||
| 33 | void *p; | ||
| 34 | |||
| 35 | if (!probe_kernel_address(&desc->ip, p)) | ||
| 36 | ptr = p; | ||
| 37 | return ptr; | ||
| 38 | } | ||
| 39 | |||
| 26 | 40 | ||
| 27 | #endif /* _ASM_IA64_SECTIONS_H */ | 41 | #endif /* _ASM_IA64_SECTIONS_H */ |
| 28 | 42 | ||
diff --git a/arch/ia64/include/asm/sn/bte.h b/arch/ia64/include/asm/sn/bte.h index a0d214f43115..5efecf06c9a4 100644 --- a/arch/ia64/include/asm/sn/bte.h +++ b/arch/ia64/include/asm/sn/bte.h | |||
| @@ -223,10 +223,11 @@ extern void bte_error_handler(unsigned long); | |||
| 223 | * until the transfer is complete. In order to get the asynch | 223 | * until the transfer is complete. In order to get the asynch |
| 224 | * version of bte_copy, you must perform this check yourself. | 224 | * version of bte_copy, you must perform this check yourself. |
| 225 | */ | 225 | */ |
| 226 | #define BTE_UNALIGNED_COPY(src, dest, len, mode) \ | 226 | #define BTE_UNALIGNED_COPY(src, dest, len, mode) \ |
| 227 | (((len & L1_CACHE_MASK) || (src & L1_CACHE_MASK) || \ | 227 | (((len & (L1_CACHE_BYTES - 1)) || \ |
| 228 | (dest & L1_CACHE_MASK)) ? \ | 228 | (src & (L1_CACHE_BYTES - 1)) || \ |
| 229 | bte_unaligned_copy(src, dest, len, mode) : \ | 229 | (dest & (L1_CACHE_BYTES - 1))) ? \ |
| 230 | bte_unaligned_copy(src, dest, len, mode) : \ | ||
| 230 | bte_copy(src, dest, len, mode, NULL)) | 231 | bte_copy(src, dest, len, mode, NULL)) |
| 231 | 232 | ||
| 232 | 233 | ||
