aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2009-03-23 12:55:08 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-03-27 01:58:23 -0400
commit82631f5dd114e52239fb3d1e270a49d37c088b46 (patch)
treec56dd87c9659864f5a3bc5068c0cb877c39bc705
parent757c74d298dc8438760b8dea275c4c6e0ac8a77f (diff)
powerpc: Add write barrier before enabling DTL flags
Currently, we don't enforce any ordering for updates to the lppaca when enabling dtl logging, so we may end up enabling logging before the index fields have been established. This change adds a smp_wmb() before doing the actual enable. Signed-off-by: Jeremy Kerr <jk@ozlabs.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r--arch/powerpc/platforms/pseries/dtl.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/powerpc/platforms/pseries/dtl.c b/arch/powerpc/platforms/pseries/dtl.c
index dc9b0f81e60f..fafcaa0e81ef 100644
--- a/arch/powerpc/platforms/pseries/dtl.c
+++ b/arch/powerpc/platforms/pseries/dtl.c
@@ -107,6 +107,10 @@ static int dtl_enable(struct dtl *dtl)
107 /* set our initial buffer indices */ 107 /* set our initial buffer indices */
108 dtl->last_idx = lppaca[dtl->cpu].dtl_idx = 0; 108 dtl->last_idx = lppaca[dtl->cpu].dtl_idx = 0;
109 109
110 /* ensure that our updates to the lppaca fields have occurred before
111 * we actually enable the logging */
112 smp_wmb();
113
110 /* enable event logging */ 114 /* enable event logging */
111 lppaca[dtl->cpu].dtl_enable_mask = dtl_event_mask; 115 lppaca[dtl->cpu].dtl_enable_mask = dtl_event_mask;
112 116