{ int fault = handle_mm_fault(tsk, vma, address, write); if (fault < 0) goto out_of_memory; if (!fault) goto do_sigbus; } ... do_sigbus: up(&mm->mmap_sem); /* * Send a sigbus, regardless of whether we * were in kernel or user mode. */ tsk->thread.cr2 = address; tsk->thread.error_code = error_code; tsk->thread.trap_no = 14; force_sig(SIGBUS, tsk);