From: Matt Reimer Date: Mon, 19 Sep 2011 14:30:13 +0000 (-0400) Subject: xscale: fix bug in xscale_receive() X-Git-Tag: v0.6.0-rc1~529 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=4eca579a6edf49ff8cb0872c757165c35013e46d;p=openocd xscale: fix bug in xscale_receive() The code in xscale_receive() that tries to skip invalid reads (i.e. reads that don't have the DBG_SR[0] 'valid' bit set) seems to be wrong, as it only looks at the first word's valid flag rather than each word's own valid flag. Am I reading the code correctly? If so, the attached patch should fix it. If this looks correct, I'll generate a proper patch and commit message. Matt Change-Id: I74ebe2ad7a36d340a9dd3b8487578b6ea7f3cf1e Signed-off-by: Øyvind Harboe Reviewed-on: http://openocd.zylin.com/32 Tested-by: jenkins Reviewed-by: Øyvind Harboe --- diff --git a/src/target/xscale.c b/src/target/xscale.c index 3b567458..b469b864 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -317,7 +317,7 @@ static int xscale_receive(struct target *target, uint32_t *buffer, int num_words /* examine results */ for (i = words_done; i < num_words; i++) { - if (!(field0[0] & 1)) + if (!(field0[i] & 1)) { /* move backwards if necessary */ int j;