diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:38:39 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-23 12:38:39 -0700 |
commit | c3c9897c63ebb0b93b7f78724e38d6ee1da04041 (patch) | |
tree | f1ed40f2ac6108b23251dd4e41adeac403396fea /arch/x86/include/asm/syscall.h | |
parent | d2441183dc222d12961ff2201f5086c846505d93 (diff) | |
parent | 3cfba0892585d4c8e7b4122b5dc0d206a76936de (diff) |
Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86: fix section mismatch warning - apic_x2apic_phys
x86: fix section mismatch warning - apic_x2apic_cluster
x86: fix section mismatch warning - apic_x2apic_uv_x
x86: fix section mismatch warning - apic_physflat
x86: fix section mismatch warning - apic_flat
x86: memtest fix use of reserve_early()
x86 syscall.h: fix argument order
x86/tlb_uv: remove strange mc146818rtc include
x86: remove redundant KERN_DEBUG on pr_debug
x86: do_boot_cpu - check if we have ESR register
x86: MAINTAINERS change for AMD microcode patch loader
x86/proc: fix /proc/cpuinfo cpu offline bug
x86: call dmi-quirks for HP Laptops after early-quirks are executed
x86, kexec: fix hang on i386 when panic occurs while console_sem is held
MCE: Don't run 32bit machine checks with interrupts on
x86: SB600: skip IRQ0 override if it is not routed to INT2 of IOAPIC
x86: make variables static
Diffstat (limited to 'arch/x86/include/asm/syscall.h')
-rw-r--r-- | arch/x86/include/asm/syscall.h | 106 |
1 files changed, 54 insertions, 52 deletions
diff --git a/arch/x86/include/asm/syscall.h b/arch/x86/include/asm/syscall.h index 1d88f6957d39..d82f39bb7905 100644 --- a/arch/x86/include/asm/syscall.h +++ b/arch/x86/include/asm/syscall.h @@ -93,26 +93,26 @@ static inline void syscall_get_arguments(struct task_struct *task, { # ifdef CONFIG_IA32_EMULATION if (task_thread_info(task)->status & TS_COMPAT) - switch (i + n) { - case 6: + switch (i) { + case 0: if (!n--) break; - *args++ = regs->bp; - case 5: + *args++ = regs->bx; + case 1: if (!n--) break; - *args++ = regs->di; - case 4: + *args++ = regs->cx; + case 2: if (!n--) break; - *args++ = regs->si; + *args++ = regs->dx; case 3: if (!n--) break; - *args++ = regs->dx; - case 2: + *args++ = regs->si; + case 4: if (!n--) break; - *args++ = regs->cx; - case 1: + *args++ = regs->di; + case 5: if (!n--) break; - *args++ = regs->bx; - case 0: + *args++ = regs->bp; + case 6: if (!n--) break; default: BUG(); @@ -120,26 +120,26 @@ static inline void syscall_get_arguments(struct task_struct *task, } else # endif - switch (i + n) { - case 6: + switch (i) { + case 0: if (!n--) break; - *args++ = regs->r9; - case 5: + *args++ = regs->di; + case 1: if (!n--) break; - *args++ = regs->r8; - case 4: + *args++ = regs->si; + case 2: if (!n--) break; - *args++ = regs->r10; + *args++ = regs->dx; case 3: if (!n--) break; - *args++ = regs->dx; - case 2: + *args++ = regs->r10; + case 4: if (!n--) break; - *args++ = regs->si; - case 1: + *args++ = regs->r8; + case 5: if (!n--) break; - *args++ = regs->di; - case 0: + *args++ = regs->r9; + case 6: if (!n--) break; default: BUG(); @@ -154,55 +154,57 @@ static inline void syscall_set_arguments(struct task_struct *task, { # ifdef CONFIG_IA32_EMULATION if (task_thread_info(task)->status & TS_COMPAT) - switch (i + n) { - case 6: + switch (i) { + case 0: if (!n--) break; - regs->bp = *args++; - case 5: + regs->bx = *args++; + case 1: if (!n--) break; - regs->di = *args++; - case 4: + regs->cx = *args++; + case 2: if (!n--) break; - regs->si = *args++; + regs->dx = *args++; case 3: if (!n--) break; - regs->dx = *args++; - case 2: + regs->si = *args++; + case 4: if (!n--) break; - regs->cx = *args++; - case 1: + regs->di = *args++; + case 5: if (!n--) break; - regs->bx = *args++; - case 0: + regs->bp = *args++; + case 6: if (!n--) break; default: BUG(); + break; } else # endif - switch (i + n) { - case 6: + switch (i) { + case 0: if (!n--) break; - regs->r9 = *args++; - case 5: + regs->di = *args++; + case 1: if (!n--) break; - regs->r8 = *args++; - case 4: + regs->si = *args++; + case 2: if (!n--) break; - regs->r10 = *args++; + regs->dx = *args++; case 3: if (!n--) break; - regs->dx = *args++; - case 2: + regs->r10 = *args++; + case 4: if (!n--) break; - regs->si = *args++; - case 1: + regs->r8 = *args++; + case 5: if (!n--) break; - regs->di = *args++; - case 0: + regs->r9 = *args++; + case 6: if (!n--) break; default: BUG(); + break; } } |