summaryrefslogtreecommitdiffstats
path: root/arch/riscv
diff options
context:
space:
mode:
authorAtish Patra <atish.patra@wdc.com>2019-08-22 09:51:49 +0200
committerPaul Walmsley <paul.walmsley@sifive.com>2019-10-29 19:32:18 +0100
commit6384423f49c804dbca02add1945e0ccf922cb522 (patch)
tree11deafffd128f5270f4e28b5ff6726982b3438d6 /arch/riscv
parentRISC-V: Add PCIe I/O BAR memory mapping (diff)
downloadlinux-6384423f49c804dbca02add1945e0ccf922cb522.tar.xz
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.c3
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);
}