/* The actual disarming is done here on each CPU and synchronized using stop_machine. This synchronization is necessary on SMP to avoid removing a probe between the moment the 'Undefined Instruction' exception is raised and the moment the exception handler reads the faulting instruction from memory.  */
int __kprobes __arch_disarm_kprobe(void *p)
/* The actual disarming is done here on each CPU and synchronized using stop_machine. This synchronization is necessary on SMP to avoid removing a probe between the moment the 'Undefined Instruction' exception is raised and the moment the exception handler reads the faulting instruction from memory.  */
int __kprobes __arch_disarm_kprobe(void *p)
{
	struct kprobe *kp = p;
	*kp->addr = kp->opcode;
	flush_insns(kp->addr, 1);
	return 0;
}