mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [RFC] handle_vm86_fault
@ 2002-05-22 13:16 Kasper Dupont
  0 siblings, 0 replies; only message in thread
From: Kasper Dupont @ 2002-05-22 13:16 UTC (permalink / raw)
  To: Linux-Kernel

Recently some changes were made to arch/i386/kernel/vm86.c in order to
prevent some Oopses. Currently handle_vm86_fault returns VM86_UNKNOWN
in those cases. But that is a little broken, rather than returning
this value, it should send a SIGSEGV to usermode.

That is however not trivial, there is a problem with the si_addr field
in the siginfo_t struct. The do_page_fault function in
arch/i386/mm/fault.c will fill this field in such a struct with the
local variable address. But that only happens if the trap comes from
usermode, in this case the trap comes from kernelmode. That means that
do_page_fault just finds the fixup address and returns loosing the
value of the local variable address.

How can I pass that variable back from do_page_fault to
handle_vm86_fault? There might also be a problem with the si_code
field, I'm not sure exactly from where I should get that value.
Perhaps it will turn out to be some known constant.

Would it be safe to fill the address in tsk->thread.cr2 like the
usermode case?

-- 
Kasper Dupont -- der bruger for meget tid på usenet.
For sending spam use mailto:razor-report@daimi.au.dk

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-05-22 13:16 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-22 13:16 [RFC] handle_vm86_fault Kasper Dupont

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®