From 46ed9702a0005da87edd0cc3d34dbe24d1526784 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
Date: Thu, 6 Jun 2013 17:01:39 +0200
Subject: [PATCH] use tx as the type specifier instead of zx

A couple of printf() commands use "zx" as a type specifier for printing
a difference of 2 pointers. "z" means a size_t, but using "t" which is
ptrdiff_t is correct. The issue was found on s390 (32-bit) where size_t
is defined as "unsigned long" as opposed to the usual "unsigned int".

Rebased-by: Breno Leitao <breno.leitao@gmail.com>
---
diff --git a/fdtdump.c b/fdtdump.c
index 4eaade9..4dcac19 100644
--- a/fdtdump.c
+++ b/fdtdump.c
@@ -98,7 +98,7 @@ static void dump_blob(void *blob, bool debug)
 	p = p_struct;
 	while ((tag = fdt32_to_cpu(GET_CELL(p))) != FDT_END) {
 
-		dumpf("%04zx: tag: 0x%08x (%s)\n",
+		dumpf("%04tx: tag: 0x%08x (%s)\n",
 		        (uintptr_t)p - blob_off - 4, tag, tagname(tag));
 
 		if (tag == FDT_BEGIN_NODE) {
@@ -138,8 +138,8 @@ static void dump_blob(void *blob, bool debug)
 
 		p = PALIGN(p + sz, 4);
 
-		dumpf("%04zx: string: %s\n", (uintptr_t)s - blob_off, s);
-		dumpf("%04zx: value\n", (uintptr_t)t - blob_off);
+		dumpf("%04tx: string: %s\n", (uintptr_t)s - blob_off, s);
+		dumpf("%04tx: value\n", (uintptr_t)t - blob_off);
 		printf("%*s%s", depth * shift, "", s);
 		utilfdt_print_data(t, sz);
 		printf(";\n");
@@ -222,14 +222,14 @@ int main(int argc, char *argv[])
 				if (valid_header(p, this_len))
 					break;
 				if (debug)
-					printf("%s: skipping fdt magic at offset %#zx\n",
+					printf("%s: skipping fdt magic at offset %#tx\n",
 						file, p - buf);
 			}
 			++p;
 		}
 		if (!p || endp - p < sizeof(struct fdt_header))
 			die("%s: could not locate fdt magic\n", file);
-		printf("%s: found fdt at offset %#zx\n", file, p - buf);
+		printf("%s: found fdt at offset %#tx\n", file, p - buf);
 		buf = p;
 	} else if (!valid_header(buf, len))
 		die("%s: header is not valid\n", file);
