All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] synchronize_irq needs a barrier
@ 2007-10-18  1:25 ` Benjamin Herrenschmidt
  0 siblings, 0 replies; 96+ messages in thread
From: Benjamin Herrenschmidt @ 2007-10-18  1:25 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linuxppc-dev list, akpm, Linux Kernel list

synchronize_irq needs at the very least a compiler barrier and a
read barrier on SMP, but there are enough cases around where a
write barrier is also needed and it's not a hot path so I prefer
using a full smp_mb() here.

It will degrade to a compiler barrier on !SMP.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
---

Index: linux-work/kernel/irq/manage.c
===================================================================
--- linux-work.orig/kernel/irq/manage.c	2007-10-18 11:22:16.000000000 +1000
+++ linux-work/kernel/irq/manage.c	2007-10-18 11:22:20.000000000 +1000
@@ -33,6 +33,7 @@ void synchronize_irq(unsigned int irq)
 	if (irq >= NR_IRQS)
 		return;
 
+	smp_mb();
 	while (desc->status & IRQ_INPROGRESS)
 		cpu_relax();
 }

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

end of thread, other threads:[~2007-10-23  3:27 UTC | newest]

Thread overview: 96+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-18  1:25 [PATCH] synchronize_irq needs a barrier Benjamin Herrenschmidt
2007-10-18  1:25 ` Benjamin Herrenschmidt
2007-10-18  1:45 ` Andrew Morton
2007-10-18  1:45   ` Andrew Morton
2007-10-18  1:55   ` Benjamin Herrenschmidt
2007-10-18  1:55     ` Benjamin Herrenschmidt
2007-10-18  2:12 ` Linus Torvalds
2007-10-18  2:12   ` Linus Torvalds
2007-10-18  2:40   ` Benjamin Herrenschmidt
2007-10-18  2:40     ` Benjamin Herrenschmidt
2007-10-18  2:57     ` Benjamin Herrenschmidt
2007-10-18  2:57       ` Benjamin Herrenschmidt
2007-10-18 14:56       ` Herbert Xu
2007-10-18 14:56         ` Herbert Xu
2007-10-18 22:05         ` Benjamin Herrenschmidt
2007-10-18 22:05           ` Benjamin Herrenschmidt
2007-10-18 22:52           ` Linus Torvalds
2007-10-18 22:52             ` Linus Torvalds
2007-10-18 23:17             ` Benjamin Herrenschmidt
2007-10-18 23:17               ` Benjamin Herrenschmidt
2007-10-18 23:39               ` Linus Torvalds
2007-10-18 23:39                 ` Linus Torvalds
2007-10-18 23:52                 ` Benjamin Herrenschmidt
2007-10-18 23:52                   ` Benjamin Herrenschmidt
2007-10-19  2:32                 ` Herbert Xu
2007-10-19  2:32                   ` Herbert Xu
2007-10-19  2:52                   ` Nick Piggin
2007-10-19  2:52                     ` Nick Piggin
2007-10-19  3:28                     ` Herbert Xu
2007-10-19  3:28                       ` Herbert Xu
2007-10-19  4:49                       ` Nick Piggin
2007-10-19  4:49                         ` Nick Piggin
2007-10-19  2:55                   ` Linus Torvalds
2007-10-19  2:55                     ` Linus Torvalds
2007-10-19  3:26                     ` Linus Torvalds
2007-10-19  3:26                       ` Linus Torvalds
2007-10-19  4:11                       ` Benjamin Herrenschmidt
2007-10-19  4:11                         ` Benjamin Herrenschmidt
2007-10-19  4:26                         ` Benjamin Herrenschmidt
2007-10-19  4:26                           ` Benjamin Herrenschmidt
2007-10-19  5:53                           ` Herbert Xu
2007-10-19  5:53                             ` Herbert Xu
2007-10-19  4:20                       ` Herbert Xu
2007-10-19  4:20                         ` Herbert Xu
2007-10-19  4:29                         ` Benjamin Herrenschmidt
2007-10-19  4:29                           ` Benjamin Herrenschmidt
2007-10-19  4:35                         ` Benjamin Herrenschmidt
2007-10-19  4:35                           ` Benjamin Herrenschmidt
2007-10-19  4:48                         ` Herbert Xu
2007-10-19  4:48                           ` Herbert Xu
2007-10-19  4:58                           ` Benjamin Herrenschmidt
2007-10-19  4:58                             ` Benjamin Herrenschmidt
2007-10-21 21:10                             ` Benjamin Herrenschmidt
2007-10-21 21:10                               ` Benjamin Herrenschmidt
2007-10-23  3:26                               ` [IRQ]: Fix synchronize_irq races with IRQ handler Herbert Xu
2007-10-23  3:26                                 ` Herbert Xu
2007-10-19  5:36                         ` [NET]: Fix possible dev_deactivate race condition Herbert Xu
2007-10-19  5:36                           ` Herbert Xu
2007-10-19  5:38                           ` David Miller
2007-10-19  5:38                             ` David Miller
2007-10-19  7:35                           ` Peter Zijlstra
2007-10-19  7:35                             ` Peter Zijlstra
2007-10-19  9:29                             ` Herbert Xu
2007-10-19  9:29                               ` Herbert Xu
2007-10-18 14:35     ` [PATCH] synchronize_irq needs a barrier Herbert Xu
2007-10-18 14:35       ` Herbert Xu
2007-10-18 21:35       ` Benjamin Herrenschmidt
2007-10-18 21:35         ` Benjamin Herrenschmidt
2007-10-20  2:02 ` Maxim Levitsky
2007-10-20  2:02   ` Maxim Levitsky
2007-10-20  2:25   ` Linus Torvalds
2007-10-20  2:25     ` Linus Torvalds
2007-10-20  3:10     ` Maxim Levitsky
2007-10-20  3:10       ` Maxim Levitsky
2007-10-20  4:06       ` Benjamin Herrenschmidt
2007-10-20  4:06         ` Benjamin Herrenschmidt
2007-10-20  4:04     ` Benjamin Herrenschmidt
2007-10-20  4:04       ` Benjamin Herrenschmidt
2007-10-20  4:09       ` Benjamin Herrenschmidt
2007-10-20  4:09         ` Benjamin Herrenschmidt
2007-10-20  3:37   ` Herbert Xu
2007-10-20  3:37     ` Herbert Xu
2007-10-20  3:56   ` Benjamin Herrenschmidt
2007-10-20  3:56     ` Benjamin Herrenschmidt
2007-10-20  4:24     ` Maxim Levitsky
2007-10-20  4:24       ` Maxim Levitsky
2007-10-20  5:04       ` Benjamin Herrenschmidt
2007-10-20  5:04         ` Benjamin Herrenschmidt
2007-10-20  5:36         ` Maxim Levitsky
2007-10-20  5:36           ` Maxim Levitsky
2007-10-20  5:46           ` Benjamin Herrenschmidt
2007-10-20  5:46             ` Benjamin Herrenschmidt
2007-10-20  6:06             ` Maxim Levitsky
2007-10-20  6:06               ` Maxim Levitsky
2007-10-20  6:13               ` Benjamin Herrenschmidt
2007-10-20  6:13                 ` Benjamin Herrenschmidt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.