Hi, Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes: >> +struct dentry *usb_debugfs_init(void) >> +{ >> + if (!usb_debug_root) >> + usb_debug_root = debugfs_create_dir("usb", NULL); >> + >> + atomic_inc(&usb_debug_root_refcnt); >> + >> + return usb_debug_root; >> +} >> +EXPORT_SYMBOL_GPL(usb_debugfs_init); >> + >> +void usb_debugfs_cleanup(void) >> +{ >> + if (atomic_dec_and_test(&usb_debug_root_refcnt)) { >> + debugfs_remove_recursive(usb_debug_root); >> + usb_debug_root = NULL; >> + } >> +} >> +EXPORT_SYMBOL_GPL(usb_debugfs_cleanup); > > Only remove the debugfs subdir if the usbcore module is removed. Create > the debugfs subdir when the usbcore module is loaded. No need for any > reference counting of any sort at all. No need to overthink this :) There is a slight need to overthink. He wants to use the same directory for gadget-only builds too :-) -- balbi