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.

Reply via email to