Messages in this thread | | | Date | Mon, 26 Jun 2017 13:37:11 -0700 | From | Brian Norris <> | Subject | Re: [PATCH v2] PM / wakeirq: Convert to SRCU |
| |
On Sun, Jun 25, 2017 at 07:31:13PM +0200, Thomas Gleixner wrote: > The wakeirq infrastructure uses RCU to protect the list of wakeirqs. That > breaks the irq bus locking infrastructure, which is 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@chromium.org> > Suggested-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> > --- > drivers/base/power/wakeup.c | 32 ++++++++++++++++++-------------- > 1 file changed, 18 insertions(+), 14 deletions(-)
This resolves the warnings I've seen, for sure. And I don't seem to have any new suspend/resume problems, so:
Tested-by: Brian Norris <briannorris@chromium.org>
| |