USB: mon: Allow to use usbmon without debugfs
authorTobias Klauser <tklauser@distanz.ch>
Thu, 7 Jul 2011 07:28:21 +0000 (09:28 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 8 Jul 2011 21:55:09 +0000 (14:55 -0700)
Do not bail out with an error in mon_text_init() if debugfs is not
available, instead just return 0 and let mon_init() go ahead with
loading the binary API. Return -ENOMEM in case debugfs_create_dir()
fails for other reasons. Later, it is enough to check for mon_dir
not set.

Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/mon/mon_text.c

index c302e19..1c3afcc 100644 (file)
@@ -670,6 +670,9 @@ int mon_text_add(struct mon_bus *mbus, const struct usb_bus *ubus)
        int busnum = ubus? ubus->busnum: 0;
        int rc;
 
+       if (mon_dir == NULL)
+               return 0;
+
        if (ubus != NULL) {
                rc = snprintf(name, NAMESZ, "%dt", busnum);
                if (rc <= 0 || rc >= NAMESZ)
@@ -740,12 +743,12 @@ int __init mon_text_init(void)
 
        mondir = debugfs_create_dir("usbmon", usb_debug_root);
        if (IS_ERR(mondir)) {
-               printk(KERN_NOTICE TAG ": debugfs is not available\n");
-               return -ENODEV;
+               /* debugfs not available, but we can use usbmon without it */
+               return 0;
        }
        if (mondir == NULL) {
                printk(KERN_NOTICE TAG ": unable to create usbmon directory\n");
-               return -ENODEV;
+               return -ENOMEM;
        }
        mon_dir = mondir;
        return 0;