On Mon, Mar 12, 2018 at 03:22:33PM -0700, Ivan Gorinov wrote: > Current x86 Device Tree implementation does not support multiprocessing. > Use new DT bindings to describe the processors. > > Signed-off-by: Ivan Gorinov <ivan.gori...@intel.com> > --- > arch/x86/kernel/devicetree.c | 42 +++++++++++++++++++++++++++++++----------- > 1 file changed, 31 insertions(+), 11 deletions(-) > > diff --git a/arch/x86/kernel/devicetree.c b/arch/x86/kernel/devicetree.c > index 5cd387f..64671db 100644 > --- a/arch/x86/kernel/devicetree.c > +++ b/arch/x86/kernel/devicetree.c > @@ -131,31 +131,49 @@ static void __init dtb_setup_hpet(void) > #endif > } > > +static void __init dtb_cpu_setup(void) > +{ > + struct device_node *dn; > + const void *prop; > + int prop_bytes; > + int apic_id, version; > + int ret; > + > + version = GET_APIC_VERSION(apic_read(APIC_LVR)); > + for_each_node_by_type(dn, "cpu") { > + prop = of_get_property(dn, "reg", &prop_bytes); > + if (!prop || prop_bytes < sizeof(u32)) { > + pr_warn("%pOF: missing local APIC ID\n", dn); > + continue; > + } > + apic_id = be32_to_cpup(prop);
Please use of_property_read_u32(). Thanks, Mark.