The new bitfield value must not be higher than its mask.

Signed-off-by: Codrin Ciubotariu <codrin.ciubota...@freescale.com>
---
 include/bitfield.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/bitfield.h b/include/bitfield.h
index cffaf7a..a59f3c2 100644
--- a/include/bitfield.h
+++ b/include/bitfield.h
@@ -60,7 +60,7 @@ static inline uint bitfield_replace(uint reg_val, uint shift, 
uint width,
 {
        uint mask = bitfield_mask(shift, width);
 
-       return (reg_val & ~mask) | (bitfield_val << shift);
+       return (reg_val & ~mask) | ((bitfield_val << shift) & mask);
 }
 
 /* Produces a shift of the bitfield given a mask */
-- 
1.9.3

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to