Messages in this thread | | | Date | Wed, 09 Dec 2009 10:49:29 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [GIT PULL] x86/paravirt for v2.6.33 |
| |
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@citrix.com> > 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@citrix.com> > > 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
| |