Bluetooth: Create root debugfs directory during module init

Create the root Bluetooth debugfs directory during module init
and remove it on module exit.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
Marcel Holtmann 2013-10-17 17:24:18 -07:00 committed by Johan Hedberg
parent 0153e2ecab
commit ffcecac6a7
2 changed files with 8 additions and 9 deletions

View File

@ -25,6 +25,7 @@
/* Bluetooth address family and sockets. */ /* Bluetooth address family and sockets. */
#include <linux/module.h> #include <linux/module.h>
#include <linux/debugfs.h>
#include <asm/ioctls.h> #include <asm/ioctls.h>
#include <net/bluetooth/bluetooth.h> #include <net/bluetooth/bluetooth.h>
@ -708,12 +709,17 @@ static struct net_proto_family bt_sock_family_ops = {
.create = bt_sock_create, .create = bt_sock_create,
}; };
struct dentry *bt_debugfs;
EXPORT_SYMBOL_GPL(bt_debugfs);
static int __init bt_init(void) static int __init bt_init(void)
{ {
int err; int err;
BT_INFO("Core ver %s", VERSION); BT_INFO("Core ver %s", VERSION);
bt_debugfs = debugfs_create_dir("bluetooth", NULL);
err = bt_sysfs_init(); err = bt_sysfs_init();
if (err < 0) if (err < 0)
return err; return err;
@ -754,7 +760,6 @@ error:
static void __exit bt_exit(void) static void __exit bt_exit(void)
{ {
sco_exit(); sco_exit();
l2cap_exit(); l2cap_exit();
@ -764,6 +769,8 @@ static void __exit bt_exit(void)
sock_unregister(PF_BLUETOOTH); sock_unregister(PF_BLUETOOTH);
bt_sysfs_cleanup(); bt_sysfs_cleanup();
debugfs_remove_recursive(bt_debugfs);
} }
subsys_initcall(bt_init); subsys_initcall(bt_init);

View File

@ -1,6 +1,5 @@
/* Bluetooth HCI driver model support. */ /* Bluetooth HCI driver model support. */
#include <linux/debugfs.h>
#include <linux/module.h> #include <linux/module.h>
#include <net/bluetooth/bluetooth.h> #include <net/bluetooth/bluetooth.h>
@ -8,9 +7,6 @@
static struct class *bt_class; static struct class *bt_class;
struct dentry *bt_debugfs;
EXPORT_SYMBOL_GPL(bt_debugfs);
static inline char *link_typetostr(int type) static inline char *link_typetostr(int type)
{ {
switch (type) { switch (type) {
@ -426,8 +422,6 @@ void hci_del_sysfs(struct hci_dev *hdev)
int __init bt_sysfs_init(void) int __init bt_sysfs_init(void)
{ {
bt_debugfs = debugfs_create_dir("bluetooth", NULL);
bt_class = class_create(THIS_MODULE, "bluetooth"); bt_class = class_create(THIS_MODULE, "bluetooth");
return PTR_ERR_OR_ZERO(bt_class); return PTR_ERR_OR_ZERO(bt_class);
@ -436,6 +430,4 @@ int __init bt_sysfs_init(void)
void bt_sysfs_cleanup(void) void bt_sysfs_cleanup(void)
{ {
class_destroy(bt_class); class_destroy(bt_class);
debugfs_remove_recursive(bt_debugfs);
} }