From 4abe6b708687f9982bfbc0629e1070bf49714fa3 Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 27 Oct 2008 10:04:46 +1100 Subject: [PATCH] ddf: get endian-ness of CRC correct. All numeric fields in a DDF header big-endian, including the CRC, so better fix that. Signed-off-by: NeilBrown --- super-ddf.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/super-ddf.c b/super-ddf.c index db6476b..4264bdf 100644 --- a/super-ddf.c +++ b/super-ddf.c @@ -446,7 +446,10 @@ static int calc_crc(void *buf, int len) newcrc = crc32(0, buf, len); ddf->crc = oldcrc; - return newcrc; + /* The crc is store (like everything) bigendian, so convert + * here for simplicity + */ + return __cpu_to_be32(newcrc); } static int load_ddf_header(int fd, unsigned long long lba,