diff options
author | Liush <liush.damon@gmail.com> | 2020-06-19 06:55:19 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2020-06-20 06:17:11 +0300 |
commit | 9bd5f8f17d31f8989525643a04da87d090fe3033 (patch) | |
tree | 1b5fd5df76e41be87991fbefdbda4d8f42796f12 /include/sbi | |
parent | db56ef367cd6dc9dab94076f4c8a3fa9d91bd1f2 (diff) | |
download | opensbi-9bd5f8f17d31f8989525643a04da87d090fe3033.tar.xz |
lib: sbi: Fix 32/64 bits variable compatibility
On RV64,"unsigned long" is 64bit and "unsigned int" is 32bit. So in
function "pmp_get" and "pmp_set", if "pmpcfg_shift >= 32", "0xff << pmpcfg_shift"
will go beyond "unsigned int" width. This patch tries to fix this issue.
In function 'pmp_get':
cfgmask = (0xff << pmpcfg_shift);
-->
cfgmask = (0xffUL << pmpcfg_shift);
In function 'pmp_set':
cfgmask = ~(0xff << pmpcfg_shift);
-->
cfgmask = ~(0xffUL << pmpcfg_shift);
Signed-off-by: Liush <liush.damon@gmail.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
Diffstat (limited to 'include/sbi')
0 files changed, 0 insertions, 0 deletions