SDOCM00114518 MessageQ_setMsgPri overwrites entire flags field
authorRamsey Harris <ramsey@ti.com>
Thu, 15 Jan 2015 22:52:01 +0000 (14:52 -0800)
committerRobert Tivy <rtivy@ti.com>
Sat, 17 Jan 2015 01:06:57 +0000 (17:06 -0800)
The macro was simply assigning the new message priority to the
flags field in the message header. Fixed macro to read, clear,
then update only the priority bits of the flags field ([1:0]).

packages/ti/ipc/MessageQ.h

index 0ab7de5904f23ecdb4f47d6926079ce6a53f18f6..feb0d9890e4043a9878dc7e7191bdb15b1f32523 100644 (file)
@@ -398,7 +398,9 @@ extern "C" {
  *  @param[in]   priority Priority of message to be set.
  */
 #define MessageQ_setMsgPri(msg, priority) \
-        (((MessageQ_Msg) (msg))->flags = ((priority) & MessageQ_PRIORITYMASK))
+        ((MessageQ_Msg)(msg))->flags = \
+        (((MessageQ_Msg)(msg))->flags & ~(MessageQ_PRIORITYMASK)) \
+        | ((priority) & MessageQ_PRIORITYMASK)
 
 /*!
  *  @brief   Set the transport Id for the given message