diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 11:40:02 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-01-25 11:40:02 -0500 |
commit | 7556afa0e0e436cad4f560ee83e5fbd5dac9359a (patch) | |
tree | c1500918b4b7c8b760feab1c8eeb8a815d2135ca /arch/avr32/kernel/kprobes.c | |
parent | e07dd2ad305f6b29b47d713600aa8b722ef2a9f7 (diff) | |
parent | d6c49a7a78fc841418bbd58bda504076f80ec51d (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hskinnemoen/avr32-2.6:
[AVR32] extint: Set initial irq type to low level
[AVR32] extint: change set_irq_type() handling
[AVR32] NMI debugging
[AVR32] constify function pointer tables
[AVR32] ATNGW100: Update defconfig
[AVR32] ATSTK1002: Update defconfig
[AVR32] Kconfig: Choose daughterboard instead of CPU
[AVR32] Add support for ATSTK1003 and ATSTK1004
[AVR32] Clean up external DAC setup code
[AVR32] ATSTK1000: Move gpio-leds setup to setup.c
[AVR32] Add support for AT32AP7001 and AT32AP7002
[AVR32] Provide more CPU information in /proc/cpuinfo and dmesg
[AVR32] Oprofile support
[AVR32] Include instrumentation menu
Disable VGA text console for AVR32 architecture
[AVR32] Enable debugging only when needed
ptrace: Call arch_ptrace_attach() when request=PTRACE_TRACEME
[AVR32] Remove redundant try_to_freeze() call from do_signal()
[AVR32] Drop GFP_COMP for DMA memory allocations
Diffstat (limited to 'arch/avr32/kernel/kprobes.c')
-rw-r--r-- | arch/avr32/kernel/kprobes.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/avr32/kernel/kprobes.c b/arch/avr32/kernel/kprobes.c index 799ba89b07a8..f820e9f25520 100644 --- a/arch/avr32/kernel/kprobes.c +++ b/arch/avr32/kernel/kprobes.c | |||
@@ -48,6 +48,7 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p) | |||
48 | void __kprobes arch_arm_kprobe(struct kprobe *p) | 48 | void __kprobes arch_arm_kprobe(struct kprobe *p) |
49 | { | 49 | { |
50 | pr_debug("arming kprobe at %p\n", p->addr); | 50 | pr_debug("arming kprobe at %p\n", p->addr); |
51 | ocd_enable(NULL); | ||
51 | *p->addr = BREAKPOINT_INSTRUCTION; | 52 | *p->addr = BREAKPOINT_INSTRUCTION; |
52 | flush_icache_range((unsigned long)p->addr, | 53 | flush_icache_range((unsigned long)p->addr, |
53 | (unsigned long)p->addr + sizeof(kprobe_opcode_t)); | 54 | (unsigned long)p->addr + sizeof(kprobe_opcode_t)); |
@@ -56,6 +57,7 @@ void __kprobes arch_arm_kprobe(struct kprobe *p) | |||
56 | void __kprobes arch_disarm_kprobe(struct kprobe *p) | 57 | void __kprobes arch_disarm_kprobe(struct kprobe *p) |
57 | { | 58 | { |
58 | pr_debug("disarming kprobe at %p\n", p->addr); | 59 | pr_debug("disarming kprobe at %p\n", p->addr); |
60 | ocd_disable(NULL); | ||
59 | *p->addr = p->opcode; | 61 | *p->addr = p->opcode; |
60 | flush_icache_range((unsigned long)p->addr, | 62 | flush_icache_range((unsigned long)p->addr, |
61 | (unsigned long)p->addr + sizeof(kprobe_opcode_t)); | 63 | (unsigned long)p->addr + sizeof(kprobe_opcode_t)); |
@@ -260,9 +262,6 @@ int __kprobes longjmp_break_handler(struct kprobe *p, struct pt_regs *regs) | |||
260 | 262 | ||
261 | int __init arch_init_kprobes(void) | 263 | int __init arch_init_kprobes(void) |
262 | { | 264 | { |
263 | printk("KPROBES: Enabling monitor mode (MM|DBE)...\n"); | ||
264 | ocd_write(DC, (1 << OCD_DC_MM_BIT) | (1 << OCD_DC_DBE_BIT)); | ||
265 | |||
266 | /* TODO: Register kretprobe trampoline */ | 265 | /* TODO: Register kretprobe trampoline */ |
267 | return 0; | 266 | return 0; |
268 | } | 267 | } |