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

Kumar Gala galak at kernel.crashing.org
Sat Sep 28 03:09:32 EST 2013


On Sep 27, 2013, at 11:15 AM, Scott Wood wrote:

> On Fri, 2013-09-27 at 10:52 -0500, Kumar Gala wrote:
>> 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() ?
> 
> Because the debug check might be valid for other callers and we don't
> want to defeat it.  In this caller it's used only as a heuristic and
> thus it doesn't matter if we re-enable preemption before using the
> result.

Gotcha, I think you should reword the commit message.  Reading it makes me think that preemption should be disabled for all mpic_processor_id() calls.

- k


More information about the Linuxppc-dev mailing list