1. 09 Jun, 2004 2 commits
    • Alan Stern's avatar
      [PATCH] USB: Fix bus-list root-hub race · f1eb6dba
      Alan Stern authored
      There are a few places where the code enumerates through all the USB
      devices on all the buses, starting with each bus's root hub and working
      down.  However a bus does not always have a root hub, and the code does
      not check that the root_hub pointer is non-NULL.  This patch fixes the
      problem, using the usb_bus_list_lock semaphore to synchronize access when
      root hubs are added or removed.
      
      In addition it seemed like a good idea to minimize the time that a
      non-fully-configured root hub is accessible through the bus's pointer.  So
      this patch delays setting the pointer and holds usb_bus_list_lock while
      configuring a root hub.
      
      It turned out that a bunch of things needed to be changed for all this to
      work:
      
      	Check for NULL root_hub pointer in usb_device_read() and
      	usb_find_device().
      
      	Pass the root-hub device as a separate argument to
      	hcd_register_root().
      
      	Make usb_register_root_hub() acquire the usb_bus_list_lock and
      	set the bus->root_hub pointer.
      
      	For consistency's sake, move the place where the children[]
      	pointer to a non-root-hub device gets stored as close as possible
      	to where usb_new_device() is called.
      
      	Make usb_disconnect() acquire the usb_bus_list_lock when removing
      	a root hub.
      
      	Change usb_hcd_pci_remove() and the non-PCI host drivers so that
      	they call usb_disconnect() with a pointer to the bus's root_hub
      	pointer, not a pointer to a temporary variable.
      
      	Change all the host controller drivers not to store the root_hub
      	pointer in the bus structure but instead to pass it as a new
      	argument to hcd_register_root().
      
      I made some attempt to update the hc_sl811 driver along with the rest, but
      it's pretty clear that driver won't work in the current framework.  Among
      other things, it never reads the root hub's device descriptor.  To what
      extent is the driver really supported?
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      f1eb6dba
    • Oliver Neukum's avatar
      [PATCH] USB: add printer reset ioctl · 18e63cd5
      Oliver Neukum authored
        - add soft reset ioctl
      Signed-off-by: default avatarOliver Neukum <oliver@neukum.name>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      18e63cd5
  2. 08 Jun, 2004 19 commits
  3. 07 Jun, 2004 19 commits
    • David S. Miller's avatar
      Merge davem@nuts.davemloft.net:/disk1/BK/net-2.6 · edc3435b
      David S. Miller authored
      into kernel.bkbits.net:/home/davem/net-2.6
      edc3435b
    • David Brownell's avatar
      [PATCH] USB: rndis (4/4) start documenting spec variances · 123615f1
      David Brownell authored
      This partially reverts one of the changes in an earlier patch,
      starting to document where Microsoft's spec is lying.  Needed
      to interop with Windows ME.
      
      
      The Windows ME implementation of RNDIS relies on a message that
      Microsoft's specification says isn't used.  Restore this (removed
      in earlier cleanup), and start collecting comments specifically
      on where MSFT violates its own specifications.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      123615f1
    • David Brownell's avatar
      [PATCH] USB: rndis (2/4) fix memory leaks · ebf02028
      David Brownell authored
      Tao Huang wrote:
      > I'm writing udc driver for S3C2410. I found RNDIS almost not call my
      > driver's free_request and free_buffer. So after run my driver about 3
      > hours the system will out of memory.
      >
      > This patch will fix the memory leak.
      >
      > There will still have memory leak when driver unload, but I don't known
      > where is the proper place to fix it.
      > 1) rndis.c should free resp_queue when it unload
      > 2) ether.c should free tx_reqs and rx_reqs when it unload (as
      > eth_reset_config)
      
      Thanks ... this is a nice patch to have.
      
      
      From:          Tao Huang <huangt@star-net.cn>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      ebf02028
    • David Brownell's avatar
      [PATCH] USB: rndis (1/4) update OID support · e9bcd70c
      David Brownell authored
      NDIS devices have a generic attribute get/set API where the attributes
      are identified by 32 bit "OIDs".  This fixes some problems with the OIDs
      supported by the original RNDIS patch:
      
        - It included OIDs not found in the RNDIS spec.  These have been
          removed.  As a rule, these weren't exported in the "OIDs I support"
          list, and only a couple wouldn't fail those accesses, so this mostly
          changes what debug printk appears.
      
        - OIDs used for optional 802.3 statistics were partially supported.
          They're all in the OID list now, but the support is #ifdeffed out.
          (Those statistics were mostly just made up, anyway!)
      
        - "Required" OIDs for suspend, resume, and wakeup support weren't
          listed.  Their messages are now defined, but support is #ifdeffed
          out.  Seems the docs aren't entirely accurate, and Windows can
          behave reasonably without them.  (This area needs help from someone
          who knows MS-Windows power management.)
      
      There are also a few minor cleanups, more reasonable default volume level
      for debug messages (never at KERN_INFO, keepalives only if VERBOSE), and
      dumping of all bytes of some undocumented messages Windows XP has been
      seen emitting shortly before the host suspended itself.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      e9bcd70c
    • Alan Stern's avatar
      [PATCH] USB: unusual_devs.h update · 5d14ffeb
      Alan Stern authored
      Given the problems that Dan Scholnik has reported, we should combine the
      unusual_devs.h entries for the Casio QV cameras into one.  The new
      NEED_OVERRIDE flag will prevent complaints about unnecessary overrides,
      and Dan says the same subclass and protocol values should work for all the
      cameras.  If they don't we'll hear about it soon enough!
      
      
      On Tue, 1 Jun 2004, Dan Scholnik wrote:
      > On Tue, 2004-06-01 at 14:14, Alan Stern wrote:
      > > On Tue, 1 Jun 2004, Dan Scholnik wrote:
      > >
      > > > Up until the 2.6 kernels, there was one entry for all the QV cameras
      > > > with both US_SC_8070 and US_PR_CB that I think seemed to work fine for
      > > > everyone.  As far as I know the only problem was all the folks emailing
      > > > the log entry stating that the Casio entry wasn't needed.  So, you could
      > > > revert back to that, or revert back to the 2.6.3ish version (pre-as190)
      > > > that had the overrides just for product IDs 1001-9009.  I'm not really
      > > > an expert on Casio's cameras, I'm afraid, just the one model I own which
      > > > is 4-5 years old now.
      > > >
      > > > I'll be happy to prepare a patch any way you choose to go.
      > >
      > > How does this work for you?
      > >
      > > Alan Stern
      >
      > Works fine for me; that's I think exactly how it was from the beginning
      > until 2.6 and the later 2.4 kernels when all the changes were made.
      > Just cross your fingers that it doesn't somehow break newer Casios, as
      > it would seem every camera they ever made falls under that entry.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      5d14ffeb
    • Alan Stern's avatar
      [PATCH] USB: Fix resource leakage in the hub driver · 729f806b
      Alan Stern authored
      The hub driver is very careless about returning resources when an error
      occurs while installing a new device.  This patch attempts to put some
      order back into the situation.  Details:
      
      	Since usb_new_device() allocates neither the device structure
      	nor the device address, it shouldn't release either one.
      
      	Because usb_new_device() no longer releases the device structure,
      	usb_register_root_hub() doesn't need to take an extra reference
      	to it.
      
      	Since the device address selection and TT setup code is used
      	only for new devices, not ones being reset, move that code from
      	hub_port_init() to hub_port_connect_change().  By the same token,
      	hub_port_init() doesn't have to release the device address or
      	the device structure.
      
      	Just to make things look better, move the failure code in
      	hub_port_init() to the end of the routine.  And when disabling
      	endpoint 0, disable both the IN and OUT parts of the endpoint.
      
      	In hub_port_connect_change(), make all the failure paths
      	execute the same code so that resources are always released.
      	These resources comprise: the pointer from the parent to the
      	new child device, the HCD state for ep0, the device's address,
      	and the device structure itself -- in short, everything that's
      	set up before calling usb_new_device().
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      729f806b
    • Alan Stern's avatar
      [PATCH] USB: Check port reset return code · 70244527
      Alan Stern authored
      This patch adds checking for the SET-FEATURE request that actually does a
      port reset.  Without the check, the hub driver just assumes that the port
      reset command actually was transferred okay.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      70244527
    • Duncan Sands's avatar
      [PATCH] USB devio.c: deadlock fix · 15903813
      Duncan Sands authored
      proc_resetdevice is called with dev->serialize held.
      usb_reset_device takes dev->serialize and then calls
      __usb_reset_device.  To avoid deadlock, proc_resetdevice
      should call __usb_reset_device directly.
      Signed-off-by: default avatarDuncan Sands <baldrick@free.fr>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      15903813
    • David S. Miller's avatar
      e3e77f6e
    • Stephen Hemminger's avatar
      81cfe912
    • Stephen Hemminger's avatar
      66b992e8
    • Duncan Sands's avatar
      [PATCH] USB devio.c: deadlock fix · a6df4e9c
      Duncan Sands authored
      proc_resetdevice is called with dev->serialize held.
      usb_reset_device takes dev->serialize and then calls
      __usb_reset_device.  To avoid deadlock, proc_resetdevice
      should call __usb_reset_device directly.
      Signed-off-by: default avatarDuncan Sands <baldrick@free.fr>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      a6df4e9c
    • Andrew Morton's avatar
      [PATCH] i386 defconfig update · 686b4f33
      Andrew Morton authored
      Updates i386 defconfig.  I simply ran `make oldconfig' and selected `m' where
      it was available, otherwise `y'.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      686b4f33
    • Andrew Morton's avatar
      [PATCH] make buildcheck missing hunk · e3d0c703
      Andrew Morton authored
      Forgot to update the top-level makefile to invoke the new reference_init
      script.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      e3d0c703
    • Kai Engert's avatar
      [PATCH] USB: enable pwc usb camera driver · 5bdcd0d5
      Kai Engert authored
      The attached patch enables the pwc driver included with kernel 2.6.7-rc2
      
      It also removes the warnings during compilation.
      However, note that I blindly duplicated the release approach used by
      other usb camera drivers, replacing the current no-op.
      
      The driver works for me with a Logitech QuickCam Notebook Pro and
      GnomeMeeting.
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      5bdcd0d5
    • Siegfried Hildebrand's avatar
      [PATCH] USB: Fix problems with cyberjack usb-serial-module since kernel 2.6.2 · 08786bea
      Siegfried Hildebrand authored
      > Send me a patch to back those changes out to fix your device and I'll
      > apply it.  If the author is around to realize this, that should wake
      > them up :)
      
      Ok, here you are! :)
      Attached is a patch for linux-2.6.7-rc2. (though the patch hasn't changed
      since -rc1)
      
      Again a short description:
      (the patch removes most of the changes done in linux-2.6.2)
      1. Removed the local buffer of cyberjack_write, because something goes wrong
      upon a write-request bigger than the buffer. Without this, a write-request
      stalls with error -3.
      2. Removed some usb_clear_halt() lines. Without this, the device doesn't even
      open and returns -7.
      
      It works for my cyberjack pinpad USB card reader on
      - nforce2 chipset
      - VIA KM266 chipset
      - AMD Irongate chipset
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      08786bea
    • Alan Stern's avatar
      [PATCH] USB: Fix logic in usb_get_descriptor() · 945fef15
      Alan Stern authored
      This patch fixes a simple logic error in usb_get_descriptor().  It also
      takes the opportunity to make the subroutine a little easier to read.
      Please apply.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      945fef15
    • Kai Engert's avatar
      [PATCH] USB: enable pwc usb camera driver · 554b4fbd
      Kai Engert authored
      The attached patch enables the pwc driver included with kernel 2.6.7-rc2
      
      It also removes the warnings during compilation.
      However, note that I blindly duplicated the release approach used by
      other usb camera drivers, replacing the current no-op.
      
      The driver works for me with a Logitech QuickCam Notebook Pro and
      GnomeMeeting.
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      554b4fbd
    • Matthew Dharm's avatar
      [PATCH] USB Storage: GetMaxLUN tightening · adc625da
      Matthew Dharm authored
      This patch started life from Alan Stern as as274, and has been heavily
      modified.  It narrows the case where a clear_halt() is issued after a
      failed GetMaxLUN command to only a STALL case.
      
      Since the only legimate responses to a GetMaxLUN are STALL or data,
      anything else is now considered a fatal error and we give up on the device.
      Signed-off-by: default avatarMatthew Dharm <mdharm-usb@one-eyed-alien.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      adc625da