summaryrefslogtreecommitdiff
path: root/lib/utils/ipi
diff options
context:
space:
mode:
authorAnup Patel <[email protected]>2023-11-21 14:49:42 +0530
committerAnup Patel <[email protected]>2023-11-26 18:45:06 +0530
commitf520256d03da84e7ff8bddd084ef873192f46304 (patch)
treeb7903d467c55604303472f67190ffe8ab8a87b7f /lib/utils/ipi
parent791704cd09c019decf438f6e4f56423cc95cb66a (diff)
lib: sbi: Allow relaxed MMIO writes in device ipi_send() callback
Currently, we have a smp_wmb() between atomic_raw_set_bit() and ipi_send() device callback whereas the MMIO writes done by the device ipi_send() callback will also include a barrier. We can avoid unnecessary/redundant barriers described above by allowing relaxed MMIO writes in device ipi_send() callback. To achieve this, we simply use wmb() instead of smp_wmb() before calling device ipi_send(). Signed-off-by: Anup Patel <[email protected]> Reported-by: Bo Gan <[email protected]>
Diffstat (limited to 'lib/utils/ipi')
-rw-r--r--lib/utils/ipi/aclint_mswi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/utils/ipi/aclint_mswi.c b/lib/utils/ipi/aclint_mswi.c
index a3bfb4a9..bfd6a45b 100644
--- a/lib/utils/ipi/aclint_mswi.c
+++ b/lib/utils/ipi/aclint_mswi.c
@@ -41,7 +41,7 @@ static void mswi_ipi_send(u32 hart_index)
/* Set ACLINT IPI */
msip = (void *)mswi->addr;
- writel(1, &msip[sbi_hartindex_to_hartid(hart_index) -
+ writel_relaxed(1, &msip[sbi_hartindex_to_hartid(hart_index) -
mswi->first_hartid]);
}