aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/lib/NGbzero.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2007-03-19 16:27:33 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-03-19 16:27:33 -0400
commit24d559cac4d741d60ec85e927974408020a2f060 (patch)
treee01419724e2da6c817d525756e92d584d41c03eb /arch/sparc64/lib/NGbzero.S
parent5851fadce8824d5d4b8fd02c22ae098401f6489e (diff)
[SPARC64]: store-init needs trailing membar.
The manual says that it is required and we actually have crash reports where loads see stale data due to not having membars here. In one case the networking does: memset(skb, 0, offsetof(struct sk_buff, truesize)); and then some code later checks skb->nohdr for zero, but it's still the value that was there before the memset(). Note that arch/sparc64/lib/xor.S already got this right. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64/lib/NGbzero.S')
-rw-r--r--arch/sparc64/lib/NGbzero.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/sparc64/lib/NGbzero.S b/arch/sparc64/lib/NGbzero.S
index e86baece5cc8..f10e4529ee37 100644
--- a/arch/sparc64/lib/NGbzero.S
+++ b/arch/sparc64/lib/NGbzero.S
@@ -88,6 +88,7 @@ NGbzero_loop:
88 bne,pt %xcc, NGbzero_loop 88 bne,pt %xcc, NGbzero_loop
89 add %o0, 64, %o0 89 add %o0, 64, %o0
90 90
91 membar #Sync
91 wr %o4, 0x0, %asi 92 wr %o4, 0x0, %asi
92 brz,pn %o1, NGbzero_done 93 brz,pn %o1, NGbzero_done
93NGbzero_medium: 94NGbzero_medium: