diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/sbi/sbi_domain.h | 6 | ||||
| -rw-r--r-- | include/sbi/sbi_ecall_interface.h | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/include/sbi/sbi_domain.h b/include/sbi/sbi_domain.h index c8a6da9..16edd4c 100644 --- a/include/sbi/sbi_domain.h +++ b/include/sbi/sbi_domain.h @@ -170,9 +170,11 @@ static inline bool sbi_domain_memregion_is_subset( const struct sbi_domain_memregion *regB) { ulong regA_start = regA->base; - ulong regA_end = regA->base + (BIT(regA->order) - 1); + ulong regA_mask = (regA->order >= __riscv_xlen) ? ~0UL : (BIT(regA->order) - 1); + ulong regA_end = regA_start + regA_mask; ulong regB_start = regB->base; - ulong regB_end = regB->base + (BIT(regB->order) - 1); + ulong regB_mask = (regB->order >= __riscv_xlen) ? ~0UL : (BIT(regB->order) - 1); + ulong regB_end = regB_start + regB_mask; if ((regB_start <= regA_start) && (regA_start < regB_end) && diff --git a/include/sbi/sbi_ecall_interface.h b/include/sbi/sbi_ecall_interface.h index 76624e3..9a776f7 100644 --- a/include/sbi/sbi_ecall_interface.h +++ b/include/sbi/sbi_ecall_interface.h @@ -144,7 +144,7 @@ enum sbi_fwft_feature_t { SBI_FWFT_GLOBAL_PLATFORM_END = 0xffffffff, }; -#define SBI_FWFT_GLOBAL_FEATURE_BIT (1 << 31) +#define SBI_FWFT_GLOBAL_FEATURE_BIT (1UL << 31) #define SBI_FWFT_PLATFORM_FEATURE_BIT (1 << 30) #define SBI_FWFT_SET_FLAG_LOCK (1 << 0) |
