Messages in this thread | | | Date | Wed, 9 Dec 2009 08:36:32 +0100 | From | Ingo Molnar <> | Subject | Re: [GIT PULL] x86/paravirt for v2.6.33 |
| |
* Linus Torvalds <torvalds@linux-foundation.org> wrote:
> On Thu, 3 Dec 2009, Ingo Molnar wrote: > > > > Please pull the latest x86-paravirt-for-linus git tree from: > > > > git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip.git x86-paravirt-for-linus > > I _really_ don't like this: > > > -long sys_iopl(struct pt_regs *regs) > > +asmlinkage long sys_iopl(unsigned int level) > > { > > - unsigned int level = regs->bx; > > struct thread_struct *t = ¤t->thread; > > + struct pt_regs *regs = task_pt_regs(current); > > I do _not_ want to add any more task_pt_regs() crap, please. > > Why? It's wrong for at least vm86 mode (and from kernel system calls). > Maybe we can't get into system calls from vm86 mode, and the kernel > hopefully doesn't do those things anyway, but the point is, you chose > the wrong way to go. > > The old version that actually passed the stack frame was better. Why > pick the inferior version?
Yeah, agreed. I missed that detail.
Jeremy, mind sending a patch that updates this code to use the less obfuscated 32-bit version, not the 64-bit version? (a delta patch against tip:master would be nice, as there's a fair amount of testing in the unification change itself already, which we dont want to discard.)
Thanks,
Ingo
| |