lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:	Tue,  7 May 2013 14:11:37 +0100
From:	Srinivas KANDAGATLA <srinivas.kandagatla@...com>
To:	broonie@...nel.org
Cc:	srinivas.kandagatla@...com, gregkh@...uxfoundation.org,
	linux-kernel@...r.kernel.org
Subject: [RFC] regmap: debugfs: Fix start_reg calculation

From: Srinivas Kandagatla <srinivas.kandagatla@...com>

If we dump syscon regmap registers via debufs you will notice that the
dump contains lot of XXXXXXXX values at the end.

An example configuration is:
syscon@...e0000{
	compatible      = "syscon";
	reg		= <0xfdde0000 0x15c>;
};

example dump:
cat  /sys/kernel/debug/regmap/fdde0000.syscon/registers
...
154: 001c1dff
158: 00000003
05a: XXXXXXXX
05e: XXXXXXXX
...

regmap_debugfs_get_dump_start returns register number, not the actual
offset into the map. So we use the return value as start to dump the 
registers we can endup with wrong start address, in the example case
for the second loop the code ends up with start_reg = 0x56. Which is
incorrect.
Also this keeps incremeting by stride, which can than result in
unaligned address.

This patch multiples the return value of regmap_debugfs_get_dump_start
with stride to get the correct offset into the map.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@...com>
---
 drivers/base/regmap/regmap-debugfs.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
index 81d6f60..4a66e54 100644
--- a/drivers/base/regmap/regmap-debugfs.c
+++ b/drivers/base/regmap/regmap-debugfs.c
@@ -190,6 +190,7 @@ static ssize_t regmap_read_debugfs(struct regmap *map, unsigned int from,
 
 	/* Work out which register we're starting at */
 	start_reg = regmap_debugfs_get_dump_start(map, from, *ppos, &p);
+	start_reg *= map->reg_stride;
 
 	for (i = start_reg; i <= to; i += map->reg_stride) {
 		if (!regmap_readable(map, i))
-- 
1.7.6.5

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ