From 74e20293c45634048d2a3ab045e8531bca904818 Mon Sep 17 00:00:00 2001 From: Xiang W Date: Thu, 24 Nov 2022 11:16:03 +0800 Subject: [PATCH] lib: sbi: Simplified mmio match checking We simplify the mmio flag matching in sbi_domain_check_addr(). Signed-off-by: Xiang W Reviewed-by: Anup Patel --- lib/sbi/sbi_domain.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/sbi/sbi_domain.c b/lib/sbi/sbi_domain.c index f24a8e5e..fec90742 100644 --- a/lib/sbi/sbi_domain.c +++ b/lib/sbi/sbi_domain.c @@ -105,7 +105,7 @@ bool sbi_domain_check_addr(const struct sbi_domain *dom, unsigned long addr, unsigned long mode, unsigned long access_flags) { - bool mmio = FALSE; + bool rmmio, mmio = FALSE; struct sbi_domain_memregion *reg; unsigned long rstart, rend, rflags, rwx = 0; @@ -130,8 +130,8 @@ bool sbi_domain_check_addr(const struct sbi_domain *dom, rend = (reg->order < __riscv_xlen) ? rstart + ((1UL << reg->order) - 1) : -1UL; if (rstart <= addr && addr <= rend) { - if ((mmio && !(rflags & SBI_DOMAIN_MEMREGION_MMIO)) || - (!mmio && (rflags & SBI_DOMAIN_MEMREGION_MMIO))) + rmmio = (rflags & SBI_DOMAIN_MEMREGION_MMIO) ? TRUE : FALSE; + if (mmio != rmmio) return FALSE; return ((rflags & rwx) == rwx) ? TRUE : FALSE; }