-
- if (addr != NULL &&
- *os_context_register_addr(context,reg_ALLOC) & (1L<<63)){
- /* this is lifted from linux-os.c, so violates OOAO */
- *os_context_register_addr(context,reg_ALLOC) -= (1L<<63);
- interrupt_handle_pending(context);
- } else if (!interrupt_maybe_gc(signal, info, context)) {
- if(!handle_guard_page_triggered(context,addr))
- interrupt_handle_now(signal, info, context);
+
+ if (addr != NULL &&
+ *os_context_register_addr(context,reg_ALLOC) & (1L<<63)){
+ /* this is lifted from linux-os.c, so violates OOAO */
+ *os_context_register_addr(context,reg_ALLOC) -= (1L<<63);
+ interrupt_handle_pending(context);
+ } else if (!cheneygc_handle_wp_violation(context, addr)) {
+ if(!handle_guard_page_triggered(context,addr))
+ lisp_memory_fault_error(context, addr);