diff options
Diffstat (limited to 'include/asm-ia64')
-rw-r--r-- | include/asm-ia64/Kbuild | 16 | ||||
-rw-r--r-- | include/asm-ia64/mman.h | 8 | ||||
-rw-r--r-- | include/asm-ia64/page.h | 4 | ||||
-rw-r--r-- | include/asm-ia64/ptrace.h | 10 | ||||
-rw-r--r-- | include/asm-ia64/sn/sn_sal.h | 6 | ||||
-rw-r--r-- | include/asm-ia64/sn/xp.h | 22 | ||||
-rw-r--r-- | include/asm-ia64/sn/xpc.h | 4 | ||||
-rw-r--r-- | include/asm-ia64/unistd.h | 3 | ||||
-rw-r--r-- | include/asm-ia64/ustack.h | 7 |
9 files changed, 57 insertions, 23 deletions
diff --git a/include/asm-ia64/Kbuild b/include/asm-ia64/Kbuild index 85d6f8005eb4..15818a18bc52 100644 --- a/include/asm-ia64/Kbuild +++ b/include/asm-ia64/Kbuild | |||
@@ -1,7 +1,17 @@ | |||
1 | include include/asm-generic/Kbuild.asm | 1 | include include/asm-generic/Kbuild.asm |
2 | 2 | ||
3 | header-y += break.h fpu.h fpswa.h gcc_intrin.h ia64regs.h \ | 3 | header-y += break.h |
4 | intel_intrin.h intrinsics.h perfmon_default_smpl.h \ | 4 | header-y += fpu.h |
5 | ptrace_offsets.h rse.h setup.h ucontext.h | 5 | header-y += fpswa.h |
6 | header-y += gcc_intrin.h | ||
7 | header-y += ia64regs.h | ||
8 | header-y += intel_intrin.h | ||
9 | header-y += intrinsics.h | ||
10 | header-y += perfmon_default_smpl.h | ||
11 | header-y += ptrace_offsets.h | ||
12 | header-y += rse.h | ||
13 | header-y += setup.h | ||
14 | header-y += ucontext.h | ||
6 | 15 | ||
7 | unifdef-y += perfmon.h | 16 | unifdef-y += perfmon.h |
17 | unifdef-y += ustack.h | ||
diff --git a/include/asm-ia64/mman.h b/include/asm-ia64/mman.h index 6ba179f12718..c73b87832a1e 100644 --- a/include/asm-ia64/mman.h +++ b/include/asm-ia64/mman.h | |||
@@ -22,4 +22,12 @@ | |||
22 | #define MCL_CURRENT 1 /* lock all current mappings */ | 22 | #define MCL_CURRENT 1 /* lock all current mappings */ |
23 | #define MCL_FUTURE 2 /* lock all future mappings */ | 23 | #define MCL_FUTURE 2 /* lock all future mappings */ |
24 | 24 | ||
25 | #ifdef __KERNEL__ | ||
26 | #ifndef __ASSEMBLY__ | ||
27 | #define arch_mmap_check ia64_mmap_check | ||
28 | int ia64_mmap_check(unsigned long addr, unsigned long len, | ||
29 | unsigned long flags); | ||
30 | #endif | ||
31 | #endif | ||
32 | |||
25 | #endif /* _ASM_IA64_MMAN_H */ | 33 | #endif /* _ASM_IA64_MMAN_H */ |
diff --git a/include/asm-ia64/page.h b/include/asm-ia64/page.h index f5a949ec6e1e..947cb72b520e 100644 --- a/include/asm-ia64/page.h +++ b/include/asm-ia64/page.h | |||
@@ -7,6 +7,7 @@ | |||
7 | * David Mosberger-Tang <davidm@hpl.hp.com> | 7 | * David Mosberger-Tang <davidm@hpl.hp.com> |
8 | */ | 8 | */ |
9 | 9 | ||
10 | # ifdef __KERNEL__ | ||
10 | 11 | ||
11 | #include <asm/intrinsics.h> | 12 | #include <asm/intrinsics.h> |
12 | #include <asm/types.h> | 13 | #include <asm/types.h> |
@@ -64,7 +65,6 @@ | |||
64 | # define __pa(x) ((x) - PAGE_OFFSET) | 65 | # define __pa(x) ((x) - PAGE_OFFSET) |
65 | # define __va(x) ((x) + PAGE_OFFSET) | 66 | # define __va(x) ((x) + PAGE_OFFSET) |
66 | #else /* !__ASSEMBLY */ | 67 | #else /* !__ASSEMBLY */ |
67 | # ifdef __KERNEL__ | ||
68 | # define STRICT_MM_TYPECHECKS | 68 | # define STRICT_MM_TYPECHECKS |
69 | 69 | ||
70 | extern void clear_page (void *page); | 70 | extern void clear_page (void *page); |
@@ -174,7 +174,6 @@ get_order (unsigned long size) | |||
174 | return order; | 174 | return order; |
175 | } | 175 | } |
176 | 176 | ||
177 | # endif /* __KERNEL__ */ | ||
178 | #endif /* !__ASSEMBLY__ */ | 177 | #endif /* !__ASSEMBLY__ */ |
179 | 178 | ||
180 | #ifdef STRICT_MM_TYPECHECKS | 179 | #ifdef STRICT_MM_TYPECHECKS |
@@ -228,4 +227,5 @@ get_order (unsigned long size) | |||
228 | (((current->personality & READ_IMPLIES_EXEC) != 0) \ | 227 | (((current->personality & READ_IMPLIES_EXEC) != 0) \ |
229 | ? VM_EXEC : 0)) | 228 | ? VM_EXEC : 0)) |
230 | 229 | ||
230 | # endif /* __KERNEL__ */ | ||
231 | #endif /* _ASM_IA64_PAGE_H */ | 231 | #endif /* _ASM_IA64_PAGE_H */ |
diff --git a/include/asm-ia64/ptrace.h b/include/asm-ia64/ptrace.h index 415abb23b210..1414316efd40 100644 --- a/include/asm-ia64/ptrace.h +++ b/include/asm-ia64/ptrace.h | |||
@@ -56,6 +56,8 @@ | |||
56 | 56 | ||
57 | 57 | ||
58 | #include <asm/fpu.h> | 58 | #include <asm/fpu.h> |
59 | |||
60 | #ifdef __KERNEL__ | ||
59 | #ifndef ASM_OFFSETS_C | 61 | #ifndef ASM_OFFSETS_C |
60 | #include <asm/asm-offsets.h> | 62 | #include <asm/asm-offsets.h> |
61 | #endif | 63 | #endif |
@@ -79,10 +81,9 @@ | |||
79 | 81 | ||
80 | #define KERNEL_STACK_SIZE IA64_STK_OFFSET | 82 | #define KERNEL_STACK_SIZE IA64_STK_OFFSET |
81 | 83 | ||
82 | #ifndef __ASSEMBLY__ | 84 | #endif /* __KERNEL__ */ |
83 | 85 | ||
84 | #include <asm/current.h> | 86 | #ifndef __ASSEMBLY__ |
85 | #include <asm/page.h> | ||
86 | 87 | ||
87 | /* | 88 | /* |
88 | * This struct defines the way the registers are saved on system | 89 | * This struct defines the way the registers are saved on system |
@@ -229,6 +230,9 @@ struct switch_stack { | |||
229 | 230 | ||
230 | #ifdef __KERNEL__ | 231 | #ifdef __KERNEL__ |
231 | 232 | ||
233 | #include <asm/current.h> | ||
234 | #include <asm/page.h> | ||
235 | |||
232 | #define __ARCH_SYS_PTRACE 1 | 236 | #define __ARCH_SYS_PTRACE 1 |
233 | 237 | ||
234 | /* | 238 | /* |
diff --git a/include/asm-ia64/sn/sn_sal.h b/include/asm-ia64/sn/sn_sal.h index bd4452bda357..ba826b3f75bb 100644 --- a/include/asm-ia64/sn/sn_sal.h +++ b/include/asm-ia64/sn/sn_sal.h | |||
@@ -706,12 +706,9 @@ static inline int | |||
706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) | 706 | sn_change_memprotect(u64 paddr, u64 len, u64 perms, u64 *nasid_array) |
707 | { | 707 | { |
708 | struct ia64_sal_retval ret_stuff; | 708 | struct ia64_sal_retval ret_stuff; |
709 | unsigned long irq_flags; | ||
710 | 709 | ||
711 | local_irq_save(irq_flags); | ||
712 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, | 710 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_MEMPROTECT, paddr, len, |
713 | (u64)nasid_array, perms, 0, 0, 0); | 711 | (u64)nasid_array, perms, 0, 0, 0); |
714 | local_irq_restore(irq_flags); | ||
715 | return ret_stuff.status; | 712 | return ret_stuff.status; |
716 | } | 713 | } |
717 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 | 714 | #define SN_MEMPROT_ACCESS_CLASS_0 0x14a080 |
@@ -1143,12 +1140,9 @@ static inline int | |||
1143 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) | 1140 | sn_inject_error(u64 paddr, u64 *data, u64 *ecc) |
1144 | { | 1141 | { |
1145 | struct ia64_sal_retval ret_stuff; | 1142 | struct ia64_sal_retval ret_stuff; |
1146 | unsigned long irq_flags; | ||
1147 | 1143 | ||
1148 | local_irq_save(irq_flags); | ||
1149 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, | 1144 | ia64_sal_oemcall_nolock(&ret_stuff, SN_SAL_INJECT_ERROR, paddr, (u64)data, |
1150 | (u64)ecc, 0, 0, 0, 0); | 1145 | (u64)ecc, 0, 0, 0, 0); |
1151 | local_irq_restore(irq_flags); | ||
1152 | return ret_stuff.status; | 1146 | return ret_stuff.status; |
1153 | } | 1147 | } |
1154 | 1148 | ||
diff --git a/include/asm-ia64/sn/xp.h b/include/asm-ia64/sn/xp.h index 9bd2f9bf329b..6f807e0193b7 100644 --- a/include/asm-ia64/sn/xp.h +++ b/include/asm-ia64/sn/xp.h | |||
@@ -60,23 +60,37 @@ | |||
60 | * the bte_copy() once in the hope that the failure was due to a temporary | 60 | * the bte_copy() once in the hope that the failure was due to a temporary |
61 | * aberration (i.e., the link going down temporarily). | 61 | * aberration (i.e., the link going down temporarily). |
62 | * | 62 | * |
63 | * See bte_copy for definition of the input parameters. | 63 | * src - physical address of the source of the transfer. |
64 | * vdst - virtual address of the destination of the transfer. | ||
65 | * len - number of bytes to transfer from source to destination. | ||
66 | * mode - see bte_copy() for definition. | ||
67 | * notification - see bte_copy() for definition. | ||
64 | * | 68 | * |
65 | * Note: xp_bte_copy() should never be called while holding a spinlock. | 69 | * Note: xp_bte_copy() should never be called while holding a spinlock. |
66 | */ | 70 | */ |
67 | static inline bte_result_t | 71 | static inline bte_result_t |
68 | xp_bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification) | 72 | xp_bte_copy(u64 src, u64 vdst, u64 len, u64 mode, void *notification) |
69 | { | 73 | { |
70 | bte_result_t ret; | 74 | bte_result_t ret; |
75 | u64 pdst = ia64_tpa(vdst); | ||
71 | 76 | ||
72 | 77 | ||
73 | ret = bte_copy(src, dest, len, mode, notification); | 78 | /* |
79 | * Ensure that the physically mapped memory is contiguous. | ||
80 | * | ||
81 | * We do this by ensuring that the memory is from region 7 only. | ||
82 | * If the need should arise to use memory from one of the other | ||
83 | * regions, then modify the BUG_ON() statement to ensure that the | ||
84 | * memory from that region is always physically contiguous. | ||
85 | */ | ||
86 | BUG_ON(REGION_NUMBER(vdst) != RGN_KERNEL); | ||
74 | 87 | ||
88 | ret = bte_copy(src, pdst, len, mode, notification); | ||
75 | if (ret != BTE_SUCCESS) { | 89 | if (ret != BTE_SUCCESS) { |
76 | if (!in_interrupt()) { | 90 | if (!in_interrupt()) { |
77 | cond_resched(); | 91 | cond_resched(); |
78 | } | 92 | } |
79 | ret = bte_copy(src, dest, len, mode, notification); | 93 | ret = bte_copy(src, pdst, len, mode, notification); |
80 | } | 94 | } |
81 | 95 | ||
82 | return ret; | 96 | return ret; |
diff --git a/include/asm-ia64/sn/xpc.h b/include/asm-ia64/sn/xpc.h index b72af597878d..35e1386f37ab 100644 --- a/include/asm-ia64/sn/xpc.h +++ b/include/asm-ia64/sn/xpc.h | |||
@@ -683,7 +683,9 @@ extern struct xpc_vars *xpc_vars; | |||
683 | extern struct xpc_rsvd_page *xpc_rsvd_page; | 683 | extern struct xpc_rsvd_page *xpc_rsvd_page; |
684 | extern struct xpc_vars_part *xpc_vars_part; | 684 | extern struct xpc_vars_part *xpc_vars_part; |
685 | extern struct xpc_partition xpc_partitions[XP_MAX_PARTITIONS + 1]; | 685 | extern struct xpc_partition xpc_partitions[XP_MAX_PARTITIONS + 1]; |
686 | extern char xpc_remote_copy_buffer[]; | 686 | extern char *xpc_remote_copy_buffer; |
687 | extern void *xpc_remote_copy_buffer_base; | ||
688 | extern void *xpc_kmalloc_cacheline_aligned(size_t, gfp_t, void **); | ||
687 | extern struct xpc_rsvd_page *xpc_rsvd_page_init(void); | 689 | extern struct xpc_rsvd_page *xpc_rsvd_page_init(void); |
688 | extern void xpc_allow_IPI_ops(void); | 690 | extern void xpc_allow_IPI_ops(void); |
689 | extern void xpc_restrict_IPI_ops(void); | 691 | extern void xpc_restrict_IPI_ops(void); |
diff --git a/include/asm-ia64/unistd.h b/include/asm-ia64/unistd.h index bb0eb727dcd0..f581662c5ab8 100644 --- a/include/asm-ia64/unistd.h +++ b/include/asm-ia64/unistd.h | |||
@@ -286,8 +286,7 @@ | |||
286 | /* 1294, 1295 reserved for pselect/ppoll */ | 286 | /* 1294, 1295 reserved for pselect/ppoll */ |
287 | #define __NR_unshare 1296 | 287 | #define __NR_unshare 1296 |
288 | #define __NR_splice 1297 | 288 | #define __NR_splice 1297 |
289 | #define __NR_set_robust_list 1298 | 289 | /* 1298, 1299 reserved for set_robust_list/get_robust_list */ |
290 | #define __NR_get_robust_list 1299 | ||
291 | #define __NR_sync_file_range 1300 | 290 | #define __NR_sync_file_range 1300 |
292 | #define __NR_tee 1301 | 291 | #define __NR_tee 1301 |
293 | #define __NR_vmsplice 1302 | 292 | #define __NR_vmsplice 1302 |
diff --git a/include/asm-ia64/ustack.h b/include/asm-ia64/ustack.h index da55c91246e3..a349467913ea 100644 --- a/include/asm-ia64/ustack.h +++ b/include/asm-ia64/ustack.h | |||
@@ -5,12 +5,15 @@ | |||
5 | * Constants for the user stack size | 5 | * Constants for the user stack size |
6 | */ | 6 | */ |
7 | 7 | ||
8 | #ifdef __KERNEL__ | ||
8 | #include <asm/page.h> | 9 | #include <asm/page.h> |
9 | 10 | ||
10 | /* The absolute hard limit for stack size is 1/2 of the mappable space in the region */ | 11 | /* The absolute hard limit for stack size is 1/2 of the mappable space in the region */ |
11 | #define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2) | 12 | #define MAX_USER_STACK_SIZE (RGN_MAP_LIMIT/2) |
12 | /* Make a default stack size of 2GB */ | ||
13 | #define DEFAULT_USER_STACK_SIZE (1UL << 31) | ||
14 | #define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT) | 13 | #define STACK_TOP (0x6000000000000000UL + RGN_MAP_LIMIT) |
14 | #endif | ||
15 | |||
16 | /* Make a default stack size of 2GiB */ | ||
17 | #define DEFAULT_USER_STACK_SIZE (1UL << 31) | ||
15 | 18 | ||
16 | #endif /* _ASM_IA64_USTACK_H */ | 19 | #endif /* _ASM_IA64_USTACK_H */ |