On 15/10/19 10:55 AM, Faiz Abbas wrote: > Hi, > > On 15/10/19 12:08 AM, Faiz Abbas wrote: >> Add a write memory barrier to make sure that descriptors are actually >> written to memory before ringing the doorbell. >> >> Signed-off-by: Faiz Abbas <faiz_abbas@xxxxxx> >> --- >> >> This patch fixes a very infrequent ADMA error (1 out of 100 times) that >> I have been seeing after enabling command queuing for J721e. >> Also looking at memory-barriers.txt and this commit[1], >> it looks like we should be doing this before any descriptor write >> followed by a doorbell ring operation. It'll be nice if someone with more >> expertise in memory barriers can comment. >> >> [1] ad1a1b9cd67a ("scsi: ufs: commit descriptors before setting the >> doorbell") > > So I see that cqhci_readl/writel() use readl/writel_relaxed() which > seems to be causing this issue. Should I just fix this by converting > those to readl/writel with memory barriers instead? Perhaps we could do both changes i.e. add wmb() and convert to non-relaxed readl/writel