diff options
author | David Gibson <david@gibson.dropbear.id.au> | 2017-03-06 12:04:45 +1100 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2017-03-06 12:04:45 +1100 |
commit | 49300f2ade6a6ad9b19957b1fce41fccfe1246a3 (patch) | |
tree | 8e469eef1e72f62296acba1c14eb022152ed425a /livetree.c | |
parent | fa8bc7f928ac25f23532afc8beb2073efc8fb063 (diff) | |
download | dtc-49300f2ade6a6ad9b19957b1fce41fccfe1246a3.zip dtc-49300f2ade6a6ad9b19957b1fce41fccfe1246a3.tar.gz dtc-49300f2ade6a6ad9b19957b1fce41fccfe1246a3.tar.bz2 |
dtc: Don't abuse struct fdt_reserve_entry
struct fdt_reserve_entry is defined in fdt.h to exactly mirror the
in-memory layout of a reserve entry in the flattened tree. Since that is
always big-endian, it uses fdt64_t elements, which have sparse annotations
marking them as not native endian.
However, in dtc, we also use struct fdt_reserve_entry inside struct
reserve_info, and use it with native endian values. This will cause sparse
errors.
This stops this abuse, making struct reserve_info have its own native
endian fields for the same information.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'livetree.c')
-rw-r--r-- | livetree.c | 12 |
1 files changed, 6 insertions, 6 deletions
@@ -319,8 +319,8 @@ struct reserve_info *build_reserve_entry(uint64_t address, uint64_t size) memset(new, 0, sizeof(*new)); - new->re.address = address; - new->re.size = size; + new->address = address; + new->size = size; return new; } @@ -599,13 +599,13 @@ static int cmp_reserve_info(const void *ax, const void *bx) a = *((const struct reserve_info * const *)ax); b = *((const struct reserve_info * const *)bx); - if (a->re.address < b->re.address) + if (a->address < b->address) return -1; - else if (a->re.address > b->re.address) + else if (a->address > b->address) return 1; - else if (a->re.size < b->re.size) + else if (a->size < b->size) return -1; - else if (a->re.size > b->re.size) + else if (a->size > b->size) return 1; else return 0; |