USB: add the usbfs devices file to debugfs
authorGreg Kroah-Hartman <gregkh@suse.de>
Fri, 24 Apr 2009 22:16:04 +0000 (15:16 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 16 Jun 2009 04:44:43 +0000 (21:44 -0700)
People are very used to the devices file in usbfs.  Now that we have
moved usbfs to be an "embedded" option only, the developers miss the
file, they had grown quite attached to it over all of these years.  This
patch brings it back and puts it in the usb debugfs directory, so that
the developers don't feel sad anymore.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/Makefile
drivers/usb/core/usb.c

index b6078706fb939d7f1d3aeb9466f6498f8857f366..ec16e60299050ab046f9a02dfb15e0207e264516 100644 (file)
@@ -4,14 +4,14 @@
 
 usbcore-objs   := usb.o hub.o hcd.o urb.o message.o driver.o \
                        config.o file.o buffer.o sysfs.o endpoint.o \
-                       devio.o notify.o generic.o quirks.o
+                       devio.o notify.o generic.o quirks.o devices.o
 
 ifeq ($(CONFIG_PCI),y)
        usbcore-objs    += hcd-pci.o
 endif
 
 ifeq ($(CONFIG_USB_DEVICEFS),y)
-       usbcore-objs    += inode.o devices.o
+       usbcore-objs    += inode.o
 endif
 
 obj-$(CONFIG_USB)      += usbcore.o
index 5f6873f5f268da8ffb897ba5b8017d111f40c339..c71590666ade57605fcea275dc4e855b02a88ec4 100644 (file)
@@ -1005,16 +1005,29 @@ static struct notifier_block usb_bus_nb = {
 struct dentry *usb_debug_root;
 EXPORT_SYMBOL_GPL(usb_debug_root);
 
+struct dentry *usb_debug_devices;
+
 static int usb_debugfs_init(void)
 {
        usb_debug_root = debugfs_create_dir("usb", NULL);
        if (!usb_debug_root)
                return -ENOENT;
+
+       usb_debug_devices = debugfs_create_file("devices", 0444,
+                                               usb_debug_root, NULL,
+                                               &usbfs_devices_fops);
+       if (!usb_debug_devices) {
+               debugfs_remove(usb_debug_root);
+               usb_debug_root = NULL;
+               return -ENOENT;
+       }
+
        return 0;
 }
 
 static void usb_debugfs_cleanup(void)
 {
+       debugfs_remove(usb_debug_devices);
        debugfs_remove(usb_debug_root);
 }