ENTRY(kernel_thread_helper)
pushl $0 # fake return address for unwinder
CFI_STARTPROC
- movl %edx,%eax
- push %edx
- CFI_ADJUST_CFA_OFFSET 4
- call *%ebx
- push %eax
- CFI_ADJUST_CFA_OFFSET 4
+ movl %edi,%eax
+ call *%esi
call do_exit
ud2 # padding for call trace
CFI_ENDPROC
}
/*
- * This gets run with %bx containing the
- * function to call, and %dx containing
+ * This gets run with %si containing the
+ * function to call, and %di containing
* the "args".
*/
extern void kernel_thread_helper(void);
memset(®s, 0, sizeof(regs));
- regs.bx = (unsigned long) fn;
- regs.dx = (unsigned long) arg;
+ regs.si = (unsigned long) fn;
+ regs.di = (unsigned long) arg;
regs.ds = __USER_DS;
regs.es = __USER_DS;