forked from Minki/linux
f438d914b2
Introduce architecture dependent kretprobe blacklists to prohibit users from inserting return probes on the function in which kprobes can be inserted but kretprobes can not. This patch also removes "__kprobes" mark from "__switch_to" on x86_64 and registers "__switch_to" to the blacklist on x86-64, because that mark is to prohibit user from inserting only kretprobe. Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: Prasanna S Panchamukhi <prasanna@in.ibm.com> Acked-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com> Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
36 lines
978 B
C
36 lines
978 B
C
/*
|
|
* Kernel Probes (KProbes)
|
|
*
|
|
* Copyright (C) 2005-2006 Atmel Corporation
|
|
* Copyright (C) IBM Corporation, 2002, 2004
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
#ifndef __ASM_AVR32_KPROBES_H
|
|
#define __ASM_AVR32_KPROBES_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
typedef u16 kprobe_opcode_t;
|
|
#define BREAKPOINT_INSTRUCTION 0xd673 /* breakpoint */
|
|
#define MAX_INSN_SIZE 2
|
|
|
|
#define kretprobe_blacklist_size 0
|
|
|
|
#define arch_remove_kprobe(p) do { } while (0)
|
|
|
|
/* Architecture specific copy of original instruction */
|
|
struct arch_specific_insn {
|
|
kprobe_opcode_t insn[MAX_INSN_SIZE];
|
|
};
|
|
|
|
extern int kprobe_fault_handler(struct pt_regs *regs, int trapnr);
|
|
extern int kprobe_exceptions_notify(struct notifier_block *self,
|
|
unsigned long val, void *data);
|
|
|
|
#define flush_insn_slot(p) do { } while (0)
|
|
|
|
#endif /* __ASM_AVR32_KPROBES_H */
|