arm64: Use of_get_cpu_hwid()
Replace the open coded parsing of CPU nodes' 'reg' property with of_get_cpu_hwid(). This change drops an error message for missing 'reg' property, but that should not be necessary as the DT tools will ensure 'reg' is present. Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Signed-off-by: Rob Herring <robh@kernel.org> Tested-by: Florian Fainelli <f.fainelli@gmail.com> Acked-by: Will Deacon <will@kernel.org> Reviewed-by: Sudeep Holla <sudeep.holla@arm.com> Link: https://lore.kernel.org/r/20211006164332.1981454-5-robh@kernel.org
This commit is contained in:
parent
eb11b5a956
commit
4d97b9290e
@ -466,33 +466,6 @@ void __init smp_prepare_boot_cpu(void)
|
||||
kasan_init_hw_tags();
|
||||
}
|
||||
|
||||
static u64 __init of_get_cpu_mpidr(struct device_node *dn)
|
||||
{
|
||||
const __be32 *cell;
|
||||
u64 hwid;
|
||||
|
||||
/*
|
||||
* A cpu node with missing "reg" property is
|
||||
* considered invalid to build a cpu_logical_map
|
||||
* entry.
|
||||
*/
|
||||
cell = of_get_property(dn, "reg", NULL);
|
||||
if (!cell) {
|
||||
pr_err("%pOF: missing reg property\n", dn);
|
||||
return INVALID_HWID;
|
||||
}
|
||||
|
||||
hwid = of_read_number(cell, of_n_addr_cells(dn));
|
||||
/*
|
||||
* Non affinity bits must be set to 0 in the DT
|
||||
*/
|
||||
if (hwid & ~MPIDR_HWID_BITMASK) {
|
||||
pr_err("%pOF: invalid reg property\n", dn);
|
||||
return INVALID_HWID;
|
||||
}
|
||||
return hwid;
|
||||
}
|
||||
|
||||
/*
|
||||
* Duplicate MPIDRs are a recipe for disaster. Scan all initialized
|
||||
* entries and check for duplicates. If any is found just ignore the
|
||||
@ -656,9 +629,9 @@ static void __init of_parse_and_init_cpus(void)
|
||||
struct device_node *dn;
|
||||
|
||||
for_each_of_cpu_node(dn) {
|
||||
u64 hwid = of_get_cpu_mpidr(dn);
|
||||
u64 hwid = of_get_cpu_hwid(dn, 0);
|
||||
|
||||
if (hwid == INVALID_HWID)
|
||||
if (hwid & ~MPIDR_HWID_BITMASK)
|
||||
goto next;
|
||||
|
||||
if (is_mpidr_duplicate(cpu_count, hwid)) {
|
||||
|
Loading…
Reference in New Issue
Block a user