public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] i386/kernel/smp.c: don't use set_irq_regs()
@ 2006-12-03 18:16 Oleg Nesterov
  2006-12-04  9:48 ` Ingo Molnar
  2006-12-04 11:24 ` David Howells
  0 siblings, 2 replies; 3+ messages in thread
From: Oleg Nesterov @ 2006-12-03 18:16 UTC (permalink / raw)
  To: Andrew Morton; +Cc: David Howells, Ingo Molnar, linux-kernel

We don't need to setup _irq_regs in smp_xxx_interrupt (except apic timer).
These handlers run with irqs disabled and do not call functions which need
"struct pt_regs".

Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>

--- 19-rc6/arch/i386/kernel/smp.c~regs	2006-11-17 19:42:22.000000000 +0300
+++ 19-rc6/arch/i386/kernel/smp.c	2006-12-03 20:51:41.000000000 +0300
@@ -321,7 +321,6 @@ static inline void leave_mm (unsigned lo
 
 fastcall void smp_invalidate_interrupt(struct pt_regs *regs)
 {
-	struct pt_regs *old_regs = set_irq_regs(regs);
 	unsigned long cpu;
 
 	cpu = get_cpu();
@@ -352,7 +351,6 @@ fastcall void smp_invalidate_interrupt(s
 	smp_mb__after_clear_bit();
 out:
 	put_cpu_no_resched();
-	set_irq_regs(old_regs);
 }
 
 static void flush_tlb_others(cpumask_t cpumask, struct mm_struct *mm,
@@ -607,14 +605,11 @@ void smp_send_stop(void)
  */
 fastcall void smp_reschedule_interrupt(struct pt_regs *regs)
 {
-	struct pt_regs *old_regs = set_irq_regs(regs);
 	ack_APIC_irq();
-	set_irq_regs(old_regs);
 }
 
 fastcall void smp_call_function_interrupt(struct pt_regs *regs)
 {
-	struct pt_regs *old_regs = set_irq_regs(regs);
 	void (*func) (void *info) = call_data->func;
 	void *info = call_data->info;
 	int wait = call_data->wait;
@@ -637,7 +632,6 @@ fastcall void smp_call_function_interrup
 		mb();
 		atomic_inc(&call_data->finished);
 	}
-	set_irq_regs(old_regs);
 }
 
 /*


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-12-04 11:25 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-03 18:16 [PATCH] i386/kernel/smp.c: don't use set_irq_regs() Oleg Nesterov
2006-12-04  9:48 ` Ingo Molnar
2006-12-04 11:24 ` David Howells

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox