Kernel: better handle kernel errors
This commit is contained in:
		
							parent
							
								
									e8a73f9696
								
							
						
					
					
						commit
						cbd2519b9a
					
				|  | @ -48,6 +48,11 @@ namespace BAN | |||
| 		{ | ||||
| 			return (Kernel::ErrorCode)(m_error_code & ~kernel_error_mask); | ||||
| 		} | ||||
| 
 | ||||
| 		bool is_kernel_error() const | ||||
| 		{ | ||||
| 			return m_error_code & kernel_error_mask; | ||||
| 		} | ||||
| #endif | ||||
| 
 | ||||
| 		uint64_t get_error_code() const { return m_error_code; } | ||||
|  |  | |||
|  | @ -186,6 +186,9 @@ namespace Kernel | |||
| 
 | ||||
| 		asm volatile("cli"); | ||||
| 
 | ||||
| 		if (ret.is_error() && ret.error().is_kernel_error()) | ||||
| 			Kernel::panic("Kernel error while returning to userspace {}", ret.error()); | ||||
| 
 | ||||
| 		ASSERT(Kernel::Thread::current().state() == Kernel::Thread::State::Executing); | ||||
| 		Thread::current().load_sse(); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue