Messages in this thread Patch in this message | | | Date | Wed, 5 Aug 2015 18:11:17 +0800 | From | Chenhui Zhao <> | Subject | Re: [PATCH 1/3] Powerpc: mpc85xx: refactor the PM operations |
| |
On Tue, Aug 4, 2015 at 4:26 AM, Scott Wood <scottwood@freescale.com> wrote: > On Mon, 2015-08-03 at 19:32 +0800, Chenhui Zhao wrote: >> > > >> On Sat, Aug 1, 2015 at 7:59 AM, Scott Wood <scottwood@freescale.com> >> wrote: > >> > >> > Could you explain irq_mask()? Why would there still be IRQs >> destined >> > for >> > this CPU at this point? >> >> This function just masks irq by setting the registers in RCPM (for >> example, RCPM_CPMIMR, RCPM_CPMCIMR). Actually, all irqs to this CPU >> have been migrated to other CPUs. > > So why do we need to set those bits in RCPM? Is it just caution?
Setting these bits can mask interrupts signalled to RCPM from MPIC as a means of waking up from a lower power state. So, cores will not be waked up unexpectedly.
> >> > @@ -431,21 +415,9 @@ void __init mpc85xx_smp_init(void) >> > > smp_85xx_ops.probe = NULL; >> > > } >> > > >> > > - np = of_find_matching_node(NULL, mpc85xx_smp_guts_ids); >> > > - if (np) { >> > > - guts = of_iomap(np, 0); >> > > - of_node_put(np); >> > > - if (!guts) { >> > > - pr_err("%s: Could not map guts node >> > > address\n", >> > > - >> > > __func__); >> > > - return; >> > > - } >> > > - smp_85xx_ops.give_timebase = >> mpc85xx_give_timebase; >> > > - smp_85xx_ops.take_timebase = >> mpc85xx_take_timebase; >> > > #ifdef CONFIG_HOTPLUG_CPU >> > > - ppc_md.cpu_die = smp_85xx_mach_cpu_die; >> > > + ppc_md.cpu_die = qoriq_cpu_dying; >> > > #endif >> > >> > Shouldn't you make sure there's a valid qoriq_pm_ops before >> setting >> > cpu_die()? Or make sure that qoriq_cpu_dying() works regardless. >> > >> > -Scott >> >> This patch is just for e500v2. The following patches will handle the >> case of e500mc, e5500 and e6500. > > What stops a user from trying to use cpu hotplug on unsupported cpus, > or in a > virtualized environment, and crashing here? > > -Scott
Will set these callback functions only if qoriq_pm_ops is valid.
-Chenhui
| |