Re: [PATCH] Re: usb-serial ipaq kernel problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 23, 2006 at 12:04:59AM +0200, Frank Gevaerts wrote:
> On Mon, May 22, 2006 at 02:44:03PM -0700, Greg KH wrote:
> > On Mon, May 22, 2006 at 04:30:48PM +0200, Frank Gevaerts wrote:
> > > Hi, 
> > > 
> > > We are having problems with the usb-serial ipaq driver in 2.6.16 (debian
> > > backports 2.6.16-1-686, but also reproducible with self-compiled
> > > kernel.org kernel)
> > > 
> > > Sometimes, we get the following on disconnect:
> > 
> > <snip>
> > 
> > Can you duplicate this on 2.6.17-rc4?  A number of tty changes went into
> > that release that should have fixed this issue.
> 
> I'll try it in the morning. In the meantime, we found some other
> problems in ipaq.c : apparently pocketpc accepts usb enumeration long
> before it accepts usb-serial commands (sometimes 50 or more seconds),
> which makes ipaq_open fail. When it fails, the read urb is not killed,
> while the associated structures are freed, which gives a panic when
> the urb completes. The following patch solves that :
> Since changing this, I also have not seen the original problem anymore,
> but I will do some more testing tomorrow.

I cannot reproduce the original problem anymore with my patch applied

Frank

> 
> Signed-off-by: Frank Gevaerts <[email protected]>
> 
> --- linux-2.6.16/drivers/usb/serial/ipaq.c      2006-03-20 06:53:29.000000000 +0100
> +++ linux-2.6.16.ipaq/drivers/usb/serial/ipaq.c 2006-05-23 00:00:33.000000000 +0200
> @@ -59,7 +59,7 @@
>  #include "usb-serial.h"
>  #include "ipaq.h"
>  
> -#define KP_RETRIES     100
> +#define KP_RETRIES     1000
>  
>  /*
>   * Version Information
> @@ -652,12 +652,6 @@
>                       usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress),
>                       port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length,
>                       ipaq_read_bulk_callback, port);
> -       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
> -       if (result) {
> -               err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
> -               goto error;
> -       }
> -
>         /*
>          * Send out control message observed in win98 sniffs. Not sure what
>          * it does, but from empirical observations, it seems that the device
> @@ -671,8 +665,15 @@
>                                 usb_sndctrlpipe(serial->dev, 0), 0x22, 0x21,
>                                 0x1, 0, NULL, 0, 100);
>                 if (result == 0) {
> +                       result = usb_submit_urb(port->read_urb, GFP_KERNEL);
> +                       if (result) {
> +                               err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
> +                               goto error;
> +                       }
> +
>                         return 0;
>                 }
> +                msleep(100);
>         }
>         err("%s - failed doing control urb, error %d", __FUNCTION__, result);
>         goto error;
> 
> > 
> > thanks,
> > 
> > greg k-h
> > 
> 
> -- 
> Frank Gevaerts                                 [email protected]
> fks bvba - Formal and Knowledge Systems        http://www.fks.be/
> Stationsstraat 108                             Tel:  ++32-(0)11-21 49 11
> B-3570 ALKEN                                   Fax:  ++32-(0)11-22 04 19

-- 
Frank Gevaerts                                 [email protected]
fks bvba - Formal and Knowledge Systems        http://www.fks.be/
Stationsstraat 108                             Tel:  ++32-(0)11-21 49 11
B-3570 ALKEN                                   Fax:  ++32-(0)11-22 04 19
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux