|
@@ -183,6 +183,16 @@ void fatal_sigsegv(void)
|
|
|
os_dump_core();
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * segv_handler() - the SIGSEGV handler
|
|
|
+ * @sig: the signal number
|
|
|
+ * @unused_si: the signal info struct; unused in this handler
|
|
|
+ * @regs: the ptrace register information
|
|
|
+ *
|
|
|
+ * The handler first extracts the faultinfo from the UML ptrace regs struct.
|
|
|
+ * If the userfault did not happen in an UML userspace process, bad_segv is called.
|
|
|
+ * Otherwise the signal did happen in a cloned userspace process, handle it.
|
|
|
+ */
|
|
|
void segv_handler(int sig, struct siginfo *unused_si, struct uml_pt_regs *regs)
|
|
|
{
|
|
|
struct faultinfo * fi = UPT_FAULTINFO(regs);
|