Re: [linux-usb-devel] [PATCH] visor: Fix Oops on disconnect

Greg KH
2004-05-24T20:11:17Z

On Mon, May 24, 2004 at 01:20:45PM -0400, nardelli wrote:
> Greg KH wrote:
> >On Fri, May 21, 2004 at 06:04:46PM -0400, nardelli wrote:
> >
> >>Maybe I spoke too soon here. We have 1 bulk in, 2 bulk out, and 1
> >>interrupt
> >>in endpoint, which by the logic in usb-serial, translates to 2 ports.
> >>Only
> >>one of those ports can have a read_urb associated with it, unless we want
> >>to
> >>do some really fancy juggling. This means that we're going to have a port
> >>that does not have a valid read_urb associated with it, even after open().
> >
> >
> >But the call to open() fails, which prevents any of the other tty calls
> >from happening on that port. That's why we don't need to make that
> >check anywhere else.
> >
> >
>
> The call to open() does not fail

Today, that call does fail:

if (!port->read_urb) {
/* this is needed for some brain dead Sony devices */
dev_err(&port->dev, "Device lied about number of ports, please use a lower one.\n");
return -ENODEV;
}

Let's not change that logic please.

> - with only a write_urb associated with it,
> it's not a very interesting port, but data can be written to it, at least in
> small quantities (see below).

But why? Do you know some kind of protocol that this endpoint can
accept that is valid for the device? If not, let's not mess with it.

thanks,

greg k-h