diff options
author | Tony Luck <tony.luck@intel.com> | 2006-11-14 12:33:38 -0500 |
---|---|---|
committer | Tony Luck <tony.luck@intel.com> | 2006-12-12 15:00:55 -0500 |
commit | 08ed38b68099f2a492196414b08a7f5dd8dc3537 (patch) | |
tree | 1be49040ba10db0fefc16a31c4ee13461c50e131 /arch/ia64/kernel/jprobes.S | |
parent | 75f6a1de41f90543792403bf0ffb3ead59d0d8cc (diff) |
[IA64] enable trap code on slot 1
Because slot 1 of one instr bundle crosses border of two consecutive
8-bytes, kprobe on slot 1 is disabled. This patch enables kprobe on
slot1, it only replaces higher 8-bytes of the instruction bundle and
changes the exception code to ignore the low 12 bits of the break
number (which is across the border in the lower 8-bytes of the bundle).
For those instructions which must execute regardless qp bits,
kprobe on slot 1 is still disabled.
Signed-off-by: bibo,mao <bibo.mao@intel.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Diffstat (limited to 'arch/ia64/kernel/jprobes.S')
-rw-r--r-- | arch/ia64/kernel/jprobes.S | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/ia64/kernel/jprobes.S b/arch/ia64/kernel/jprobes.S index 5cd6226f44f2..621630256c4a 100644 --- a/arch/ia64/kernel/jprobes.S +++ b/arch/ia64/kernel/jprobes.S | |||
@@ -45,13 +45,14 @@ | |||
45 | * to the correct location. | 45 | * to the correct location. |
46 | */ | 46 | */ |
47 | #include <asm/asmmacro.h> | 47 | #include <asm/asmmacro.h> |
48 | #include <asm-ia64/break.h> | ||
48 | 49 | ||
49 | /* | 50 | /* |
50 | * void jprobe_break(void) | 51 | * void jprobe_break(void) |
51 | */ | 52 | */ |
52 | .section .kprobes.text, "ax" | 53 | .section .kprobes.text, "ax" |
53 | ENTRY(jprobe_break) | 54 | ENTRY(jprobe_break) |
54 | break.m 0x80300 | 55 | break.m __IA64_BREAK_JPROBE |
55 | END(jprobe_break) | 56 | END(jprobe_break) |
56 | 57 | ||
57 | /* | 58 | /* |