[PATCH] powerpc/mpic: Disable preemption when calling mpic_processor_id()

Kumar Gala galak at kernel.crashing.org
Sat Sep 28 01:52:52 EST 2013


On Sep 26, 2013, at 7:18 PM, Scott Wood wrote:

> Otherwise, we get a debug traceback due to the use of
> smp_processor_id() (or get_paca()) inside hard_smp_processor_id().
> mpic_host_map() is just looking for a default CPU, so it doesn't matter
> if we migrate after getting the CPU ID.
> 
> Signed-off-by: Scott Wood <scottwood at freescale.com>
> ---
> arch/powerpc/sysdev/mpic.c | 8 +++++++-
> 1 file changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
> index 1be54fa..bdcb858 100644
> --- a/arch/powerpc/sysdev/mpic.c
> +++ b/arch/powerpc/sysdev/mpic.c
> @@ -1088,8 +1088,14 @@ static int mpic_host_map(struct irq_domain *h, unsigned int virq,
> 	 * is done here.
> 	 */
> 	if (!mpic_is_ipi(mpic, hw) && (mpic->flags & MPIC_NO_RESET)) {
> +		int cpu;
> +
> +		preempt_disable();
> +		cpu = mpic_processor_id(mpic);
> +		preempt_enable();
> +

Any reason you didn't stick this inside of mpic_processor_id() ?

> 		mpic_set_vector(virq, hw);
> -		mpic_set_destination(virq, mpic_processor_id(mpic));
> +		mpic_set_destination(virq, cpu);
> 		mpic_irq_set_priority(virq, 8);
> 	}
> 
> -- 
> 1.8.1.2
> 
> 
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev at lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev



More information about the Linuxppc-dev mailing list