diff options
| author | Ingo Molnar <mingo@elte.hu> | 2008-09-10 05:32:52 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2008-09-10 05:32:52 -0400 |
| commit | e92b4fdacc6a7d8cc7895b81347671d5fcd6c5e1 (patch) | |
| tree | 4f84567261682d8ec2ad4102bce1ff970a6eed1a /arch/ia64 | |
| parent | 9fcaff0e660d886e9a766460adbe558dd25de31b (diff) | |
| parent | adee14b2e1557d0a8559f29681732d05a89dfc35 (diff) | |
Merge commit 'v2.6.27-rc6' into x86/iommu
Diffstat (limited to 'arch/ia64')
| -rw-r--r-- | arch/ia64/include/asm/io.h | 10 | ||||
| -rw-r--r-- | arch/ia64/include/asm/sections.h | 3 | ||||
| -rw-r--r-- | arch/ia64/kernel/module.c | 12 | ||||
| -rw-r--r-- | arch/ia64/kernel/smpboot.c | 1 |
4 files changed, 22 insertions, 4 deletions
diff --git a/arch/ia64/include/asm/io.h b/arch/ia64/include/asm/io.h index 260a85ac9d6a..7f257507cd86 100644 --- a/arch/ia64/include/asm/io.h +++ b/arch/ia64/include/asm/io.h | |||
| @@ -19,6 +19,8 @@ | |||
| 19 | * Copyright (C) 1999 Don Dugger <don.dugger@intel.com> | 19 | * Copyright (C) 1999 Don Dugger <don.dugger@intel.com> |
| 20 | */ | 20 | */ |
| 21 | 21 | ||
| 22 | #include <asm/unaligned.h> | ||
| 23 | |||
| 22 | /* We don't use IO slowdowns on the ia64, but.. */ | 24 | /* We don't use IO slowdowns on the ia64, but.. */ |
| 23 | #define __SLOW_DOWN_IO do { } while (0) | 25 | #define __SLOW_DOWN_IO do { } while (0) |
| 24 | #define SLOW_DOWN_IO do { } while (0) | 26 | #define SLOW_DOWN_IO do { } while (0) |
| @@ -241,7 +243,7 @@ __insw (unsigned long port, void *dst, unsigned long count) | |||
| 241 | unsigned short *dp = dst; | 243 | unsigned short *dp = dst; |
| 242 | 244 | ||
| 243 | while (count--) | 245 | while (count--) |
| 244 | *dp++ = platform_inw(port); | 246 | put_unaligned(platform_inw(port), dp++); |
| 245 | } | 247 | } |
| 246 | 248 | ||
| 247 | static inline void | 249 | static inline void |
| @@ -250,7 +252,7 @@ __insl (unsigned long port, void *dst, unsigned long count) | |||
| 250 | unsigned int *dp = dst; | 252 | unsigned int *dp = dst; |
| 251 | 253 | ||
| 252 | while (count--) | 254 | while (count--) |
| 253 | *dp++ = platform_inl(port); | 255 | put_unaligned(platform_inl(port), dp++); |
| 254 | } | 256 | } |
| 255 | 257 | ||
| 256 | static inline void | 258 | static inline void |
| @@ -268,7 +270,7 @@ __outsw (unsigned long port, const void *src, unsigned long count) | |||
| 268 | const unsigned short *sp = src; | 270 | const unsigned short *sp = src; |
| 269 | 271 | ||
| 270 | while (count--) | 272 | while (count--) |
| 271 | platform_outw(*sp++, port); | 273 | platform_outw(get_unaligned(sp++), port); |
| 272 | } | 274 | } |
| 273 | 275 | ||
| 274 | static inline void | 276 | static inline void |
| @@ -277,7 +279,7 @@ __outsl (unsigned long port, const void *src, unsigned long count) | |||
| 277 | const unsigned int *sp = src; | 279 | const unsigned int *sp = src; |
| 278 | 280 | ||
| 279 | while (count--) | 281 | while (count--) |
| 280 | platform_outl(*sp++, port); | 282 | platform_outl(get_unaligned(sp++), port); |
| 281 | } | 283 | } |
| 282 | 284 | ||
| 283 | /* | 285 | /* |
diff --git a/arch/ia64/include/asm/sections.h b/arch/ia64/include/asm/sections.h index 7286e4a9fe84..a7acad2bc2f0 100644 --- a/arch/ia64/include/asm/sections.h +++ b/arch/ia64/include/asm/sections.h | |||
| @@ -21,5 +21,8 @@ extern char __start_gate_brl_fsys_bubble_down_patchlist[], __end_gate_brl_fsys_b | |||
| 21 | extern char __start_unwind[], __end_unwind[]; | 21 | extern char __start_unwind[], __end_unwind[]; |
| 22 | extern char __start_ivt_text[], __end_ivt_text[]; | 22 | extern char __start_ivt_text[], __end_ivt_text[]; |
| 23 | 23 | ||
| 24 | #undef dereference_function_descriptor | ||
| 25 | void *dereference_function_descriptor(void *); | ||
| 26 | |||
| 24 | #endif /* _ASM_IA64_SECTIONS_H */ | 27 | #endif /* _ASM_IA64_SECTIONS_H */ |
| 25 | 28 | ||
diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c index 29aad349e0c4..545626f66a4c 100644 --- a/arch/ia64/kernel/module.c +++ b/arch/ia64/kernel/module.c | |||
| @@ -31,9 +31,11 @@ | |||
| 31 | #include <linux/elf.h> | 31 | #include <linux/elf.h> |
| 32 | #include <linux/moduleloader.h> | 32 | #include <linux/moduleloader.h> |
| 33 | #include <linux/string.h> | 33 | #include <linux/string.h> |
| 34 | #include <linux/uaccess.h> | ||
| 34 | #include <linux/vmalloc.h> | 35 | #include <linux/vmalloc.h> |
| 35 | 36 | ||
| 36 | #include <asm/patch.h> | 37 | #include <asm/patch.h> |
| 38 | #include <asm/sections.h> | ||
| 37 | #include <asm/unaligned.h> | 39 | #include <asm/unaligned.h> |
| 38 | 40 | ||
| 39 | #define ARCH_MODULE_DEBUG 0 | 41 | #define ARCH_MODULE_DEBUG 0 |
| @@ -941,3 +943,13 @@ module_arch_cleanup (struct module *mod) | |||
| 941 | if (mod->arch.core_unw_table) | 943 | if (mod->arch.core_unw_table) |
| 942 | unw_remove_unwind_table(mod->arch.core_unw_table); | 944 | unw_remove_unwind_table(mod->arch.core_unw_table); |
| 943 | } | 945 | } |
| 946 | |||
| 947 | void *dereference_function_descriptor(void *ptr) | ||
| 948 | { | ||
| 949 | struct fdesc *desc = ptr; | ||
| 950 | void *p; | ||
| 951 | |||
| 952 | if (!probe_kernel_address(&desc->ip, p)) | ||
| 953 | ptr = p; | ||
| 954 | return ptr; | ||
| 955 | } | ||
diff --git a/arch/ia64/kernel/smpboot.c b/arch/ia64/kernel/smpboot.c index b39853a292d5..bcea81e432fd 100644 --- a/arch/ia64/kernel/smpboot.c +++ b/arch/ia64/kernel/smpboot.c | |||
| @@ -138,6 +138,7 @@ cpumask_t cpu_possible_map = CPU_MASK_NONE; | |||
| 138 | EXPORT_SYMBOL(cpu_possible_map); | 138 | EXPORT_SYMBOL(cpu_possible_map); |
| 139 | 139 | ||
| 140 | cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; | 140 | cpumask_t cpu_core_map[NR_CPUS] __cacheline_aligned; |
| 141 | EXPORT_SYMBOL(cpu_core_map); | ||
| 141 | DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); | 142 | DEFINE_PER_CPU_SHARED_ALIGNED(cpumask_t, cpu_sibling_map); |
| 142 | EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); | 143 | EXPORT_PER_CPU_SYMBOL(cpu_sibling_map); |
| 143 | 144 | ||
