aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@evo.osdl.org>2004-11-03 19:13:32 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-11-03 19:13:32 -0800
commit78e4291130ee7a68e75e74ac272abd7f8c93e913 (patch)
tree497ecb591101f2acee6c6763239248a69a9ab464 /kernel
parent0b3e8d290d0a3baa2577ef972231c71876ad2488 (diff)
downloadhistory-78e4291130ee7a68e75e74ac272abd7f8c93e913.tar.gz
x86: regparm calling convention for exceptions and interrupts.
This clarifies more of the x86 caller/callee stack ownership issues by making the exception and interrupt handler assembler interfaces use register calling conventions. System calls still use the stack. Tested with "crashme" on UP/SMP.
Diffstat (limited to 'kernel')
-rw-r--r--kernel/exit.c2
-rw-r--r--kernel/irq/handle.c4
2 files changed, 3 insertions, 3 deletions
diff --git a/kernel/exit.c b/kernel/exit.c
index eee2113dfbbbf9..a2e154dba2840b 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -780,7 +780,7 @@ static void exit_notify(struct task_struct *tsk)
tsk->flags |= PF_DEAD;
}
-asmlinkage NORET_TYPE void do_exit(long code)
+fastcall NORET_TYPE void do_exit(long code)
{
struct task_struct *tsk = current;
int group_dead;
diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
index 6f0ebc254e3e6c..ebc25823b73da9 100644
--- a/kernel/irq/handle.c
+++ b/kernel/irq/handle.c
@@ -86,7 +86,7 @@ void irq_exit(void)
/*
* Have got an event to handle:
*/
-asmlinkage int handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
+fastcall int handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
struct irqaction *action)
{
int ret, retval = 0, status = 0;
@@ -114,7 +114,7 @@ asmlinkage int handle_IRQ_event(unsigned int irq, struct pt_regs *regs,
* SMP cross-CPU interrupts have their own specific
* handlers).
*/
-asmlinkage unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
+fastcall unsigned int __do_IRQ(unsigned int irq, struct pt_regs *regs)
{
irq_desc_t *desc = irq_desc + irq;
struct irqaction * action;