diff options
-rw-r--r-- | arch/x86_64/kernel/entry.S | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index 4fcc0ad8bbeb..ea32688386fd 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S | |||
@@ -519,7 +519,12 @@ END(stub_rt_sigreturn) | |||
519 | testl $3,CS(%rdi) | 519 | testl $3,CS(%rdi) |
520 | je 1f | 520 | je 1f |
521 | swapgs | 521 | swapgs |
522 | 1: incl %gs:pda_irqcount # RED-PEN should check preempt count | 522 | /* irqcount is used to check if a CPU is already on an interrupt |
523 | stack or not. While this is essentially redundant with preempt_count | ||
524 | it is a little cheaper to use a separate counter in the PDA | ||
525 | (short of moving irq_enter into assembly, which would be too | ||
526 | much work) */ | ||
527 | 1: incl %gs:pda_irqcount | ||
523 | cmoveq %gs:pda_irqstackptr,%rsp | 528 | cmoveq %gs:pda_irqstackptr,%rsp |
524 | push %rbp # backlink for old unwinder | 529 | push %rbp # backlink for old unwinder |
525 | /* | 530 | /* |