[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