[rtems commit] score: Fix _Processor_mask_To_uint32_t()

Sebastian Huber sebh at rtems.org
Thu Dec 22 06:49:24 UTC 2022


Module:    rtems
Branch:    master
Commit:    f169b513d2830d14dfff85ca17cc59d4c438ddd1
Changeset: http://git.rtems.org/rtems/commit/?id=f169b513d2830d14dfff85ca17cc59d4c438ddd1

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Tue Dec 20 15:11:25 2022 +0100

score: Fix _Processor_mask_To_uint32_t()

Correctly calculate the array index and shift value in
_Processor_mask_To_uint32_t().  The bugs had no impact yet since this
function was always called with a zero value for the index in RTEMS.

---

 cpukit/include/rtems/score/processormask.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/cpukit/include/rtems/score/processormask.h b/cpukit/include/rtems/score/processormask.h
index bcdc1c471e..7ad6ea6edb 100644
--- a/cpukit/include/rtems/score/processormask.h
+++ b/cpukit/include/rtems/score/processormask.h
@@ -353,9 +353,9 @@ static inline uint32_t _Processor_mask_To_uint32_t(
   uint32_t              index
 )
 {
-  long bits = mask->__bits[ __bitset_words( index ) ];
+  long bits = mask->__bits[ index / _BITSET_BITS ];
 
-  return (uint32_t) (bits >> (32 * (index % _BITSET_BITS) / 32));
+  return (uint32_t) ( bits >> ( 32 * ( ( index % _BITSET_BITS ) / 32 ) ) );
 }
 
 /**



More information about the vc mailing list