diff --git a/lib.rs b/lib.rs index e9eec634ad2fd974e912819e7d8655e77cf3926a..0bc1c0ef528246d0f4bce6fcaf341464432d8469 100644 --- a/lib.rs +++ b/lib.rs @@ -162,7 +162,7 @@ pub extern fn kmain() { unsafe { interrupt::disable(); context::switch(); - interrupt::enable_and_halt(); + interrupt::enable_and_nop(); } } } diff --git a/scheme/user.rs b/scheme/user.rs index 7604b0fd70c9ac510cdbfa3ffcec1745060d3f6f..ba8fd959f6d04f6dd9798668476ef1812922866f 100644 --- a/scheme/user.rs +++ b/scheme/user.rs @@ -81,7 +81,7 @@ impl UserInner { let full_size = ((offset + size + 4095)/4096) * 4096; let mut to_address = arch::USER_GRANT_OFFSET; - let mut flags = entry::PRESENT | entry::NO_EXECUTE; + let mut flags = entry::PRESENT | entry::NO_EXECUTE | entry::USER_ACCESSIBLE; if writable { flags |= entry::WRITABLE; }