diff mbox series

[U-Boot,v2,2/3] bouncebuf: Add DMA validation check to addr_aligned().

Message ID 20190507155935.12672-2-christoph.muellner@theobroma-systems.com
State Deferred
Delegated to: Philipp Tomsich
Headers show
Series [U-Boot,v2,1/3] board_f: Add mach specific DMA address check function. | expand

Commit Message

Christoph Muellner May 7, 2019, 3:59 p.m. UTC
From: Christoph Müllner <christoph.muellner@theobroma-systems.com>

Currently addr_aligned() performs an alignment and a length check
to validate the DMA address. However, some machines have stricter
restrictions of DMA-able addresses.

This patch adds a call to mach_addr_is_dmaable() to honor this
machine specific restrictions.

Signed-off-by: Christoph Müllner <christoph.muellner@theobroma-systems.com>
Signed-off-by: Christoph Muellner <christoph.muellner@theobroma-systems.com>
---

Changes in v2: None

 common/bouncebuf.c | 6 ++++++
 1 file changed, 6 insertions(+)
diff mbox series

Patch

diff --git a/common/bouncebuf.c b/common/bouncebuf.c
index a7098e2caf..1b82243b06 100644
--- a/common/bouncebuf.c
+++ b/common/bouncebuf.c
@@ -26,6 +26,12 @@  static int addr_aligned(struct bounce_buffer *state)
 		return 0;
 	}
 
+	/* Check if valid DMA address. */
+	if (!mach_addr_is_dmaable(state->user_buffer)) {
+		debug("Buffer address is not DMA-able\n");
+		return 0;
+	}
+
 	/* Aligned */
 	return 1;
 }