diff options
| author | Dong Du <[email protected]> | 2021-08-13 20:33:00 +0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2021-08-20 09:42:39 +0530 |
| commit | 33eac764f22ba4d0a22980ff4f130eadb9502a2f (patch) | |
| tree | 1ea265a36f825a99fba884add09f572efd8afae7 | |
| parent | 7aa6c9aa96049b741b754b7340ea96a37719de27 (diff) | |
lib: sbi: Fix bug in sbi_ecall_rfence that misses checking
In sbi_ecall_rfence_handler, it will compare the funcid with
REMOTE_HFENCE_GVMA and REMOTE_HFENCE_VVMA_ASID. Later it check
whether the misa includes H-extension. This checking is incomplete
which misses REMOTE_HFENCE_GVMA_VMID and REMOTE_HFENCE_VVMA.
Fix the issue by updating the checking range.
Signed-off-by: Dong Du <[email protected]>
Reviewed-by: Atish Patra <[email protected]>
| -rw-r--r-- | lib/sbi/sbi_ecall_replace.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/sbi/sbi_ecall_replace.c b/lib/sbi/sbi_ecall_replace.c index a7935d97..5d24565a 100644 --- a/lib/sbi/sbi_ecall_replace.c +++ b/lib/sbi/sbi_ecall_replace.c @@ -54,8 +54,8 @@ static int sbi_ecall_rfence_handler(unsigned long extid, unsigned long funcid, struct sbi_tlb_info tlb_info; u32 source_hart = current_hartid(); - if (funcid >= SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA && - funcid <= SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA_ASID) + if (funcid >= SBI_EXT_RFENCE_REMOTE_HFENCE_GVMA_VMID && + funcid <= SBI_EXT_RFENCE_REMOTE_HFENCE_VVMA) if (!misa_extension('H')) return SBI_ENOTSUPP; |
