All of lore.kernel.org
 help / color / mirror / Atom feed
From: Johan Hovold <johan@kernel.org>
To: Greg KH <greg@kroah.com>
Cc: Johan Hovold <johan@kernel.org>,
	linux-usb@vger.kernel.org, stable <stable@vger.kernel.org>
Subject: Re: [PATCH] USB: serial: suppress driver bind attributes
Date: Fri, 17 Jan 2020 11:13:03 +0100	[thread overview]
Message-ID: <20200117101303.GQ2301@localhost> (raw)
In-Reply-To: <20200116190606.GB1020857@kroah.com>

On Thu, Jan 16, 2020 at 08:06:06PM +0100, Greg Kroah-Hartman wrote:
> On Thu, Jan 16, 2020 at 05:24:24PM +0100, Johan Hovold wrote:
> > On Thu, Jan 16, 2020 at 05:18:29PM +0100, Greg Kroah-Hartman wrote:
> > > On Thu, Jan 16, 2020 at 05:07:05PM +0100, Johan Hovold wrote:
> > > > USB-serial drivers must not be unbound from their ports before the
> > > > corresponding USB driver is unbound from the parent interface so
> > > > suppress the bind and unbind attributes.
> > > > 
> > > > Unbinding a serial driver while it's port is open is a sure way to
> > > > trigger a crash as any driver state is released on unbind while port
> > > > hangup is handled on the parent USB interface level. Drivers for
> > > > multiport devices where ports share a resource such as an interrupt
> > > > endpoint also generally cannot handle individual ports going away.
> > > > 
> > > > Cc: stable <stable@vger.kernel.org>
> > > > Signed-off-by: Johan Hovold <johan@kernel.org>
> > > > ---
> > > >  drivers/usb/serial/usb-serial.c | 3 +++
> > > >  1 file changed, 3 insertions(+)
> > > > 
> > > > diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
> > > > index 8f066bb55d7d..dc7a65b9ec98 100644
> > > > --- a/drivers/usb/serial/usb-serial.c
> > > > +++ b/drivers/usb/serial/usb-serial.c
> > > > @@ -1317,6 +1317,9 @@ static int usb_serial_register(struct usb_serial_driver *driver)
> > > >  		return -EINVAL;
> > > >  	}
> > > >  
> > > > +	/* Prevent individual ports from being unbound. */
> > > > +	driver->driver.suppress_bind_attrs = true;
> > > 
> > > We can still unbind the usb driver though, right?  If so, this is fine
> > > with me.
> > 
> > Right, this is only about disabling individual ports, something which
> > essentially no subdriver can handle while a port is open (e.g. port-data
> > set to NULL while port is still open... boom).
> 
> Ok, thanks for verifying, and sorry for writing that bug in the first
> place :)
> 
> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Heh, thanks for reviewing.

Johan

      reply	other threads:[~2020-01-17 10:13 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-16 16:07 [PATCH] USB: serial: suppress driver bind attributes Johan Hovold
2020-01-16 16:18 ` Greg KH
2020-01-16 16:24   ` Johan Hovold
2020-01-16 19:06     ` Greg KH
2020-01-17 10:13       ` Johan Hovold [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200117101303.GQ2301@localhost \
    --to=johan@kernel.org \
    --cc=greg@kroah.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.