aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kernel/paravirtentry.S
diff options
context:
space:
mode:
authorIsaku Yamahata <yamahata@valinux.co.jp>2009-03-04 07:06:51 -0500
committerTony Luck <tony.luck@intel.com>2009-03-26 14:02:31 -0400
commitbf7ab02f620c1020c869fc71a2c855918b6a5375 (patch)
tree9b6ac860fc762869069d9605f5c52c0199e642e5 /arch/ia64/kernel/paravirtentry.S
parentf8de2ec678fa09276cf7ad02838eb80e86c73097 (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.S56
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)
58BRANCH_PROC_UNWINFO(leave_syscall, r22, b7) 58BRANCH_PROC_UNWINFO(leave_syscall, r22, b7)
59BRANCH_PROC(work_processed_syscall, r2, b7) 59BRANCH_PROC(work_processed_syscall, r2, b7)
60BRANCH_PROC_UNWINFO(leave_kernel, r22, b7) 60BRANCH_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)
102paravirt_nop_bundle_start:
103 {
104 nop 0
105 nop 0
106 nop 0
107 }
108paravirt_nop_bundle_end:
109 END(paravirt_nop_bundle)
110 __FINIT
111
112 __INITDATA_OR_MODULE
113 .align 8
114 .global paravirt_nop_bundle_size
115paravirt_nop_bundle_size:
116 data8 paravirt_nop_bundle_end - paravirt_nop_bundle_start