Crash after 'reboot' due to 9be4fd2c7723a

Fabio Estevam festevam at
Mon May 23 13:59:37 PDT 2016

On Mon, May 23, 2016 at 5:23 PM, Rafael J. Wysocki <rafael at> wrote:

> For one, if that platform is not capable of raising interrupts for IRQ
> works, I'm not sure why arch_irq_work_has_interrupt() returns true on
> it.

It returns true because the kernel was built with CONFIG_SMP=y.

On ARM we have:

static inline bool arch_irq_work_has_interrupt(void)
    return is_smp();

and then:

static inline bool is_smp(void)
#ifndef CONFIG_SMP
    return false;
#elif defined(CONFIG_SMP_ON_UP)
    extern unsigned int smp_on_up;
    return !!smp_on_up;
    return true;

So if CONFIG_SMP=y,  is_smp() returns 1.

As I mentioned before, the reboot problem does not happen with CONFIG_SMP=n.

More information about the linux-arm-kernel mailing list