[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