lkml.org 
[lkml]   [2009]   [Dec]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [GIT PULL] x86/paravirt for v2.6.33
On 12/08/09 13:34, Linus Torvalds wrote:
> 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).
>

Would the stack frame version work in these cases?

> 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.
>

iopl doesn't make much sense as a kernel-called syscall, unless the
caller is intending to change the usermode iopl. In which case, won't
task_pt_regs() do the right thing - by pointing to the saved usermode
register set - vs modifying the ptregs the caller may pass in?

iopl is also one of the special set of syscalls which get special
handing in entry_*.S, so I don't think doing a direct call from within
the kernel is ever sensible, and it should always be possible to make
task_pt_regs return meaningful results.

I agree with you that vm86 would be a problem if its possible to call iopl.

> The old version that actually passed the stack frame was better. Why pick
> the inferior version?
>

Mainly because it exposes the difference between the 32 and 64-bit ABIs,
requiring separate code for each case; it seemed like an opportunity to
remove the differences.

Anyway, I'll post a patch to revert to the pt_regs-based version shortly.

J


\
 
 \ /
  Last update: 2009-12-09 19:21    [W:0.058 / U:1.244 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site