소스 검색

fix critial section implementation

tfx2001 2 년 전
부모
커밋
5dafe25f78
2개의 변경된 파일5개의 추가작업 그리고 1개의 파일을 삭제
  1. 4 0
      CHANGELOG.md
  2. 1 1
      src/critical_section.rs

+ 4 - 0
CHANGELOG.md

@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
 
 ## [Unreleased]
 
+### Fixed
+
+- Fix implementation for `SingleHartCriticalSection`
+
 ## [v0.10.0] - 2022-11-09
 
 ### Added

+ 1 - 1
src/critical_section.rs

@@ -9,7 +9,7 @@ set_impl!(SingleHartCriticalSection);
 unsafe impl Impl for SingleHartCriticalSection {
     unsafe fn acquire() -> RawRestoreState {
         let mut mstatus: usize;
-        core::arch::asm!("csrrci {}, 0x300, 0b100", out(reg) mstatus);
+        core::arch::asm!("csrrci {}, mstatus, 0b1000", out(reg) mstatus);
         core::mem::transmute::<_, mstatus::Mstatus>(mstatus).mie()
     }