Stephen, On Tue, Sep 21 2021 at 11:38, Stephen Boyd wrote: > Quoting Thomas Gleixner (2021-09-19 05:41:18) >> Even if debug objects would support objects on irq stacks, the above is >> still bogus. But it does not and will not because the operations here >> have to be fully synchronous: >> >> init() -> queue() or arm() -> wait() -> destroy() >> >> because you obviously cannot queue work or arm a timer which are on stack >> and then leave the function without waiting for the operation to complete. > > Is there some way to make it more obvious that initializing a timer or > work on the stack in an irq context is a NONO because we can't wait for > it? Maybe some sort of debugobjects call to might_sleep() when it's > being told the object is on the stack, or throwing a might_sleep() into > the initialization of any stack based timer or workqueue, or both? Let me have a look.