[Pdbg] [PATCH] libpdbg: Fix rework target addressing

Nicholas Piggin npiggin at gmail.com
Sat Nov 10 21:05:26 AEDT 2018


Commit 936dbdcedb27 ("libpdbg: Rework target addressing") introduced
a bug in the target address calculation, using index 1 rather than the
intended 0.

Fixes: 936dbdcedb27 ("libpdbg: Rework target addressing")
Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
---
 libpdbg/device.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/libpdbg/device.c b/libpdbg/device.c
index 9557172..f81b1b5 100644
--- a/libpdbg/device.c
+++ b/libpdbg/device.c
@@ -626,15 +626,14 @@ uint64_t pdbg_target_address(struct pdbg_target *target, uint64_t *out_size)
 	const struct dt_property *p;
 	u32 na = dt_n_address_cells(target);
 	u32 ns = dt_n_size_cells(target);
-	u32 pos, n;
+	u32 n;
 
 	p = dt_require_property(target, "reg", -1);
 	n = (na + ns) * sizeof(u32);
-	pos = n;
-	assert((pos + n) <= p->len);
+	assert(n <= p->len);
 	if (out_size)
-		*out_size = dt_get_number(p->prop + pos + na * sizeof(u32), ns);
-	return dt_get_number(p->prop + pos, na);
+		*out_size = dt_get_number(p->prop + na * sizeof(u32), ns);
+	return dt_get_number(p->prop, na);
 }
 
 void pdbg_targets_init(void *fdt)
-- 
2.18.0



More information about the Pdbg mailing list