Re: [PATCH] Bluetooth: btusb: use irqsave() in URB's complete callback
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2018-06-21 12:52:07
Also in:
linux-usb
From: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Date: 2018-06-21 12:52:07
Also in:
linux-usb
On 2018-06-21 14:43:41 [+0200], Marcel Holtmann wrote:
Hi Sebastian,
Hi Marcel,
quoted
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. Cc: Marcel Holtmann <marcel@holtmann.org> Cc: Johan Hedberg <redacted> Cc: linux-bluetooth@vger.kernel.org Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- drivers/bluetooth/btusb.c | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-)can I get an ACK from someone ensuring that this is the direction we are going with the USB host controllers?
+Alan. EHCI completes in BH since v3.12-rc1. In order to get rid of that local_irq_save() in USB core code I need to make sure that the USB device driver(s) use irqsave primitives. See https://lkml.kernel.org/r/Pine.LNX.4.44L0.1806011629140.1404-100000@iolanthe.rowland.org
Regards Marcel
Sebastian