Re: [PATCH 098/150] USB: serial: add modem-status-change wait queue

From: Luis Henriques
Date: Wed Mar 27 2013 - 05:35:23 EST


On Tue, Mar 26, 2013 at 04:31:18PM +0100, Johan Hovold wrote:
> On Tue, Mar 26, 2013 at 03:19:57PM +0000, Luis Henriques wrote:
> > 3.5.7.9 -stable review patch. If anyone has any objections, please let me know.
>
> This patch is incorrect as the wait-queue initialisation is missing. A
> fix has been posted to linux-usb:
>
> http://marc.info/?l=linux-usb&m=136428758202815&w=2
>
> and should show up in 3.9-rc5. This patch and the following
> use-after-free patches should not be applied without that fix.

Ups, I missed that. Thanks Johan, I'll drop these patches for now and
will queued them again to 3.5 later.

Cheers,
--
Luis


>
> Johan
>
> > ------------------
> >
> > From: Johan Hovold <jhovold@xxxxxxxxx>
> >
> > commit e5b33dc9d16053c2ae4c2c669cf008829530364b upstream.
> >
> > Add modem-status-change wait queue to struct usb_serial_port that
> > subdrivers can use to implement TIOCMIWAIT.
> >
> > Currently subdrivers use a private wait queue which may have been
> > released when waking up after device disconnected.
> >
> > Note that we're adding a new wait queue rather than reusing the tty-port
> > one as we do not want to get woken up at hangup (yet).
> >
> > Signed-off-by: Johan Hovold <jhovold@xxxxxxxxx>
> > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> > Signed-off-by: Luis Henriques <luis.henriques@xxxxxxxxxxxxx>
> > ---
> > include/linux/usb/serial.h | 2 ++
> > 1 file changed, 2 insertions(+)
> >
> > diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
> > index 86c0b45..0b61f01 100644
> > --- a/include/linux/usb/serial.h
> > +++ b/include/linux/usb/serial.h
> > @@ -66,6 +66,7 @@
> > * port.
> > * @flags: usb serial port flags
> > * @write_wait: a wait_queue_head_t used by the port.
> > + * @delta_msr_wait: modem-status-change wait queue
> > * @work: work queue entry for the line discipline waking up.
> > * @throttled: nonzero if the read urb is inactive to throttle the device
> > * @throttle_req: nonzero if the tty wants to throttle us
> > @@ -112,6 +113,7 @@ struct usb_serial_port {
> >
> > unsigned long flags;
> > wait_queue_head_t write_wait;
> > + wait_queue_head_t delta_msr_wait;
> > struct work_struct work;
> > char throttled;
> > char throttle_req;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/