From 03a886252f6555d6b0af76b654e76459642b89da Mon Sep 17 00:00:00 2001
From: Yunguo Wei <yunguo.wei@windriver.com>
Date: Tue, 3 Dec 2013 18:12:50 +0800
Subject: [PATCH] pmtools: switch to dynamic buffer for huge ACPI tables

For servers like Canoe Pass or Thunder Ridge, there are much more
entries in ACPI table, so original 1K buffer is insufficient.

We switch to dynamic buffer on this situation.

Signed-off-by: Yunguo Wei <yunguo.wei@windriver.com>


Upstream-Status: Pending

Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
 madt/madt.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

--- a/madt/madt.c
+++ b/madt/madt.c
@@ -34,14 +34,16 @@ typedef unsigned long long u64;
 //#include <sys/mman.h>
 #include <stdio.h> // fread
 #include <stdlib.h> // malloc
+#include <string.h> // memset/memcpy
 
 #include "./tables.c"
 
 int verbose = 0;
 /*
-/* read standard input
+ * read standard input
  * write decoded madt to standard output
  */
+size_t
 get_next_entry(acpi_table_entry_header * entry_header)
 {
 	size_t retval;
@@ -51,9 +53,11 @@ get_next_entry(acpi_table_entry_header *
 	return retval;
 }
 
-u8	buffer[1024];
 
-main()
+u8	buf[1024];
+u8	*buffer = buf;
+int
+main(int argc, char *argv[])
 {
 	size_t retval;
 	struct acpi_table_madt *madt_header;
@@ -75,6 +79,17 @@ main()
 
 	if (verbose) printf("header.length %d\n", madt_header->header.length);
 
+	/* if 1K buffer is insufficient for acpi table, switch to a larger memory buffer */
+	if(expected_length > sizeof(buf)) {
+		buffer = malloc(expected_length);
+		if (!buffer) {
+			perror("malloc");
+			exit(1);
+		}
+		memset(buffer, 0, expected_length);
+		memcpy(buffer, buf, sizeof(struct acpi_table_madt));
+	}
+
 	acpi_table_print((void*)&(buffer[bytes_read]), 0);
 
 	bytes_read = sizeof(struct acpi_table_madt);
@@ -118,6 +133,9 @@ done:
 		printf("Checksum 0x%x != 0; 0x%x in header ERROR\n", csum,
 			 madt_header->header.checksum);
 
+	if(buffer != buf)
+		free(buffer);
+
 	return 0;
 }
 
