Re: PM / wakeirq: Convert to SRCU
From: Thomas Gleixner
Date: Sat Jun 24 2017 - 08:13:57 EST
On Sat, 24 Jun 2017, Rafael J. Wysocki wrote:
> On Sat, Jun 24, 2017 at 11:56 AM, Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
> > The wakeirq infrastructure uses RCU to protect the list of wakeirqs. That
> > breaks the irq bus locking infrastructure, which allows sleeping functions
> > to be called so interrupt controllers behind slow busses, e.g. i2c, can be
> > handled.
> >
> > The wakeirq functions hold rcu_read_lock and call into irq functions, which
> > in case of interrupts using the irq bus locking will trigger a
> > might_sleep() splat.
> >
> > Convert the wakeirq infrastructure to Sleepable RCU and unbreak it.
> >
> > Fixes: 4990d4fe327b ("PM / Wakeirq: Add automated device wake IRQ handling")
> > Reported-by: Brian Norris <briannorris@xxxxxxxxxxxx>
> > Suggested-by: Paul E. McKenney <paulmck@xxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > Cc: stable@xxxxxxxxxxxxxxx
>
> OK
>
> I guess it would be good to get this into 4.12?
I think so, but it probably wants some testing and breeding in next.
Thanks,
tglx