p->opcode = *p->addr; *p->addr = BREAKPOINT_INSTRUCTION; flush_icache_range((unsigned long) p->addr, (unsigned long) p->addr + sizeof(kprobe_opcode_t)); 
arch_arm_kprobe(p);  
int register_kprobe(struct kprobe *p){	int ret = 0;	unsigned long flags = 0;	struct kprobe *old_p;	if ((ret = arch_prepare_kprobe(p)) != 0) {		goto rm_kprobe;	}	spin_lock_irqsave(&kprobe_lock, flags);	old_p = get_kprobe(p->addr);	if (old_p) {		ret = register_aggr_kprobe(old_p, p);		goto out;	}	arch_copy_kprobe(p);	INIT_HLIST_NODE(&p->hlist);	hlist_add_head(&p->hlist,		       &kprobe_table[hash_ptr(p->addr, KPROBE_HASH_BITS)]);	p->opcode = *p->addr;	*p->addr = BREAKPOINT_INSTRUCTION;	flush_icache_range((unsigned long) p->addr,			   (unsigned long) p->addr + sizeof(kprobe_opcode_t));out:	spin_unlock_irqrestore(&kprobe_lock, flags);rm_kprobe:	if (ret == -EEXIST)		arch_remove_kprobe(p);	return ret;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7e1048b11c5afe79aac46a42e3ccec86b8365c6d/kprobes.c/buggy/kernel/kprobes.c