diff options
author | Linus Torvalds <torvalds@evo.osdl.org> | 2004-11-03 19:13:32 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-11-03 19:13:32 -0800 |
commit | 78e4291130ee7a68e75e74ac272abd7f8c93e913 (patch) | |
tree | 497ecb591101f2acee6c6763239248a69a9ab464 /kernel | |
parent | 0b3e8d290d0a3baa2577ef972231c71876ad2488 (diff) | |
download | history-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.c | 2 | ||||
-rw-r--r-- | kernel/irq/handle.c | 4 |
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; |