forked from Mirrors/opensbi
lib: sbi: simplify pmp_set(), pmp_get()
pmpcfg_csr and pmpcfg_shift are only negative for an unexpected value of __riscv_xlen. We can immediately return in this case. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com> Reviewed-by: Dong Du <Dd_nirvana@sjtu.edu.cn> Reviewed-by: Anup Patel <anup.patel@wdc.com>
This commit is contained in:

committed by
Anup Patel

parent
f270359810
commit
2082153fc9
@@ -261,12 +261,9 @@ int pmp_set(unsigned int n, unsigned long prot, unsigned long addr,
|
|||||||
pmpcfg_csr = (CSR_PMPCFG0 + (n >> 2)) & ~1;
|
pmpcfg_csr = (CSR_PMPCFG0 + (n >> 2)) & ~1;
|
||||||
pmpcfg_shift = (n & 7) << 3;
|
pmpcfg_shift = (n & 7) << 3;
|
||||||
#else
|
#else
|
||||||
pmpcfg_csr = -1;
|
return SBI_ENOTSUPP;
|
||||||
pmpcfg_shift = -1;
|
|
||||||
#endif
|
#endif
|
||||||
pmpaddr_csr = CSR_PMPADDR0 + n;
|
pmpaddr_csr = CSR_PMPADDR0 + n;
|
||||||
if (pmpcfg_csr < 0 || pmpcfg_shift < 0)
|
|
||||||
return SBI_ENOTSUPP;
|
|
||||||
|
|
||||||
/* encode PMP config */
|
/* encode PMP config */
|
||||||
prot &= ~PMP_A;
|
prot &= ~PMP_A;
|
||||||
@@ -315,12 +312,9 @@ int pmp_get(unsigned int n, unsigned long *prot_out, unsigned long *addr_out,
|
|||||||
pmpcfg_csr = (CSR_PMPCFG0 + (n >> 2)) & ~1;
|
pmpcfg_csr = (CSR_PMPCFG0 + (n >> 2)) & ~1;
|
||||||
pmpcfg_shift = (n & 7) << 3;
|
pmpcfg_shift = (n & 7) << 3;
|
||||||
#else
|
#else
|
||||||
pmpcfg_csr = -1;
|
return SBI_ENOTSUPP;
|
||||||
pmpcfg_shift = -1;
|
|
||||||
#endif
|
#endif
|
||||||
pmpaddr_csr = CSR_PMPADDR0 + n;
|
pmpaddr_csr = CSR_PMPADDR0 + n;
|
||||||
if (pmpcfg_csr < 0 || pmpcfg_shift < 0)
|
|
||||||
return SBI_ENOTSUPP;
|
|
||||||
|
|
||||||
/* decode PMP config */
|
/* decode PMP config */
|
||||||
cfgmask = (0xffUL << pmpcfg_shift);
|
cfgmask = (0xffUL << pmpcfg_shift);
|
||||||
|
Reference in New Issue
Block a user