7a19fc
--- crash-trace-command-2.0/trace.c.orig
7a19fc
+++ crash-trace-command-2.0/trace.c
7a19fc
@@ -96,7 +96,7 @@ struct ring_buffer_per_cpu {
7a19fc
 	ulong real_head_page;
7a19fc
 
7a19fc
 	int head_page_index;
7a19fc
-	unsigned int nr_pages;
7a19fc
+	unsigned long nr_pages;
7a19fc
 	ulong *pages;
7a19fc
 
7a19fc
 	ulong *linear_pages;
7a19fc
@@ -430,7 +432,13 @@ static int ftrace_init_buffers(struct ri
7a19fc
 		buffer_read_value(overrun);
7a19fc
 		buffer_read_value(entries);
7a19fc
 		if (per_cpu_buffer_sizes) {
7a19fc
-			buffer_read_value(nr_pages);
7a19fc
+			if (MEMBER_SIZE("ring_buffer_per_cpu", "nr_pages") == sizeof(unsigned int)) {
7a19fc
+				unsigned int tmp_nr_pages;
7a19fc
+				read_value(tmp_nr_pages, buffers[i].kaddr, ring_buffer_per_cpu, nr_pages);
7a19fc
+				buffers[i].nr_pages = (unsigned long) tmp_nr_pages;
7a19fc
+			} else {
7a19fc
+				buffer_read_value(nr_pages);
7a19fc
+			}
7a19fc
 			pages = buffers[i].nr_pages;
7a19fc
 		} else
7a19fc
 			buffers[i].nr_pages = pages;