For systems where the top 32-bits of the MPIDR are all zero, we should
allow the device-tree to specify an #address-size of 0x1 for the CPU reg
property and then zero extend the value there.
Without this patch, kvmtool breaks with the recent mpidr parsing code
introduced in 
4c7aa0021356 ("arm64: kernel: initialise cpu_logical_map
from the DT").
Acked-by: Javi Merino <javi.merino@arm.com>
Acked-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
 
        bool bootcpu_valid = false;
 
        while ((dn = of_find_node_by_type(dn, "cpu"))) {
+               const u32 *cell;
                u64 hwid;
 
                /*
                 * considered invalid to build a cpu_logical_map
                 * entry.
                 */
-               if (of_property_read_u64(dn, "reg", &hwid)) {
+               cell = of_get_property(dn, "reg", NULL);
+               if (!cell) {
                        pr_err("%s: missing reg property\n", dn->full_name);
                        goto next;
                }
+               hwid = of_read_number(cell, of_n_addr_cells(dn));
 
                /*
                 * Non affinity bits must be set to 0 in the DT