nb/intel/gm45: Guard `CxDRBy_BOUND_SHIFT` macro parameters
Wrap `r` in parentheses to avoid unexpected behavior with compound expressions. This prevents `CxDRBy_BOUND_MB(r+1, base)` from triggering undefined behavior when `r = 2`, as the shift would be greater than 32. Change-Id: I14235b2708ab502d842da677451c14203a469b45 Signed-off-by: Angel Pons <th3fanbus@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/49261 Reviewed-by: Nico Huber <nico.h@gmx.de> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
af03936679
commit
08ba81b6e4
|
@ -274,7 +274,7 @@ enum {
|
||||||
* All registers (4 ranks per channel) have to be set.
|
* All registers (4 ranks per channel) have to be set.
|
||||||
*/
|
*/
|
||||||
#define CxDRBy_MCHBAR(x, r) (0x1200 + (x * 0x0100) + ((r / 2) * 4))
|
#define CxDRBy_MCHBAR(x, r) (0x1200 + (x * 0x0100) + ((r / 2) * 4))
|
||||||
#define CxDRBy_BOUND_SHIFT(r) ((r % 2) * 16)
|
#define CxDRBy_BOUND_SHIFT(r) (((r) % 2) * 16)
|
||||||
#define CxDRBy_BOUND_MASK(r) (0x1fc << CxDRBy_BOUND_SHIFT(r))
|
#define CxDRBy_BOUND_MASK(r) (0x1fc << CxDRBy_BOUND_SHIFT(r))
|
||||||
#define CxDRBy_BOUND_MB(r, b) /* for boundary in MB b */ \
|
#define CxDRBy_BOUND_MB(r, b) /* for boundary in MB b */ \
|
||||||
(((b >> 5) << CxDRBy_BOUND_SHIFT(r)) & CxDRBy_BOUND_MASK(r))
|
(((b >> 5) << CxDRBy_BOUND_SHIFT(r)) & CxDRBy_BOUND_MASK(r))
|
||||||
|
|
Loading…
Reference in New Issue