1. 03 Nov, 2004 9 commits
  2. 01 Nov, 2004 31 commits
    • Greg Kroah-Hartman's avatar
      Merge gregkh@kernel.bkbits.net:linux/usb-2.6 · 9b3087e9
      Greg Kroah-Hartman authored
      into kroah.com:/home/greg/linux/BK/usb-2.6
      9b3087e9
    • Alan Stern's avatar
      [PATCH] UHCI: Use a sane timeout for device initialization · f61aa42b
      Alan Stern authored
      This patch changes the device initialization code for the UHCI driver to
      use a more meaningful timeout than simply waiting for 1000 loop
      iterations.  It also causes the code to fail when a timeout occurs rather
      than proceed blindly.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      f61aa42b
    • Adrian Bunk's avatar
      [PATCH] USB ohci-dbg.c: remove an unused function · 842bbc53
      Adrian Bunk authored
      The patch below removes an unused function from
      drivers/usb/host/ohci-dbg.c
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      842bbc53
    • Adrian Bunk's avatar
      [PATCH] USB stv680.c: remove an unused function · d2950d8b
      Adrian Bunk authored
      The patch below removes an unused function from
      drivers/usb/media/stv680.c
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      d2950d8b
    • Arnaldo Carvalho de Melo's avatar
      [PATCH] USB: add id for Siemens x65 series of mobiles to pl2303 driver · 4736d0f9
      Arnaldo Carvalho de Melo authored
      [PL2303] add id for Siemens x65 series of mobiles
      
      Tested with CX65 and S65 models
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@conectiva.com.br>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      4736d0f9
    • Thomas Gleixner's avatar
      [PATCH] Lock initializer unifying Batch 2 (USB) · 88be4c79
      Thomas Gleixner authored
      To make spinlock/rwlock initialization consistent all over the kernel,
      this patch converts explicit lock-initializers into spin_lock_init() and
      rwlock_init() calls.
      
      Currently, spinlocks and rwlocks are initialized in two different ways:
      
        lock = SPIN_LOCK_UNLOCKED
        spin_lock_init(&lock)
      
        rwlock = RW_LOCK_UNLOCKED
        rwlock_init(&rwlock)
      
      this patch converts all explicit lock initializations to
      spin_lock_init() or rwlock_init(). (Besides consistency this also helps
      automatic lock validators and debugging code.)
      
      The conversion was done with a script, it was verified manually and it
      was reviewed, compiled and tested as far as possible on x86, ARM, PPC.
      
      There is no runtime overhead or actual code change resulting out of this
      patch, because spin_lock_init() and rwlock_init() are macros and are
      thus equivalent to the explicit initialization method.
      
      That's the second batch of the unifying patches.
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarIngo Molnar <mingo@elte.hu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      88be4c79
    • David Brownell's avatar
      [PATCH] USB: fix ohci_restart warning · 49ed70c7
      David Brownell authored
      With 2.6.10 getting warning about ohci_restart() defined
      and not used if !CONFIG_PM.
      Signed-off-by: default avatarStephen Hemminger <shemminger@osdl.org>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      49ed70c7
    • Alan Stern's avatar
      [PATCH] USB: Dequeuing of root-hub URBs · 2d5e7603
      Alan Stern authored
      This patch fixes a tiny SMP-type hole in root-hub synchronization.
      Although the HCD glue layer properly unlinks root-hub status URBs
      synchronously, it doesn't do so for URBs sent to endpoint 0.  This patch
      copies some code from usb_kill_urb, to make such unlinks wait until the
      host controller driver has finished handling the URB.  This behavior is
      required for hcd_endpoint_disable to work correctly.
      
      The patch also renames usb_rh_status_dequeue to usb_rh_urb_dequeue (to
      better describe its updated function) and declares the routine static.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      2d5e7603
    • Alan Stern's avatar
      [PATCH] UHCI: Convert remainder to bitwise-and · 2bff2da2
      Alan Stern authored
      This patch, suggested by Karsten Wiese, converts a few remainder ('%')
      operations in the UHCI driver to bitwise-and ('&').  It's not a huge
      change, but this is a common idiom in C and it will save a few bytes with
      some compilers.  Also one of the changes is in an inner loop, so it might
      help a little bit.
      
      
      
      From: Karsten Wiese <annabellesgarden@yahoo.de>
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      2bff2da2
    • David Brownell's avatar
      [PATCH] usbcore, diagnostic tweaks · 196260c1
      David Brownell authored
      Minor updates for better diagnostics from usbcore:
      
       - Only print ep0 maxpacket when it's not what we first tried
      
       - have khubd say when it's looking at a hub
      
       - When warning about synchronous control or bulk timeouts,
         report the program that triggered the message.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      196260c1
    • David Brownell's avatar
      [PATCH] OHCI suspend/resume updates (minor) · 7b6e44e7
      David Brownell authored
      This marks the controller as running at the end of a "resume" path used
      when the controller lost power, or was otherwise reset (not a real resume).
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      7b6e44e7
    • David Brownell's avatar
      [PATCH] EHCI suspend/resume updates · 59f13fee
      David Brownell authored
      This patch much improves suspend/resume behavior of EHCI, as tested with
      "echo suspend > /sys/power/state" and "echo disk > /sys/power/state".
      
       - Quiescing the controller has to handle a case where the software has
         finished shutting down periodic and async schedules, but the hardware
         hasn't yet finished its part.
      
       - When suspending the root hub, be more by-the-book so that resumes
         behave better.
      
       - When resuming after suspend-to-disk, or in general when no port is
         suspended, the driver re-uses the initialization logic.  That logic
         needed to understand that resources don't need re-allocation, and
         that a few things need to be reset to the default state.
      
       - More code paths needed to notice a suspended controller, and stop
         right away.
      
       - To shut down the controller, start with the root hub ports and
         work up from there.
      
      Tested by writing "suspend" or "disk" to /sys/power/state; several
      systems resumed OK, at least given the associated usbcore patches.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      59f13fee
    • David Brownell's avatar
      [PATCH] PCI: make pci_save_state() only happen when no suspend() · 84050a84
      David Brownell authored
      Recent PCI changes are killing USB Power Management, and maybe more.
      
      The root cause is a change to the PCI suspend code from back in May,
      saving a copy of pci config space after the PCI driver did.  That
      was OK until a recent change made it overwrite the copy that the
      PCI device driver would later restore ... net result for USB is
      that DMA would always be disabled after resume.
      
      This patch restores the long-documented behavior of PCI driver
      suspend/resume calls (drivers are responsible for saving and
      restoring config space state), and also removes a superfluous line
      from the USB suspend logic.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      84050a84
    • David Brownell's avatar
      [PATCH] usbcore and system sleep states · 3cf710a1
      David Brownell authored
      This patch makes usbcore behave better with system sleep states, fixing
      some PM/PCI integration problems as well as some PM/USB ones.
      
       - PCI HCDs should behave better, even if they don't support PCI PM;
         tested with both ACPI and APM suspend cycles, and swsusp.
      
       - Systems that advertise ACPI S1 support don't necessarily support the
         PCI D1 or D2 states for their USB controllers.  (Examples include
         Centrino laptops.)  This patch makes them suspend into D3hot, which
         always works (and won't take much longer to resume, either).
      
       - Handle the "go into deeper suspend" transition the way PCI drivers
         are supposed to.
      
       - Understand that USB only has one suspend state:  if the device is
         suspended, it can't do any better.
      
       - Export some symbols to HCDs, so they can reuse more of the existing
         usbcore framework.
      
      Plus minor related cleanups.
      
      The PCI D1/D2 state issue is a variant of an earlier problem, with the
      same root cause:  the PM core thinking there's a one-to-one mapping
      between system states (roughly:  ACPI S0/S1/S3/S4) and PCI states that
      a given device can support (only D0 is required, D3hot is common).
      That same issue comes up again with USB.
      Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      3cf710a1
    • Arjan van de Ven's avatar
      [PATCH] USB: remove dead code in usb video · 726eae75
      Arjan van de Ven authored
      Hi,
      
      Patch below removes somem dead, never used code from the usbvideo driver,
      including a function that uses interruptible_sleep_on_timeout() oddly.
      Signed-off-by: default avatarArjan van de Ven <arjan@fenrus.demon.nl>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      726eae75
    • Alan Stern's avatar
      [PATCH] UHCI: Workaround for broken remote wakeup · 606095c0
      Alan Stern authored
      This patch adds a workaround for host controllers that don't properly
      support remote wakeup.  That includes Intel controllers (on certain badly
      designed motherboards) and a recent Genesys Logic controller.  Although
      the UHCI driver avoids suspending the Intel-based controllers, this
      workaround will handle things about as well.
      
      In the not-too-distant future I will have to revamp most of the root-hub
      suspend/resume code in the UHCI driver.  For now, please apply the patch.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      606095c0
    • Lonnie Mendez's avatar
      [PATCH] hid-core: add two devices to device blacklist · 65152f00
      Lonnie Mendez authored
      This patch adds the Delorme Earthmate usb gps and the Cypress hid->com
      rs232 adapter to hid-core's device blacklist.
      Signed-off-by: default avatarLonnie Mendez <lmendez19@austin.rr.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      65152f00
    • Nishanth Aravamudan's avatar
      [PATCH] pci/quirks: replace schedule_timeout() with msleep() · 185f7a3a
      Nishanth Aravamudan authored
      Description: Use msleep() instead of schedule_timeout() to guarantee the
      task delays as expected.
      Signed-off-by: default avatarNishanth Aravamudan <nacc@us.ibm.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      185f7a3a
    • Christoph Lameter's avatar
      [PATCH] fix IBM cyclone clock and some cleanup · 6f0c3359
      Christoph Lameter authored
       - fix broken IBM cyclone time interpolator support
       - add support for cyclic timers through an addition of a mask
         in the timer interpolator structure
       - Allow time_interpolator_update() and time_interpolator_get_offset()
         to be invoked without an active time interpolator
         (necessary since the cyclone clock is initialized late in ACPI
         processing)
       - remove obsolete function time_interpolator_resolution()
       - add a mask to all struct time_interpolator setups in the
         kernel
       - Make time interpolators work on 32bit platforms
      Signed-off-by: default avatarChristoph Lameter <clameter@sgi.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      6f0c3359
    • Kay Sievers's avatar
      [PATCH] take me home, hotplug_path[] · 6f178056
      Kay Sievers authored
      Move hotplug_path[] out of kmod.[ch] to kobject_uevent.[ch] where
      it belongs now. At some time in the future we should fix the remaining bad
      hotplug calls (no SEQNUM, no netlink uevent):
      
        ./drivers/input/input.c (no DEVPATH on some hotplug events!)
        ./drivers/pnp/pnpbios/core.c
        ./drivers/s390/crypto/z90main.c
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      6f178056
    • Dmitry Torokhov's avatar
      [PATCH] Driver core: add driver symlink to device · e07d4e61
      Dmitry Torokhov authored
      Driver core: when binding device to a driver create "driver"
                   symlink in device's directory. Rename serio's
                   "driver" attribute to "drvctl" (write-only)
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      e07d4e61
    • Kay Sievers's avatar
      [PATCH] kobject: fix hotplug bug with seqnum · a6391b5b
      Kay Sievers authored
      On Sat, Oct 30, 2004 at 04:54:29AM +0200, Kay Sievers wrote:
      > On Sat, Oct 30, 2004 at 02:25:23AM +0200, Kay Sievers wrote:
      > > On Sat, Oct 30, 2004 at 02:00:45AM +0200, Kay Sievers wrote:
      > > > On Fri, Oct 29, 2004 at 06:13:19PM -0500, Greg KH wrote:
      > > > > On Fri, Oct 29, 2004 at 11:28:56PM +0200, Kay Sievers wrote:
      > > > > > > But there might still be a problem.  With this change, the sequence
      > > > > > > number is not sent out the kevent message.  Kay, do you think this is an
      > > > > > > issue?  I don't think we can get netlink messages out of order, right?
      > > > > >
      > > > > > Right, especially not the events with the same DEVPATH, like "remove"
      > > > > > beating an "add". But I'm not sure if the number isn't useful. Whatever
      > > > > > we may do with the hotplug over netlink in the future, we will only have
      > > > > > /sbin/hotplug for the early boot and it may be nice to know, what events
      > > > > > we have already handled...
      > > > > >
      > > > > > > I'll hold off on applying this patch until we figure this out...
      > > > > >
      > > > > > How about just reserving 20 bytes for the number (u64 will never be
      > > > > > more than that), save the pointer to that field, and fill the number in
      > > > > > later?
      > > > >
      > > > > Ah, something like this instead?  I like it, it's even smaller than the
      > > > > previous patch.  Compile tested only...
      > > >
      > > > I like that. How about the following. It will keep the buffer clean from
      > > > random chars, cause the kevent does not have the vector and relies on
      > > > the '\0' to separate the strings from each other.
      > > > I've tested it. The netlink-hotplug message looks like this:
      > > >
      > > > recv(3, "remove@/class/input/mouse2\0ACTION=remove\0DEVPATH=/class/input/mouse2\0SUBSYSTEM=input\0SEQNUM=961                 \0", 1024, 0) = 113
      > >
      > > Hmm, these trailing spaces are just bad, sorry. I'll better pass the
      > > envp array over to send_uevent() and clean up the keys while copying
      > > the env values into the skb buffer. This will make the event payload
      > > more safe too. So your first version looks better.
      >
      > How about this? We copy over key by key into the skb buffer and the
      > netlink message can get the envp array without depending on a single
      > continuous buffer.
      >
      > The netlink message looks nice like this now:
      >
      > recv(3, "
      >   add@/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0\0
      >   HOME=/\0
      >   PATH=/sbin:/bin:/usr/sbin:/usr/bin\0
      >   ACTION=add\0
      >   DEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.0\0
      >   SUBSYSTEM=usb\0
      >   SEQNUM=991\0
      >   DEVICE=/proc/bus/usb/003/008\0
      >   PRODUCT=46d/c03e/2000\0
      >   TYPE=0/0/0\0
      >   INTERFACE=3/1/2\0
      > ", 1024, 0) = 268
      
      Here is an improved version that uses skb_put() to fill the skb buffer,
      instead of trimming the buffer to the final size after we've copied over
      all keys.
      Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      a6391b5b
    • Dmitry Torokhov's avatar
      [PATCH] Driver core: add driver_probe_device · cb5f226e
      Dmitry Torokhov authored
      Driver core: rename bus_match into driver_probe_device and export
                   it so subsystems can bind an individual device to a
                   specific driver without getting involved with driver
                   core internals.
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      cb5f226e
    • Dmitry Torokhov's avatar
      [PATCH] Driver core: export device_attach · 0d116d5f
      Dmitry Torokhov authored
      Driver core: make device_attach() global and export it and
                   driver_attach() so subsystems can have finer
                   control over binding process.
      Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      0d116d5f
    • Andrew Morton's avatar
      [PATCH] Fix deadlocks on dpm_sem · 46c94ace
      Andrew Morton authored
      From: Paul Mackerras <paulus@samba.org>
      
      Currently the device_pm_foo() functions are rather prone to deadlocks
      during suspend/resume.  This is because the dpm_sem is held for the
      duration of device_suspend() and device_resume() as well as device_pm_add()
      and device_pm_remove().  If for any reason you get a device addition or
      removal triggered by a device's suspend or resume code, you get a deadlock.
       (The classic example is a USB host adaptor resuming and discovering that
      the mouse you used to have plugged in has gone away.)
      
      This patch fixes the problem by using a separate semaphore, called
      dpm_list_sem, to cover the places where we need the device pm lists to be
      stable, and by being careful about how we traverse the lists on suspend and
      resume.  I have analysed the various cases that can occur and I am
      confident that I have handled them all correctly.  I posted this patch
      together with a detailed analysis 10 days ago.
      
      Signed-off-by Paul Mackerras <paulus@samba.org>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      46c94ace
    • Andrew Morton's avatar
      [PATCH] Possible race in sysfs_read_file() and sysfs_write_file() · c185e5b0
      Andrew Morton authored
      From: Simon Derr <Simon.Derr@bull.net>
      
      Add a `needs_read_fill' field in sysfs_buffer so that reading after a write in
      a sysfs file returns valid data.
      
      (instead of the data that have been written, that may be invalid or at the
      wrong offset)
      Signed-off-by: default avatarSimon Derr <simon.derr@bull.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      c185e5b0
    • Andrew Morton's avatar
      [PATCH] Fix race in sysfs_read_file() and sysfs_write_file() · 96028d74
      Andrew Morton authored
      From: Simon Derr <Simon.Derr@bull.net>
      
      - fixes the race between threads by adding a semaphore in sysfs_buffer
      
      - allocates the buffer upon call to pread().  We still call again
        fill_read_buffer() if the file is "rewinded" to offset zero.
      
      - fixes the comparison in flush_read_buffer().
      Signed-off-by: default avatarSimon Derr <simon.derr@bull.net>
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      96028d74
    • Andrew Morton's avatar
      [PATCH] sysfs backing store: stop pinning dentries/inodes for leaf entries · 2fcff040
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      o This patch stops the pinning of non-directory or leaf dentries and inodes.
        The leaf dentries and inodes are created during lookup based on the
        entries on sysfs_dirent tree. These leaves are removed from the dcache
        through the VFS dentry ageing process during shrink dcache operations. Thus
        reducing about 80% of sysfs lowmem needs.
      
      o This implments the ->lookup() for sysfs directory inodes and allocates
        dentry and inode if the lookup is successful and avoids the need of
        allocating and pinning of dentry and inodes during the creation of
        corresponding sysfs leaf entry. As of now the implementation has not
        required negative dentry creation on failed lookup. As sysfs is still a
        RAM based filesystem, negative dentries are not of any use IMO.
      
      o The leaf dentry allocated after successful lookup is connected to the
        existing corresponding sysfs_dirent through the d_fsdata field.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      2fcff040
    • Andrew Morton's avatar
      [PATCH] sysfs backing store: use sysfs_dirent based tree in dir file operations · 062706e2
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      o This patch implements the sysfs_dir_operations file_operations strucutre for
        sysfs directories. It uses the sysfs_dirent based tree for ->readdir() and
        ->lseek() methods instead of simple_dir_operations which use dentry based
        tree.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      062706e2
    • Andrew Morton's avatar
      [PATCH] sysfs backing store: use sysfs_dirent based tree in file removal · fce86bf7
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      o This patch uses the sysfs_dirent based tree while removing sysfs files
        and directories. This avoids holding dcache_lock by not using dentry
        based vfs tree. Thus simplyfying the removal logic in sysfs.
      
      o It uses two helper routines sysfs_get_name(), to get the name for
        sysfs element and sysfs_drop_dentry() to delete the dentry given a
        sysfs_dirent.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      fce86bf7
    • Andrew Morton's avatar
      [PATCH] sysfs backing store - add sysfs_direct structure · c386f08b
      Andrew Morton authored
      From: Maneesh Soni <maneesh@in.ibm.com>
      
      o This patch introduces the new sysfs_dirent data structure. The sysfs_dirent
        is added to the dentry corresponding to each of the element which can be
        represented in sysfs like, kobject (directory), text or binary attributes
        (files), attribute groups (directory) and symlinks.
      
      o It uses dentry's d_fsdata field to attach the corresponding sysfs_dirent.
      
      o The sysfs_dirents are maintained in a tree of all the sysfs entries using the
        s_children and s_sibling list pointers.
      
      o This patch also changes how we access attributes and kobjects in
        file_operations from a given dentry, basically introducing one more level of
        indirection.
      
      o The sysfs_dirents are freed and the sysfs_dirent tree is updated accordingly
        upon the deletion of corresponding dentry. The sysfs dirents are kept alive
        as long as there is corresponding dentry around. The are freed when the
        dentry is finally out of dcache using the ->d_iput() method.
      
      o This also fixes the dentry leaks in case of error paths after sysfs has
        got a newly alocated (and hashed) dentry from sysfs_get_dentry() by
        d_drop()'ing the dentry.
      Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      c386f08b