Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit deb3b9d5 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: camera: Prevent kernel info leak."

parents 8682344a 7df26d6b
Loading
Loading
Loading
Loading
+25 −15
Original line number Diff line number Diff line
@@ -175,35 +175,45 @@ int32_t msm_camera_io_poll_value_wmask(void __iomem *addr, u32 wait_data,

void msm_camera_io_dump(void __iomem *addr, int size, int enable)
{
	char line_str[128], *p_str;
	char line_str[128];
	int i;
	u32 *p = (u32 *) addr;
	ptrdiff_t p = 0;
	size_t offset = 0, used = 0;
	u32 data;

	CDBG("%s: addr=%pK size=%d\n", __func__, addr, size);

	if (!p || (size <= 0) || !enable)
	if (!addr || (size <= 0) || !enable)
		return;

	line_str[0] = '\0';
	p_str = line_str;
	for (i = 0; i < size/4; i++) {
		if (i % 4 == 0) {
#ifdef CONFIG_COMPAT
			snprintf(p_str, 20, "%016lx: ", (unsigned long) p);
			p_str += 18;
#else
			snprintf(p_str, 12, "%08lx: ", (unsigned long) p);
			p_str += 10;
#endif
		}
		data = readl_relaxed(p++);
		snprintf(p_str, 12, "%08x ", data);
		p_str += 9;
			used = snprintf(line_str + offset,
				sizeof(line_str) - offset, "0x%04tX: ", p);
			if (offset + used >= sizeof(line_str)) {
				pr_err("%s\n", line_str);
				offset = 0;
				line_str[0] = '\0';
			} else {
				offset += used;
			}
		}
		data = readl_relaxed(addr + p);
		p = p + 4;
		used = snprintf(line_str + offset,
			sizeof(line_str) - offset, "%08x ", data);
		if (offset + used >= sizeof(line_str)) {
			pr_err("%s\n", line_str);
			offset = 0;
			line_str[0] = '\0';
		} else {
			offset += used;
		}
		if ((i + 1) % 4 == 0) {
			pr_err("%s\n", line_str);
			line_str[0] = '\0';
			p_str = line_str;
			offset = 0;
		}
	}
	if (line_str[0] != '\0')