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

From: Jeremy Fitzhardinge
Date: Wed Dec 09 2009 - 13:18:49 EST


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