All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anders Roxell <anders.roxell@linaro.org>
To: u-boot@lists.u-boot-project.org
Cc: marek.vasut@mailbox.org, trini@konsulko.com,
	ilias.apalodimas@linaro.org, michal.simek@amd.com, lukma@denx.de,
	alchark@flipper.net, jerome.forissier@arm.com,
	dlechner@baylibre.com, anshuld@ti.com, sjg@chromium.org,
	Thinh.Nguyen@synopsys.com, mkorpershoek@kernel.org,
	love.kumar@amd.com, Anders Roxell <anders.roxell@linaro.org>
Subject: [PATCH v9 01/26] x86: asm: io.h: add rmb() and wmb()
Date: Wed, 16 Sep 2026 14:38:01 +0200	[thread overview]
Message-ID: <20260916123826.517181-2-anders.roxell@linaro.org> (raw)
In-Reply-To: <20260916123826.517181-1-anders.roxell@linaro.org>

x86 has dmb() and mb(), but no rmb() and no wmb(). Drivers that use them
do not build. drivers/usb/dwc3/gadget.c is one of them. It calls wmb()
around the trb setup.

x86 is total store order, so a compiler barrier is enough for normal
memory. The kernel uses lfence and sfence here, but those need SSE2 and
galileo is i586. dmb() is what __iormb() and __iowmb() already use, so
use that.

Reported-by: Marek Vasut <marek.vasut@mailbox.org>
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
 arch/x86/include/asm/io.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
index 1390193f09c7..bd6c3bbfd2f3 100644
--- a/arch/x86/include/asm/io.h
+++ b/arch/x86/include/asm/io.h
@@ -241,6 +241,8 @@ static inline void sync(void)
  */
 #define dmb()		__asm__ __volatile__ ("" : : : "memory")
 #define mb()		__asm__ __volatile__ ("mfence" : : : "memory")
+#define rmb()		dmb()
+#define wmb()		dmb()
 #define __iormb()	dmb()
 #define __iowmb()	dmb()
 
-- 
2.53.0


  reply	other threads:[~2026-09-16 13:08 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-09-16 12:38 [PATCH v9 00/26] usb: dwc3: part 2, make the resynced code work Anders Roxell
2026-09-16 12:38 ` Anders Roxell [this message]
2026-09-16 12:38 ` [PATCH v9 02/26] dm: add helpers needed by the resynced DWC3 code Anders Roxell
2026-09-16 12:38 ` [PATCH v9 03/26] usb: phy: add the usb_phy " Anders Roxell
2026-09-16 12:38 ` [PATCH v9 04/26] usb: gadget: adapt the gadget API after the resync Anders Roxell
2026-09-16 12:38 ` [PATCH v9 05/26] usb: gadget: udc: make udc-core build in U-Boot Anders Roxell
2026-09-16 12:38 ` [PATCH v9 06/26] usb: dwc3: make the core driver " Anders Roxell
2026-09-16 12:38 ` [PATCH v9 07/26] usb: dwc3: bring back the samsung usb phy driver Anders Roxell
2026-09-16 12:38 ` [PATCH v9 08/26] usb: dwc3: make gadget and ep0 build in U-Boot Anders Roxell
2026-09-16 12:38 ` [PATCH v9 09/26] usb: gadget: udc: enable async callbacks on bind Anders Roxell
2026-09-16 12:38 ` [PATCH v9 10/26] usb: dwc3: ep0: flush and invalidate cache around ep0 transfers Anders Roxell
2026-09-16 12:38 ` [PATCH v9 11/26] usb: dwc3: gadget: flush and invalidate cache around transfers Anders Roxell
2026-09-16 12:38 ` [PATCH v9 12/26] usb: dwc3: make the am62 glue build in U-Boot Anders Roxell
2026-09-16 12:38 ` [PATCH v9 13/26] usb: gadget: ci_udc: move to the udc-core registration Anders Roxell
2026-09-16 12:38 ` [PATCH v9 14/26] usb: gadget: ci_udc: set endpoint capabilities Anders Roxell
2026-09-16 12:38 ` [PATCH v9 15/26] usb: gadget: dwc2_udc_otg: fix up after the resync Anders Roxell
2026-09-16 12:38 ` [PATCH v9 16/26] usb: gadget: fix up the function drivers " Anders Roxell
2026-09-16 12:38 ` [PATCH v9 17/26] usb: gadget: fix up the last UDC " Anders Roxell
2026-09-16 12:38 ` [PATCH v9 18/26] usb: gadget: atmel_usba_udc: set endpoint capabilities Anders Roxell
2026-09-16 12:38 ` [PATCH v9 19/26] usb: gadget: at91_udc: register with udc-core Anders Roxell
2026-09-16 12:38 ` [PATCH v9 20/26] usb: gadget: at91_udc: set endpoint capabilities Anders Roxell
2026-09-16 12:38 ` [PATCH v9 21/26] usb: musb-new: fix up after the resync Anders Roxell
2026-09-16 12:38 ` [PATCH v9 22/26] usb: musb-new: set endpoint capabilities Anders Roxell
2026-09-16 12:38 ` [PATCH v9 23/26] usb: mtu3: fix up after the resync Anders Roxell
2026-09-16 12:38 ` [PATCH v9 24/26] usb: mtu3: set endpoint capabilities Anders Roxell
2026-09-16 12:38 ` [PATCH v9 25/26] usb: host: xhci: fix up after the resync Anders Roxell
2026-09-16 12:38 ` [PATCH v9 26/26] usb: cdns3: " Anders Roxell
2026-09-17 12:43 ` [PATCH v9 00/26] usb: dwc3: part 2, make the resynced code work Anshul Dalal
2026-09-25  9:59   ` Anders Roxell
2026-09-25 10:39     ` Siddharth Vadapalli
2026-09-29 10:07       ` Anders Roxell
2026-09-29 13:05         ` Siddharth Vadapalli
2026-09-30 12:10           ` Anders Roxell
2026-10-02 14:17 ` Quentin Schulz
2026-10-13 13:02   ` Anders Roxell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260916123826.517181-2-anders.roxell@linaro.org \
    --to=anders.roxell@linaro.org \
    --cc=Thinh.Nguyen@synopsys.com \
    --cc=alchark@flipper.net \
    --cc=anshuld@ti.com \
    --cc=dlechner@baylibre.com \
    --cc=ilias.apalodimas@linaro.org \
    --cc=jerome.forissier@arm.com \
    --cc=love.kumar@amd.com \
    --cc=lukma@denx.de \
    --cc=marek.vasut@mailbox.org \
    --cc=michal.simek@amd.com \
    --cc=mkorpershoek@kernel.org \
    --cc=sjg@chromium.org \
    --cc=trini@konsulko.com \
    --cc=u-boot@lists.u-boot-project.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.