Skip to content

Commit

Permalink
x86: merge irq_regs.h
Browse files Browse the repository at this point in the history
Impact: cleanup, better irq_regs code generation for x86_64

Make 64-bit use the same optimizations as 32-bit.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
  • Loading branch information
Brian Gerst authored and Tejun Heo committed Jan 21, 2009
1 parent 6826c8f commit d650a51
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 37 deletions.
36 changes: 31 additions & 5 deletions arch/x86/include/asm/irq_regs.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,31 @@
#ifdef CONFIG_X86_32
# include "irq_regs_32.h"
#else
# include "irq_regs_64.h"
#endif
/*
* Per-cpu current frame pointer - the location of the last exception frame on
* the stack, stored in the per-cpu area.
*
* Jeremy Fitzhardinge <jeremy@goop.org>
*/
#ifndef _ASM_X86_IRQ_REGS_H
#define _ASM_X86_IRQ_REGS_H

#include <asm/percpu.h>

#define ARCH_HAS_OWN_IRQ_REGS

DECLARE_PER_CPU(struct pt_regs *, irq_regs);

static inline struct pt_regs *get_irq_regs(void)
{
return percpu_read(irq_regs);
}

static inline struct pt_regs *set_irq_regs(struct pt_regs *new_regs)
{
struct pt_regs *old_regs;

old_regs = get_irq_regs();
percpu_write(irq_regs, new_regs);

return old_regs;
}

#endif /* _ASM_X86_IRQ_REGS_32_H */
31 changes: 0 additions & 31 deletions arch/x86/include/asm/irq_regs_32.h

This file was deleted.

1 change: 0 additions & 1 deletion arch/x86/include/asm/irq_regs_64.h

This file was deleted.

3 changes: 3 additions & 0 deletions arch/x86/kernel/irq_64.c
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
DEFINE_PER_CPU_SHARED_ALIGNED(irq_cpustat_t, irq_stat);
EXPORT_PER_CPU_SYMBOL(irq_stat);

DEFINE_PER_CPU(struct pt_regs *, irq_regs);
EXPORT_PER_CPU_SYMBOL(irq_regs);

/*
* Probabilistic stack overflow check:
*
Expand Down

0 comments on commit d650a51

Please sign in to comment.