summaryrefslogtreecommitdiff
path: root/common/bloblist.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/bloblist.c')
-rw-r--r--common/bloblist.c13
1 files changed, 4 insertions, 9 deletions
diff --git a/common/bloblist.c b/common/bloblist.c
index 88e2a0f5c06..705d9c6ae99 100644
--- a/common/bloblist.c
+++ b/common/bloblist.c
@@ -13,6 +13,7 @@
#include <malloc.h>
#include <mapmem.h>
#include <spl.h>
+#include <tables_csum.h>
#include <asm/global_data.h>
#include <u-boot/crc.h>
@@ -318,16 +319,10 @@ int bloblist_resize(uint tag, int new_size)
static u32 bloblist_calc_chksum(struct bloblist_hdr *hdr)
{
- struct bloblist_rec *rec;
- u32 chksum;
+ u8 chksum;
- chksum = crc32(0, (unsigned char *)hdr,
- offsetof(struct bloblist_hdr, chksum));
- foreach_rec(rec, hdr) {
- chksum = crc32(chksum, (void *)rec, rec_hdr_size(rec));
- chksum = crc32(chksum, (void *)rec + rec_hdr_size(rec),
- rec->size);
- }
+ chksum = table_compute_checksum(hdr, hdr->alloced);
+ chksum += hdr->chksum;
return chksum;
}