[coreboot] Patch set updated for coreboot: bde7653 Use convenience function to checksum

Philip Prindeville (pprindeville@gmail.com) gerrit at coreboot.org
Sat Dec 24 01:46:07 CET 2011


Philip Prindeville (pprindeville at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/497

-gerrit

commit bde765381d216bb9144b3950aa101d6e987ebc07
Author: Philip Prindeville <philipp at redfish-solutions.com>
Date:   Fri Dec 23 17:22:05 2011 -0700

    Use convenience function to checksum
    
    That coreboot uses the IP checksum is an artifact, not a deliberate
    requirement to be compatible with the Internet Protocole suite. Use
    a wrapper to abstract the computation of coreboot's checksum.
    
    Change-Id: I6491b9ba5efb9ffe5cb12a6172653a6ac80a1370
    Signed-off-by: Philip Prindeville <philipp at redfish-solutions.com>
---
 payloads/coreinfo/coreboot_module.c           |    6 +++---
 payloads/libpayload/include/coreboot_tables.h |    5 +++++
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/payloads/coreinfo/coreboot_module.c b/payloads/coreinfo/coreboot_module.c
index 5d13128..7289366 100644
--- a/payloads/coreinfo/coreboot_module.c
+++ b/payloads/coreinfo/coreboot_module.c
@@ -17,8 +17,8 @@
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
  */
 
-#include <coreboot_tables.h>
 #include "coreinfo.h"
+#include <coreboot_tables.h>
 
 #ifdef CONFIG_MODULE_COREBOOT
 
@@ -189,10 +189,10 @@ static int parse_header(void *addr, int len)
 
 	/* FIXME: Check the checksum. */
 
-	if (ipchksum((uint16_t *) header, sizeof(*header)))
+	if (cb_checksum(header, sizeof(*header)))
 		return -1;
 
-	if (ipchksum((uint16_t *) (ptr + sizeof(*header)), header->table_bytes)
+	if (cb_checksum((ptr + sizeof(*header)), header->table_bytes)
 	    != header->table_checksum)
 		return -1;
 
diff --git a/payloads/libpayload/include/coreboot_tables.h b/payloads/libpayload/include/coreboot_tables.h
index 3b3b7d2..574469a 100644
--- a/payloads/libpayload/include/coreboot_tables.h
+++ b/payloads/libpayload/include/coreboot_tables.h
@@ -223,6 +223,11 @@ static inline u64 cb_unpack64(struct cbuint64 val)
 	return (((u64) val.hi) << 32) | val.lo;
 }
 
+static inline u16 cb_checksum(const void *ptr, unsigned len)
+{
+	return ipchksum(ptr, len);
+}
+
 /* Helpful macros */
 
 #define MEM_RANGE_COUNT(_rec) \




More information about the coreboot mailing list