From: Jeff Dike <jdike@ka...> - 2002-09-11 10:56:24
> I wonder if anyone's noticed before that an out instruction hangs a
> process inside UML (and probably UML as well, since it gets infinite
UML isn't hung. The process can be be preempted as usual.
> The reason is that the fault address associated with the interrupt
> turns out to be valid, which is strange because when I do the same
> thing independently (execute 2 diff programs on the host, one for a
> mov instruction and one for out) the fault address for mov is finite
> and the one for out is 0.
The host isn't changing cr2, so what you see is what was there before the out.
> Right now I'm calling arch_fixup before handle_mm_fault, which
> actually parses the pertinent instruction, but that'd be horrible,
> even if the block is activated only with CONFIG_VIRTUAL_PORTMEM or
That's a bug. segv should return whether is managed to fix anything, and
arch_fixup should be called if it didn't.
Another thing you might try is setting the cr2 in the sigcontext. That
may be copied back into the real cr2 when the handler returns.
Get latest updates about Open Source Projects, Conferences and News.