[PATCH 3/5] ARM: etm: Don't trigger another overflow when trying to clear the RAM-full status

Arve Hjønnevåg arve at android.com
Wed Feb 2 21:54:21 EST 2011


If the write address was at the end of the buffer, toggling the trace
capture bit would set the RAM-full status instead of clearing it.

Signed-off-by: Arve Hjønnevåg <arve at android.com>
---
 arch/arm/kernel/etm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c
index 2ea0b7c..7652e9f 100644
--- a/arch/arm/kernel/etm.c
+++ b/arch/arm/kernel/etm.c
@@ -235,6 +235,7 @@ static void etm_dump(void)
 	printk(KERN_INFO "\n--- ETB buffer end ---\n");
 
 	/* deassert the overflow bit */
+	etb_writel(t, 0, ETBR_WRITEADDR);
 	etb_writel(t, 1, ETBR_CTRL);
 	etb_writel(t, 0, ETBR_CTRL);
 
@@ -300,6 +301,7 @@ static ssize_t etb_read(struct file *file, char __user *data,
 		buf[i] = etb_readl(t, ETBR_READMEM);
 
 	/* the only way to deassert overflow bit in ETB status is this */
+	etb_writel(t, 0, ETBR_WRITEADDR);
 	etb_writel(t, 1, ETBR_CTRL);
 	etb_writel(t, 0, ETBR_CTRL);
 
-- 
1.7.3.1




More information about the linux-arm-kernel mailing list