Re: [patch V2 2/6] genirq: Fix misleading synchronize_irq() documentation

From: Peter Zijlstra
Date: Mon Jul 01 2019 - 10:53:46 EST


On Fri, Jun 28, 2019 at 01:11:50PM +0200, Thomas Gleixner wrote:
> The function might sleep, so it cannot be called from interrupt
> context. Not even with care.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> ---
> kernel/irq/manage.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> --- a/kernel/irq/manage.c
> +++ b/kernel/irq/manage.c
> @@ -96,7 +96,8 @@ EXPORT_SYMBOL(synchronize_hardirq);
> * to complete before returning. If you use this function while
> * holding a resource the IRQ handler may need you will deadlock.
> *
> - * This function may be called - with care - from IRQ context.
> + * Can only be called from preemptible code as it might sleep when
> + * an interrupt thread is associated to @irq.
> */
> void synchronize_irq(unsigned int irq)
> {

+ might_sleep();

?