aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/x86/kernel/entry_32.S8
-rw-r--r--arch/x86/kernel/process_32.c8
2 files changed, 6 insertions, 10 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
index cb12b9bfc9cc..44a8e0dc6737 100644
--- a/arch/x86/kernel/entry_32.S
+++ b/arch/x86/kernel/entry_32.S
@@ -1047,12 +1047,8 @@ END(spurious_interrupt_bug)
1047ENTRY(kernel_thread_helper) 1047ENTRY(kernel_thread_helper)
1048 pushl $0 # fake return address for unwinder 1048 pushl $0 # fake return address for unwinder
1049 CFI_STARTPROC 1049 CFI_STARTPROC
1050 movl %edx,%eax 1050 movl %edi,%eax
1051 push %edx 1051 call *%esi
1052 CFI_ADJUST_CFA_OFFSET 4
1053 call *%ebx
1054 push %eax
1055 CFI_ADJUST_CFA_OFFSET 4
1056 call do_exit 1052 call do_exit
1057 ud2 # padding for call trace 1053 ud2 # padding for call trace
1058 CFI_ENDPROC 1054 CFI_ENDPROC
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 506d5a7ba17c..bd874d2b6ab1 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -193,8 +193,8 @@ void show_regs(struct pt_regs *regs)
193} 193}
194 194
195/* 195/*
196 * This gets run with %bx containing the 196 * This gets run with %si containing the
197 * function to call, and %dx containing 197 * function to call, and %di containing
198 * the "args". 198 * the "args".
199 */ 199 */
200extern void kernel_thread_helper(void); 200extern void kernel_thread_helper(void);
@@ -208,8 +208,8 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
208 208
209 memset(&regs, 0, sizeof(regs)); 209 memset(&regs, 0, sizeof(regs));
210 210
211 regs.bx = (unsigned long) fn; 211 regs.si = (unsigned long) fn;
212 regs.dx = (unsigned long) arg; 212 regs.di = (unsigned long) arg;
213 213
214 regs.ds = __USER_DS; 214 regs.ds = __USER_DS;
215 regs.es = __USER_DS; 215 regs.es = __USER_DS;