From 8a89e7f388f708243e5596911c2e17ebf29d80ab Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 23 Jan 2013 02:41:16 +0100 Subject: blob/blobmsg: use 32 bit load/store for 64 bit access, unaligned attributes cause data corruption on ARM Signed-off-by: Felix Fietkau --- blob.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'blob.h') diff --git a/blob.h b/blob.h index a8ddce9..557899d 100644 --- a/blob.h +++ b/blob.h @@ -191,8 +191,10 @@ blob_get_u32(const struct blob_attr *attr) static inline uint64_t blob_get_u64(const struct blob_attr *attr) { - uint64_t *tmp = (uint64_t*)attr->data; - return be64_to_cpu(*tmp); + uint32_t *ptr = blob_data(attr); + uint64_t tmp = ((uint64_t) be32_to_cpu(ptr[0])) << 32; + tmp |= be32_to_cpu(ptr[1]); + return tmp; } static inline int8_t -- cgit v1.2.3