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

From: Arve HjÃnnevÃg
Date: Wed Feb 02 2011 - 21:55:30 EST


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@xxxxxxxxxxx>
---
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/