mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 17:41:22 +00:00
crypto: hisilicon/qm - optimize the barrier operation
A 'dma_wmb' barrier is enough to guarantee previous writes before accessing by acc device in the outer shareable domain. A 'smp_wmb' barrier is enough to guarantee previous writes before accessing by other cpus in the inner shareble domain. Signed-off-by: Hui Tang <tanghui20@huawei.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
This commit is contained in:
parent
d5db91d26a
commit
4cda2f4a0e
@ -687,13 +687,13 @@ static void qm_mb_write(struct hisi_qm *qm, const void *src)
|
||||
|
||||
if (!IS_ENABLED(CONFIG_ARM64)) {
|
||||
memcpy_toio(fun_base, src, 16);
|
||||
wmb();
|
||||
dma_wmb();
|
||||
return;
|
||||
}
|
||||
|
||||
asm volatile("ldp %0, %1, %3\n"
|
||||
"stp %0, %1, %2\n"
|
||||
"dsb sy\n"
|
||||
"dmb oshst\n"
|
||||
: "=&r" (tmp0),
|
||||
"=&r" (tmp1),
|
||||
"+Q" (*((char __iomem *)fun_base))
|
||||
@ -982,7 +982,7 @@ static void qm_set_qp_disable(struct hisi_qp *qp, int offset)
|
||||
*addr = 1;
|
||||
|
||||
/* make sure setup is completed */
|
||||
mb();
|
||||
smp_wmb();
|
||||
}
|
||||
|
||||
static void qm_disable_qp(struct hisi_qm *qm, u32 qp_id)
|
||||
|
Loading…
Reference in New Issue
Block a user