diff options
-rw-r--r-- | arch/x86/kernel/entry_32.S | 8 | ||||
-rw-r--r-- | arch/x86/kernel/process_32.c | 8 |
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) | |||
1047 | ENTRY(kernel_thread_helper) | 1047 | ENTRY(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 | */ |
200 | extern void kernel_thread_helper(void); | 200 | extern void kernel_thread_helper(void); |
@@ -208,8 +208,8 @@ int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags) | |||
208 | 208 | ||
209 | memset(®s, 0, sizeof(regs)); | 209 | memset(®s, 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; |