Re: [GIT PULL] x86/paravirt for v2.6.33

From: H. Peter Anvin
Date: Wed Dec 09 2009 - 13:50:21 EST


On 12/09/2009 10:31 AM, Jeremy Fitzhardinge wrote:
>
> How does this look?
>
> git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git fix-iopl
>
> From: Jeremy Fitzhardinge<jeremy.fitzhardinge@xxxxxxxxxx>
> Date: Wed, 9 Dec 2009 10:26:59 -0800
> Subject: [PATCH] x86: Make sys_iopl use passed-in pt_regs
>
> Rather than using task_pt_regs, use the pt_regs * passed into the syscall.
> The ABI differences are handled in small 32/64-bit specific functions,
> and everything else is handled in the common do_iopl().
>
> Signed-off-by: Jeremy Fitzhardinge<jeremy.fitzhardinge@xxxxxxxxxx>
>
> diff --git a/arch/x86/include/asm/syscalls.h b/arch/x86/include/asm/syscalls.h
> index 5336ce2..70497f0 100644
> --- a/arch/x86/include/asm/syscalls.h
> +++ b/arch/x86/include/asm/syscalls.h
> @@ -33,11 +33,11 @@ long sys_rt_sigreturn(struct pt_regs *);
> asmlinkage int sys_set_thread_area(struct user_desc __user *);
> asmlinkage int sys_get_thread_area(struct user_desc __user *);
>
> -/* kernel/ioport.c */
> -asmlinkage long sys_iopl(unsigned int);
> -
> /* X86_32 only */
> #ifdef CONFIG_X86_32
> +/* kernel/ioport.c */
> +asmlinkage long sys_iopl(struct pt_regs *);
> +
> /* kernel/process_32.c */

This is the main ugliness that led me to pass up on this in the first
place. What it really comes down to is that on 32 bits we need the
analogue with what 64 bits have with different stubs for different
number of arguments.

-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/