diff options
author | Robin Holt <holt@sgi.com> | 2009-01-29 17:25:06 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-29 21:04:42 -0500 |
commit | 69b3bb65fa97a1e8563518dbbc35cd57beefb2d4 (patch) | |
tree | b8ca162f1a6ed85b85d8e406a3e9588ed0786144 /drivers/misc/sgi-xp/xpc_uv.c | |
parent | de33c8db5910cda599899dd431cc30d7c1018cbf (diff) |
sgi-xpc: ensure flags are updated before bte_copy
The clearing of the msg->flags needs a barrier between it and the notify
of the channel threads that the messages are cleaned and ready for use.
Signed-off-by: Robin Holt <holt@sgi.com>
Signed-off-by: Dean Nelson <dcn@sgi.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/misc/sgi-xp/xpc_uv.c')
-rw-r--r-- | drivers/misc/sgi-xp/xpc_uv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/sgi-xp/xpc_uv.c b/drivers/misc/sgi-xp/xpc_uv.c index 91a55b1b1037..f17f7d40ea2c 100644 --- a/drivers/misc/sgi-xp/xpc_uv.c +++ b/drivers/misc/sgi-xp/xpc_uv.c | |||
@@ -1423,7 +1423,7 @@ xpc_send_payload_uv(struct xpc_channel *ch, u32 flags, void *payload, | |||
1423 | atomic_inc(&ch->n_to_notify); | 1423 | atomic_inc(&ch->n_to_notify); |
1424 | 1424 | ||
1425 | msg_slot->key = key; | 1425 | msg_slot->key = key; |
1426 | wmb(); /* a non-NULL func must hit memory after the key */ | 1426 | smp_wmb(); /* a non-NULL func must hit memory after the key */ |
1427 | msg_slot->func = func; | 1427 | msg_slot->func = func; |
1428 | 1428 | ||
1429 | if (ch->flags & XPC_C_DISCONNECTING) { | 1429 | if (ch->flags & XPC_C_DISCONNECTING) { |