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. In mon_text_add() we need to properly return in case debugfs is not available (mon_dir = NULL) so the mbus->text_inited member is correctly set. Signed-off-by: Tobias Klauser <tklauser@xxxxxxxxxx> --- drivers/usb/mon/mon_text.c | 17 +++++++++-------- 1 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/usb/mon/mon_text.c b/drivers/usb/mon/mon_text.c index c302e19..8e6b250 100644 --- a/drivers/usb/mon/mon_text.c +++ b/drivers/usb/mon/mon_text.c @@ -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) @@ -739,14 +742,12 @@ int __init mon_text_init(void) struct dentry *mondir; mondir = debugfs_create_dir("usbmon", usb_debug_root); - if (IS_ERR(mondir)) { - printk(KERN_NOTICE TAG ": debugfs is not available\n"); - return -ENODEV; - } - if (mondir == NULL) { - printk(KERN_NOTICE TAG ": unable to create usbmon directory\n"); - return -ENODEV; - } + if (IS_ERR(mondir)) + /* debugfs not available, but we can use usbmon without it */ + return 0; + else if (mondir == NULL) + return -ENOMEM; + mon_dir = mondir; return 0; } -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html