浏览代码

traps: x86_64: add TRACE_IRQS_OFF in paranoidentry macro

Add TRACE_IRQS_OFF just before entering the C code.

All exceptions are taken via interrupt gates. If irq tracing is
enabled, it should be notified as soon as possible. Interrupts
are only (conditionally) re-enabled in C code.

Signed-off-by: Alexander van Heukelum <heukelum@fastmail.fm>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Alexander van Heukelum 16 年之前
父节点
当前提交
7e61a79324
共有 1 个文件被更改,包括 3 次插入0 次删除
  1. 3 0
      arch/x86/kernel/entry_64.S

+ 3 - 0
arch/x86/kernel/entry_64.S

@@ -939,6 +939,9 @@ END(spurious_interrupt)
 	.if \ist
 	.if \ist
 	movq	%gs:pda_data_offset, %rbp
 	movq	%gs:pda_data_offset, %rbp
 	.endif
 	.endif
+	.if \irqtrace
+	TRACE_IRQS_OFF
+	.endif
 	movq %rsp,%rdi
 	movq %rsp,%rdi
 	movq ORIG_RAX(%rsp),%rsi
 	movq ORIG_RAX(%rsp),%rsi
 	movq $-1,ORIG_RAX(%rsp)
 	movq $-1,ORIG_RAX(%rsp)