usb: musb: debugfs: musb_exit_debugfs() can be called on probe
authorFelipe Balbi <felipe.balbi@nokia.com>
Thu, 25 Mar 2010 11:25:18 +0000 (13:25 +0200)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 20 May 2010 20:21:35 +0000 (13:21 -0700)
when we fail to probe(), we can call musb_exit_debugfs().
Allow that by removing section annotations.

Signed-off-by: Felipe Balbi <felipe.balbi@nokia.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/musb/musb_core.c
drivers/usb/musb/musb_debugfs.c

index 3466cd5..27aaaa0 100644 (file)
@@ -2056,12 +2056,12 @@ bad_config:
 
        status = musb_init_debugfs(musb);
        if (status < 0)
-               goto fail2;
+               goto fail4;
 
 #ifdef CONFIG_SYSFS
        status = sysfs_create_group(&musb->controller->kobj, &musb_attr_group);
        if (status)
-               goto fail4;
+               goto fail5;
 #endif
 
        dev_info(dev, "USB %s mode controller at %p using %s, IRQ %d\n",
@@ -2078,6 +2078,9 @@ bad_config:
 
        return 0;
 
+fail5:
+       musb_exit_debugfs(musb);
+
 fail4:
        if (!is_otg_enabled(musb) && is_host_enabled(musb))
                usb_remove_hcd(musb_to_hcd(musb));
index b6a27ba..7768634 100644 (file)
@@ -289,7 +289,7 @@ err0:
        return ret;
 }
 
-void __exit musb_exit_debugfs(struct musb *musb)
+void /* __init_or_exit */ musb_exit_debugfs(struct musb *musb)
 {
        debugfs_remove_recursive(musb_debugfs_root);
 }