aboutsummaryrefslogtreecommitdiffstats
path: root/arch/i386
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386')
-rw-r--r--arch/i386/kernel/entry.S4
-rw-r--r--arch/i386/kernel/irq.c4
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S
index e6e4506e749a..8713e0248a0b 100644
--- a/arch/i386/kernel/entry.S
+++ b/arch/i386/kernel/entry.S
@@ -515,7 +515,7 @@ ENTRY(irq_entries_start)
515 .if vector 515 .if vector
516 CFI_ADJUST_CFA_OFFSET -4 516 CFI_ADJUST_CFA_OFFSET -4
517 .endif 517 .endif
5181: pushl $vector-256 5181: pushl $~(vector)
519 CFI_ADJUST_CFA_OFFSET 4 519 CFI_ADJUST_CFA_OFFSET 4
520 jmp common_interrupt 520 jmp common_interrupt
521.data 521.data
@@ -535,7 +535,7 @@ common_interrupt:
535#define BUILD_INTERRUPT(name, nr) \ 535#define BUILD_INTERRUPT(name, nr) \
536ENTRY(name) \ 536ENTRY(name) \
537 RING0_INT_FRAME; \ 537 RING0_INT_FRAME; \
538 pushl $nr-256; \ 538 pushl $~(nr); \
539 CFI_ADJUST_CFA_OFFSET 4; \ 539 CFI_ADJUST_CFA_OFFSET 4; \
540 SAVE_ALL; \ 540 SAVE_ALL; \
541 movl %esp,%eax; \ 541 movl %esp,%eax; \
diff --git a/arch/i386/kernel/irq.c b/arch/i386/kernel/irq.c
index 061533e0cb5e..586b15f6741f 100644
--- a/arch/i386/kernel/irq.c
+++ b/arch/i386/kernel/irq.c
@@ -53,8 +53,8 @@ static union irq_ctx *softirq_ctx[NR_CPUS] __read_mostly;
53 */ 53 */
54fastcall unsigned int do_IRQ(struct pt_regs *regs) 54fastcall unsigned int do_IRQ(struct pt_regs *regs)
55{ 55{
56 /* high bits used in ret_from_ code */ 56 /* high bit used in ret_from_ code */
57 int irq = regs->orig_eax & 0xff; 57 int irq = ~regs->orig_eax;
58#ifdef CONFIG_4KSTACKS 58#ifdef CONFIG_4KSTACKS
59 union irq_ctx *curctx, *irqctx; 59 union irq_ctx *curctx, *irqctx;
60 u32 *isp; 60 u32 *isp;