On Fri, Feb 26, 2016 at 11:50:12AM +0000, Lorenzo Pieralisi wrote: > When secondary cpus are booted through the ACPI parking protocol, the > booted cpu should check that FW has correctly cleared its mailbox entry > point value to make sure the boot process was correctly executed. > The entry point check is carried in the cpu_ops->cpu_postboot method, that > is executed by secondary cpus when entering the kernel with irqs disabled. > > The ACPI parking protocol cpu_ops maps/unmaps the mailboxes on the > primary CPU to trigger secondary boot in the cpu_ops->cpu_boot method > and on secondary processors to carry out FW checks on the booted CPU > to verify the boot protocol was successfully executed in the > cpu_ops->cpu_postboot method. > > Therefore, the cpu_ops->cpu_postboot method is forced to ioremap/unmap the > mailboxes, which is wrong in that ioremap cannot be safely be carried out > with irqs disabled. > > To fix this issue, this patch reshuffles the code so that the mailboxes > are still mapped after the boot processor executes the cpu_ops->cpu_boot > method for a given cpu, and the VA at which a mailbox is mapped for a given > cpu is stashed in the per-cpu data struct so that secondary cpus can > retrieve them in the cpu_ops->cpu_postboot and complete the required > FW checks. > > Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi@xxxxxxx> > Reported-by: Itaru Kitayama <itaru.kitayama@xxxxxxxx> > Tested-by: Loc Ho <lho@xxxxxxx> > Tested-by: Itaru Kitayama <itaru.kitayama@xxxxxxxx> > Cc: Will Deacon <will.deacon@xxxxxxx> > Cc: Hanjun Guo <hanjun.guo@xxxxxxxxxx> > Cc: Loc Ho <lho@xxxxxxx> > Cc: Itaru Kitayama <itaru.kitayama@xxxxxxxx> > Cc: Sudeep Holla <sudeep.holla@xxxxxxx> > Cc: Catalin Marinas <catalin.marinas@xxxxxxx> > Cc: Mark Rutland <mark.rutland@xxxxxxx> > Cc: Mark Salter <msalter@xxxxxxxxxx> > Cc: Al Stone <ahs3@xxxxxxxxxx> Applied. Thanks. -- Catalin -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html