Subject: Re: [2/4] libertas_tf: use irqsave() in USB's complete callback

From: Kalle Valo <[email-masked]>
Date: Wed, 27 Jun 2018 16:13:57 +0000 (UTC)

Sebastian Andrzej Siewior <[email-masked]> wrote:

> The USB completion callback does not disable interrupts while acquiring
> the lock. We want to remove the local_irq_disable() invocation from
> __usb_hcd_giveback_urb() and therefore it is required for the callback
> handler to disable the interrupts while acquiring the lock.
> The callback may be invoked either in IRQ or BH context depending on the
> USB host controller.
> Use the _irqsave() variant of the locking primitives.
> 
> I am removing the
> 	BUG_ON(!in_interrupt());
> 
> check because it serves no purpose. Running the completion callback in
> BH context makes in_interrupt() still return true but the interrupts
> could be enabled. The important part is that ->driver_lock is acquired
> with disabled interrupts which is the case now.
> 
> Cc: Kalle Valo <[email-masked]>
> Cc: "David S. Miller" <[email-masked]>
> Cc: [email-masked]
> Signed-off-by: Sebastian Andrzej Siewior <[email-masked]>

3 patches applied to wireless-drivers-next.git, thanks.

fc75122fabb5 libertas_tf: use irqsave() in USB's complete callback
a3128feef6d5 libertas: use irqsave() in USB's complete callback
81454b8405f2 zd1211rw: use irqsave() in USB's complete callback

-- 
https://patchwork.kernel.org/patch/10478609/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches