On 09/16/2014 03:15 PM, Thomas Falcon wrote: > The ibm,ppc-interrupt-server#s property is in big endian format. > These values need to be converted when used by little endian > architectures. > > Signed-off-by: Thomas Falcon <tlfal...@linux.vnet.ibm.com>
Acked-by: Nathan Fontenot <nf...@linux.vnet.ibm.com> > --- > Changes in v2: > > Followed suggestions from Michael Ellerman > conversion of intserv values occur once > --- > arch/powerpc/platforms/pseries/dlpar.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/dlpar.c > b/arch/powerpc/platforms/pseries/dlpar.c > index 5acbe59..187e4eb 100644 > --- a/arch/powerpc/platforms/pseries/dlpar.c > +++ b/arch/powerpc/platforms/pseries/dlpar.c > @@ -363,7 +363,8 @@ static int dlpar_online_cpu(struct device_node *dn) > int rc = 0; > unsigned int cpu; > int len, nthreads, i; > - const u32 *intserv; > + const __be32 *intserv; > + u32 thread; > > intserv = of_get_property(dn, "ibm,ppc-interrupt-server#s", &len); > if (!intserv) > @@ -373,8 +374,9 @@ static int dlpar_online_cpu(struct device_node *dn) > > cpu_maps_update_begin(); > for (i = 0; i < nthreads; i++) { > + thread = be32_to_cpu(intserv[i]); > for_each_present_cpu(cpu) { > - if (get_hard_smp_processor_id(cpu) != intserv[i]) > + if (get_hard_smp_processor_id(cpu) != thread) > continue; > BUG_ON(get_cpu_current_state(cpu) > != CPU_STATE_OFFLINE); > @@ -388,7 +390,7 @@ static int dlpar_online_cpu(struct device_node *dn) > } > if (cpu == num_possible_cpus()) > printk(KERN_WARNING "Could not find cpu to online " > - "with physical id 0x%x\n", intserv[i]); > + "with physical id 0x%x\n", thread); > } > cpu_maps_update_done(); > > _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev