diff options
author | Atish Patra <atish.patra@wdc.com> | 2019-08-22 00:51:49 -0700 |
---|---|---|
committer | Paul Walmsley <paul.walmsley@sifive.com> | 2019-10-29 11:32:18 -0700 |
commit | 6384423f49c804dbca02add1945e0ccf922cb522 (patch) | |
tree | 11deafffd128f5270f4e28b5ff6726982b3438d6 /arch/riscv | |
parent | 00a5bf3a8ca30d19f24219fc3cfb74f4eab3600d (diff) | |
download | linux-6384423f49c804dbca02add1945e0ccf922cb522.tar.gz linux-6384423f49c804dbca02add1945e0ccf922cb522.tar.bz2 linux-6384423f49c804dbca02add1945e0ccf922cb522.zip |
RISC-V: Do not invoke SBI call if cpumask is empty
SBI calls are expensive. If cpumask is empty, there is no need to
trap via SBI as no remote tlb flushing is required.
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Paul Walmsley <paul.walmsley@sifive.com>
Diffstat (limited to 'arch/riscv')
-rw-r--r-- | arch/riscv/mm/tlbflush.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c index 24cd33d2c48f..9ecaf73cd051 100644 --- a/arch/riscv/mm/tlbflush.c +++ b/arch/riscv/mm/tlbflush.c @@ -14,6 +14,9 @@ static void __sbi_tlb_flush_range(struct cpumask *cmask, unsigned long start, { struct cpumask hmask; + if (cpumask_empty(cmask)) + return; + riscv_cpuid_to_hartid_mask(cmask, &hmask); sbi_remote_sfence_vma(hmask.bits, start, size); } |