aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/tipc/msg.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/net/tipc/msg.h b/net/tipc/msg.h
index aec7ce7af875..35d5ba1d4f42 100644
--- a/net/tipc/msg.h
+++ b/net/tipc/msg.h
@@ -1,8 +1,8 @@
1/* 1/*
2 * net/tipc/msg.h: Include file for TIPC message header routines 2 * net/tipc/msg.h: Include file for TIPC message header routines
3 * 3 *
4 * Copyright (c) 2000-2006, Ericsson AB 4 * Copyright (c) 2000-2007, Ericsson AB
5 * Copyright (c) 2005, Wind River Systems 5 * Copyright (c) 2005-2007, Wind River Systems
6 * All rights reserved. 6 * All rights reserved.
7 * 7 *
8 * Redistribution and use in source and binary forms, with or without 8 * Redistribution and use in source and binary forms, with or without
@@ -71,8 +71,11 @@ static inline void msg_set_word(struct tipc_msg *m, u32 w, u32 val)
71static inline void msg_set_bits(struct tipc_msg *m, u32 w, 71static inline void msg_set_bits(struct tipc_msg *m, u32 w,
72 u32 pos, u32 mask, u32 val) 72 u32 pos, u32 mask, u32 val)
73{ 73{
74 u32 word = msg_word(m,w) & ~(mask << pos); 74 val = (val & mask) << pos;
75 msg_set_word(m, w, (word |= (val << pos))); 75 val = htonl(val);
76 mask = htonl(mask << pos);
77 m->hdr[w] &= ~mask;
78 m->hdr[w] |= val;
76} 79}
77 80
78/* 81/*