Subject: [BK PATCH] USB bug fixes for 2.4.20-pre10
From: Greg KH <[email-masked]>
To: [email-masked]
Cc: [email-masked], [email-masked]

Hi,

Here are some small USB bug fixes for 2.4.20-pre10.

Pull from:  bk://linuxusb.bkbits.net/marcelo-2.4

The individual patches will be sent in follow up messages to this email.

thanks,

greg k-h

 Documentation/Configure.help |   21 +++++++++++++++++++++
 drivers/usb/hid-input.c      |    2 +-
 drivers/usb/inode.c          |    2 ++
 drivers/usb/serial/pl2303.c  |    2 +-
 4 files changed, 25 insertions(+), 2 deletions(-)
-----

[email-masked], 2002-10-11 11:02:51-07:00, [email-masked]
  [PATCH] USB: fix ctsrts handling in pl2303 driver.
  
  Thanks to the prolific engineers for pointing this out to me.

 drivers/usb/serial/pl2303.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
------

[email-masked], 2002-10-11 11:02:23-07:00, [email-masked]
  [PATCH] Configure.help entry for CONFIG_USB_MIDI

 Documentation/Configure.help |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+)
------

[email-masked], 2002-10-11 11:02:13-07:00, [email-masked]
  [PATCH] hid-input: fix find_next_zero_bit usage
  
    It was swapping the parameters, using the bitfield size for the
    offset and the offset for the bitfield size. With this the mouse
    buttons in my wireless USB keyboard finally works 8) 2.4 has the
    same problem.

 drivers/usb/hid-input.c |    2 +-
 1 files changed, 1 insertion(+), 1 deletion(-)
------

[email-masked], 2002-10-11 11:02:02-07:00, [email-masked]
  [PATCH] usbfs race while mounting/umounting
  
  I use usbfs, but normally have only a single USB device connected, a
  generic mouse.  When usbfs is unmounted on shutdown, I see "BUG at
  inode.c:1034" in between 5% and 50% of all cases, the backtrace being
  iput(), free_inode(), usbdevfs_put_super(), kill_super(), __mntput(),
  etc.
  
  I believe this to be a long standing problem, I remember seeing this
  in 2.2.x as well, more than a year ago.  Then I moved the mouse to a
  2.4.x system, and I've seen the problem ever since.  As a workaround,
  I have moved the "umount /proc/bus/usb" after all disk umounts, but I
  believe I've now finally tracked down the cause.
  
  drivers/usb/inode.c says that all calls of its inode-list-manipulating
  functions must occur with the kernel lock held.  usbdevfs_read_super()
  does _not_ do this, however, and I strongly suspect that my mouse is
  auto-detected (occasionally) exactly while usbfs is being mounted.
  The result is that the same inode ends up twice in usbfs's lists,
  hence the "BUG in inode.c:1034" when it is iput() twice on shutdown.
  The appended patch has fixed the problem for me, although I've only
  done a few boot cycles with it.

 drivers/usb/inode.c |    2 ++
 1 files changed, 2 insertions(+)
------