diff options
author | Isaku Yamahata <yamahata@valinux.co.jp> | 2009-03-04 07:06:51 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2009-03-26 14:02:31 -0400 |
commit | bf7ab02f620c1020c869fc71a2c855918b6a5375 (patch) | |
tree | 9b6ac860fc762869069d9605f5c52c0199e642e5 /arch/ia64/kernel/paravirtentry.S | |
parent | f8de2ec678fa09276cf7ad02838eb80e86c73097 (diff) |
ia64/pv_op/binarypatch: add helper functions to support binary patching for paravirt_ops.
add helper functions to support binary patching for paravirt_ops.
Signed-off-by: Isaku Yamahata <yamahata@valinux.co.jp>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/paravirtentry.S')
-rw-r--r-- | arch/ia64/kernel/paravirtentry.S | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/arch/ia64/kernel/paravirtentry.S b/arch/ia64/kernel/paravirtentry.S index 2f42fcb9776a..80c0d365cbc0 100644 --- a/arch/ia64/kernel/paravirtentry.S +++ b/arch/ia64/kernel/paravirtentry.S | |||
@@ -58,3 +58,59 @@ BRANCH_PROC(switch_to, r22, b7) | |||
58 | BRANCH_PROC_UNWINFO(leave_syscall, r22, b7) | 58 | BRANCH_PROC_UNWINFO(leave_syscall, r22, b7) |
59 | BRANCH_PROC(work_processed_syscall, r2, b7) | 59 | BRANCH_PROC(work_processed_syscall, r2, b7) |
60 | BRANCH_PROC_UNWINFO(leave_kernel, r22, b7) | 60 | BRANCH_PROC_UNWINFO(leave_kernel, r22, b7) |
61 | |||
62 | |||
63 | #ifdef CONFIG_MODULES | ||
64 | #define __INIT_OR_MODULE .text | ||
65 | #define __INITDATA_OR_MODULE .data | ||
66 | #else | ||
67 | #define __INIT_OR_MODULE __INIT | ||
68 | #define __INITDATA_OR_MODULE __INITDATA | ||
69 | #endif /* CONFIG_MODULES */ | ||
70 | |||
71 | __INIT_OR_MODULE | ||
72 | GLOBAL_ENTRY(paravirt_fc_i) | ||
73 | fc.i r32 | ||
74 | br.ret.sptk.many rp | ||
75 | END(paravirt_fc_i) | ||
76 | __FINIT | ||
77 | |||
78 | __INIT_OR_MODULE | ||
79 | .align 32 | ||
80 | GLOBAL_ENTRY(paravirt_nop_b_inst_bundle) | ||
81 | { | ||
82 | nop.b 0 | ||
83 | nop.b 0 | ||
84 | nop.b 0 | ||
85 | } | ||
86 | END(paravirt_nop_b_inst_bundle) | ||
87 | __FINIT | ||
88 | |||
89 | /* NOTE: nop.[mfi] has same format */ | ||
90 | __INIT_OR_MODULE | ||
91 | GLOBAL_ENTRY(paravirt_nop_mfi_inst_bundle) | ||
92 | { | ||
93 | nop.m 0 | ||
94 | nop.f 0 | ||
95 | nop.i 0 | ||
96 | } | ||
97 | END(paravirt_nop_mfi_inst_bundle) | ||
98 | __FINIT | ||
99 | |||
100 | __INIT_OR_MODULE | ||
101 | GLOBAL_ENTRY(paravirt_nop_bundle) | ||
102 | paravirt_nop_bundle_start: | ||
103 | { | ||
104 | nop 0 | ||
105 | nop 0 | ||
106 | nop 0 | ||
107 | } | ||
108 | paravirt_nop_bundle_end: | ||
109 | END(paravirt_nop_bundle) | ||
110 | __FINIT | ||
111 | |||
112 | __INITDATA_OR_MODULE | ||
113 | .align 8 | ||
114 | .global paravirt_nop_bundle_size | ||
115 | paravirt_nop_bundle_size: | ||
116 | data8 paravirt_nop_bundle_end - paravirt_nop_bundle_start | ||