Use of the PC value in interrupt/exception handlers

Piyus Kedia <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <CAFqkpAZ0t0xhfsXsgMOOhwjjp7BPfV-OfP=MswD8jesbYxT=og@mail.gmail.com>
Dear all,

We are working on developing a dynamic binary translator for the kernel.
Towards this, we wanted to confirm if the interrupted PC value pushed on
stack by an interrupt/exception is used by the interrupt/exception
handlers? For example, is the PC value compared against a fixed address to
determine the handler behaviour (like Linux's page fault handler compares
the faulting PC against an exception table, to allow functions like
copy_from_user to fault).

Basically, we are wondering if it is safe to replace the pushed PC value on
stack by another value. This would be safe if the PC value is only used for
returning from interrupt, or for reading contents at that PC address (e.g.,
to decode the instruction at current PC). It would be unsafe if the value
of the address itself is meaningful to the handler.

We found that in FreeBSD segment-not-present exception handler checks the
trapped PC value against some fixed kernel PC by looking at the code,
except that it is only used for debugging purposes. It would be nice if
somebody could also confirm this.

Thanks,
Piyus

_______________________________________________
l4-hackers mailing list
[email protected]
http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.