On Tue, 18 Oct 2022 08:44:09 +0200, Arnd Bergmann wrote: > On Tue, Oct 18, 2022, at 3:37 AM, Akira Yokosawa wrote: >> On 2022/10/18 5:55, Arnd Bergmann wrote: >>> On Mon, Oct 10, 2022, at 12:13 PM, Parav Pandit wrote: >> >> "a barrier" can mean "any barrier", which can include a full barrier >> in theory. >> >> So I'd rather make the substituted text read something like: >> >> Note that, when using writel(), a prior wmb() or weaker is not >> needed to guarantee that the cache coherent memory writes have >> completed before writing to the MMIO region. >> >> In my opinion, "or weaker" is redundant for careful readers who are >> well aware of context of this example, but won't do no harm. > > I think that would be more confusing than either of the other variants. > > Anything weaker than a full "wmb()" probably makes the driver calling > the writel() non-portable, so that is both vague and incorrect. Do you mean there is a writel() implementation somewhere in the kernel which doesn't guarantee an implicit wmb() before MMIO write? Or do you mean my version is confusing because it can imply a weaker write barrier is sufficient before writel_relaxed()? I'm confused... Thanks, Akira > > The current version works because it specifically mentions the correct > barrier to use, while Parav's version works because it doesn't > make any attempt to name the specific barrier and just states that > adding one is a bad idea regardless. > > Arnd