Skip to content
/ linux Public

Commit aaaa758

Browse files
Chenghai HuangSasha Levin
authored andcommitted
crypto: hisilicon/qm - move the barrier before writing to the mailbox register
[ Upstream commit ebf35d8 ] Before sending the data via the mailbox to the hardware, to ensure that the data accessed by the hardware is the most up-to-date, a write barrier should be added before writing to the mailbox register. The current memory barrier is placed after writing to the register, the barrier order should be modified to be before writing to the register. Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent a048eb4 commit aaaa758

File tree

1 file changed

+5
-1
lines changed
  • drivers/crypto/hisilicon

1 file changed

+5
-1
lines changed

drivers/crypto/hisilicon/qm.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,9 +609,13 @@ static void qm_mb_write(struct hisi_qm *qm, const void *src)
609609
}
610610

611611
#if IS_ENABLED(CONFIG_ARM64)
612+
/*
613+
* The dmb oshst instruction ensures that the data in the
614+
* mailbox is written before it is sent to the hardware.
615+
*/
612616
asm volatile("ldp %0, %1, %3\n"
613-
"stp %0, %1, %2\n"
614617
"dmb oshst\n"
618+
"stp %0, %1, %2\n"
615619
: "=&r" (tmp0),
616620
"=&r" (tmp1),
617621
"+Q" (*((char __iomem *)fun_base))

0 commit comments

Comments
 (0)