On 2011-10-28 14:16, Michael Thalmeier wrote: > In commit 44a0c0190b500ee6bcfc0976fe540f65dee2cd67 unlocking of spin_locks has > been removed. This patch party restores this functionality. > > Signed-off-by: Michael Thalmeier <michael.thalmeier@xxxxxxx> > --- > drivers/usb/gadget/u_serial.c | 9 +++++++++ > 1 files changed, 9 insertions(+), 0 deletions(-) > > diff --git a/drivers/usb/gadget/u_serial.c b/drivers/usb/gadget/u_serial.c > index 40f7716..a925b9e 100644 > --- a/drivers/usb/gadget/u_serial.c > +++ b/drivers/usb/gadget/u_serial.c > @@ -553,7 +553,16 @@ recycle: > * a workqueue, so we won't get callbacks and can hold port_lock > */ > if (tty && do_push) { > + /* > + * Drop the lock here since it might end up calling > + * gs_flush_chars, which takes the lock. > + */ > + spin_unlock_irq(&port->port_lock); > tty_flip_buffer_push(tty); > + spin_lock_irq(&port->port_lock); > + > + /* tty may have been closed */ > + tty = port->port_tty; > } > > In the function tty_flip_buffer_push the PRREMPT_RT patch changes the behaviour. Most serial drivers (those that don't set low_latency) assume that work is only scheduled and not executed immediately in current context. This patch only fixes this driver but other serial drivers likely have similar problems. Michael -- Scanned by MailScanner. -- To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html