summaryrefslogtreecommitdiff
path: root/sys/lockdoc/log.c
diff options
context:
space:
mode:
authorMerlin Scholz <merlin@scholz.ruhr>2022-11-02 22:37:45 +0100
committerMerlin Scholz <merlin@scholz.ruhr>2022-11-02 22:37:45 +0100
commit581e25b0c29a3c4db7a4118648c2c9fd19847258 (patch)
tree8f60e83265250b0b41104a09752cf4111f2b72da /sys/lockdoc/log.c
parent7d220542031ae9eb6fea95057b9b9200f7988d77 (diff)
Decouple LOCKDEBUG and LOCKDOC kernel flags
Diffstat (limited to 'sys/lockdoc/log.c')
-rw-r--r--sys/lockdoc/log.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/lockdoc/log.c b/sys/lockdoc/log.c
index 25c64b9c036..28c99ad8bdf 100644
--- a/sys/lockdoc/log.c
+++ b/sys/lockdoc/log.c
@@ -53,6 +53,10 @@ void __x86_disable_intr(const char *file, int line, const char *func){
lockdoc_x86_disable_intr();
}
+void lockdoc_x86_disable_intr(void){
+ __asm volatile ("cli" ::: "memory");
+}
+
void __x86_enable_intr(const char *file, int line, const char *func){
u_long eflags;
@@ -60,7 +64,10 @@ void __x86_enable_intr(const char *file, int line, const char *func){
if (!(eflags & (1 << 9))){ // Check if interrupts were disabled in the first place
log_lock(V_WRITE, (void*)PSEUDOLOCK_ADDR_HARDIRQ, file, line, LOCK_NONE);
}
- lockdoc_x86_disable_intr();
+ lockdoc_x86_enable_intr();
}
+void lockdoc_x86_enable_intr(void){
+ __asm volatile ("sti" ::: "memory");
+}
#endif /* LOCKDOC */ \ No newline at end of file