jprobes: remove JPROBE_ENTRY()

AFAICT now that jprobe.entry is a void *, JPROBE_ENTRY doesn't do anything
useful - so remove it ..

I've left a do-nothing version so that out-of-tree jprobes code will still
compile without modifications.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
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>
Cc: David S. Miller <davem@davemloft.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Michael Ellerman 2007-07-19 01:48:10 -07:00 committed by Linus Torvalds
parent 81eae375ec
commit 9e367d8592
10 changed files with 6 additions and 18 deletions

View file

@ -247,12 +247,6 @@ control to Kprobes.) If the probed function is declared asmlinkage,
fastcall, or anything else that affects how args are passed, the fastcall, or anything else that affects how args are passed, the
handler's declaration must match. handler's declaration must match.
NOTE: A macro JPROBE_ENTRY is provided to handle architecture-specific
aliasing of jp->entry. In the interest of portability, it is advised
to use:
jp->entry = JPROBE_ENTRY(handler);
register_jprobe() returns 0 on success, or a negative errno otherwise. register_jprobe() returns 0 on success, or a negative errno otherwise.
4.3 register_kretprobe 4.3 register_kretprobe
@ -518,7 +512,7 @@ long jdo_fork(unsigned long clone_flags, unsigned long stack_start,
} }
static struct jprobe my_jprobe = { static struct jprobe my_jprobe = {
.entry = JPROBE_ENTRY(jdo_fork) .entry = jdo_fork
}; };
static int __init jprobe_init(void) static int __init jprobe_init(void)

View file

@ -42,7 +42,6 @@ typedef u8 kprobe_opcode_t;
? (MAX_STACK_SIZE) \ ? (MAX_STACK_SIZE) \
: (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR)))
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry
#define ARCH_SUPPORTS_KRETPROBES #define ARCH_SUPPORTS_KRETPROBES
#define ARCH_INACTIVE_KPROBE_COUNT 0 #define ARCH_INACTIVE_KPROBE_COUNT 0
#define flush_insn_slot(p) do { } while (0) #define flush_insn_slot(p) do { } while (0)

View file

@ -82,8 +82,6 @@ struct kprobe_ctlblk {
struct prev_kprobe prev_kprobe[ARCH_PREV_KPROBE_SZ]; struct prev_kprobe prev_kprobe[ARCH_PREV_KPROBE_SZ];
}; };
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry
#define ARCH_SUPPORTS_KRETPROBES #define ARCH_SUPPORTS_KRETPROBES
#define ARCH_INACTIVE_KPROBE_COUNT 1 #define ARCH_INACTIVE_KPROBE_COUNT 1

View file

@ -73,12 +73,10 @@ typedef unsigned int kprobe_opcode_t;
} \ } \
} }
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)((func_descr_t *)pentry)
#define is_trap(instr) (IS_TW(instr) || IS_TD(instr) || \ #define is_trap(instr) (IS_TW(instr) || IS_TD(instr) || \
IS_TWI(instr) || IS_TDI(instr)) IS_TWI(instr) || IS_TDI(instr))
#else #else
/* Use stock kprobe_lookup_name since ppc32 doesn't use function descriptors */ /* Use stock kprobe_lookup_name since ppc32 doesn't use function descriptors */
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)(pentry)
#define is_trap(instr) (IS_TW(instr) || IS_TWI(instr)) #define is_trap(instr) (IS_TW(instr) || IS_TWI(instr))
#endif #endif

View file

@ -46,8 +46,6 @@ typedef u16 kprobe_opcode_t;
? (MAX_STACK_SIZE) \ ? (MAX_STACK_SIZE) \
: (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR)))
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)(pentry)
#define ARCH_SUPPORTS_KRETPROBES #define ARCH_SUPPORTS_KRETPROBES
#define ARCH_INACTIVE_KPROBE_COUNT 0 #define ARCH_INACTIVE_KPROBE_COUNT 0

View file

@ -10,7 +10,6 @@ typedef u32 kprobe_opcode_t;
#define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */ #define BREAKPOINT_INSTRUCTION_2 0x91d02071 /* ta 0x71 */
#define MAX_INSN_SIZE 2 #define MAX_INSN_SIZE 2
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry
#define arch_remove_kprobe(p) do {} while (0) #define arch_remove_kprobe(p) do {} while (0)
#define ARCH_INACTIVE_KPROBE_COUNT 0 #define ARCH_INACTIVE_KPROBE_COUNT 0

View file

@ -41,7 +41,6 @@ typedef u8 kprobe_opcode_t;
? (MAX_STACK_SIZE) \ ? (MAX_STACK_SIZE) \
: (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR))) : (((unsigned long)current_thread_info()) + THREAD_SIZE - (ADDR)))
#define JPROBE_ENTRY(pentry) (kprobe_opcode_t *)pentry
#define ARCH_SUPPORTS_KRETPROBES #define ARCH_SUPPORTS_KRETPROBES
#define ARCH_INACTIVE_KPROBE_COUNT 1 #define ARCH_INACTIVE_KPROBE_COUNT 1

View file

@ -119,6 +119,9 @@ struct jprobe {
void *entry; /* probe handling code to jump to */ void *entry; /* probe handling code to jump to */
}; };
/* For backward compatibility with old code using JPROBE_ENTRY() */
#define JPROBE_ENTRY(handler) (handler)
DECLARE_PER_CPU(struct kprobe *, current_kprobe); DECLARE_PER_CPU(struct kprobe *, current_kprobe);
DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk); DECLARE_PER_CPU(struct kprobe_ctlblk, kprobe_ctlblk);

View file

@ -112,7 +112,7 @@ static struct jprobe dccp_send_probe = {
.kp = { .kp = {
.symbol_name = "dccp_sendmsg", .symbol_name = "dccp_sendmsg",
}, },
.entry = JPROBE_ENTRY(jdccp_sendmsg), .entry = jdccp_sendmsg,
}; };
static int dccpprobe_open(struct inode *inode, struct file *file) static int dccpprobe_open(struct inode *inode, struct file *file)

View file

@ -130,7 +130,7 @@ static struct jprobe tcp_jprobe = {
.kp = { .kp = {
.symbol_name = "tcp_rcv_established", .symbol_name = "tcp_rcv_established",
}, },
.entry = JPROBE_ENTRY(jtcp_rcv_established), .entry = jtcp_rcv_established,
}; };
static int tcpprobe_open(struct inode * inode, struct file * file) static int tcpprobe_open(struct inode * inode, struct file * file)