[coreboot-gerrit] Patch set updated for coreboot: 057fccf arm: Fix memory barrier usage in IO operation

Gabe Black (gabeblack@chromium.org) gerrit at coreboot.org
Wed Jul 10 11:35:57 CEST 2013


Gabe Black (gabeblack at chromium.org) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3682

-gerrit

commit 057fccf02e449358bedddaf2c3d03fc7ebcb3f94
Author: Hung-Te Lin <hungte at chromium.org>
Date:   Wed Jun 12 15:01:56 2013 -0700

    arm: Fix memory barrier usage in IO operation
    
    The dmb should be executed before reading operations, and before/after writing
    operations.
    
    Change-Id: I572136a2f9a07eb2c38a112f5deeb2de0c0fd46c
    Signed-off-by: Hung-Te Lin <hungte at chromium.org>
    Signed-off-by: Gabe Black <gabeblack at chromium.org>
---
 src/arch/armv7/include/arch/io.h | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/arch/armv7/include/arch/io.h b/src/arch/armv7/include/arch/io.h
index b4932dc..be1da51 100644
--- a/src/arch/armv7/include/arch/io.h
+++ b/src/arch/armv7/include/arch/io.h
@@ -29,41 +29,41 @@
 
 static inline uint8_t read8(const void *addr)
 {
-	uint8_t v = *(volatile uint8_t *)addr;
 	dmb();
-	return v;
+	return *(volatile uint8_t *)addr;
 }
 
 static inline uint16_t read16(const void *addr)
 {
-	uint16_t v = *(volatile uint16_t *)addr;
 	dmb();
-	return v;
+	return *(volatile uint16_t *)addr;
 }
 
 static inline uint32_t read32(const void *addr)
 {
-	uint32_t v = *(volatile uint32_t *)addr;
 	dmb();
-	return v;
+	return *(volatile uint32_t *)addr;
 }
 
 static inline void write8(uint8_t val, const void *addr)
 {
 	dmb();
 	*(volatile uint8_t *)addr = val;
+	dmb();
 }
 
 static inline void write16(uint16_t val, const void *addr)
 {
 	dmb();
 	*(volatile uint16_t *)addr = val;
+	dmb();
 }
 
 static inline void write32(uint32_t val, const void *addr)
 {
 	dmb();
 	*(volatile uint32_t *)addr = val;
+	dmb();
 }
 
 /*



More information about the coreboot-gerrit mailing list