Forráskód Böngészése

[PATCH] i386: Store the interrupt regs pointer in the PDA

Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Jeremy Fitzhardinge 18 éve
szülő
commit
70463daca8
2 módosított fájl, 28 hozzáadás és 1 törlés
  1. 27 1
      include/asm-i386/irq_regs.h
  2. 1 0
      include/asm-i386/pda.h

+ 27 - 1
include/asm-i386/irq_regs.h

@@ -1 +1,27 @@
-#include <asm-generic/irq_regs.h>
+/*
+ * Per-cpu current frame pointer - the location of the last exception frame on
+ * the stack, stored in the PDA.
+ *
+ * Jeremy Fitzhardinge <jeremy@goop.org>
+ */
+#ifndef _ASM_I386_IRQ_REGS_H
+#define _ASM_I386_IRQ_REGS_H
+
+#include <asm/pda.h>
+
+static inline struct pt_regs *get_irq_regs(void)
+{
+	return read_pda(irq_regs);
+}
+
+static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
+{
+	struct pt_regs *old_regs;
+
+	old_regs = read_pda(irq_regs);
+	write_pda(irq_regs, new_regs);
+
+	return old_regs;
+}
+
+#endif /* _ASM_I386_IRQ_REGS_H */

+ 1 - 0
include/asm-i386/pda.h

@@ -15,6 +15,7 @@ struct i386_pda
 
 	int cpu_number;
 	struct task_struct *pcurrent;	/* current process */
+	struct pt_regs *irq_regs;
 };
 
 extern struct i386_pda *_cpu_pda[];