Skip to content

Commit

Permalink
Bluetooth: Move uuids debugfs entry creation into hci_core.c
Browse files Browse the repository at this point in the history
The uuids debugfs should only be created together with the other
entries after the setup procedure has been finished.

Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
  • Loading branch information
Marcel Holtmann authored and Johan Hedberg committed Oct 18, 2013
1 parent 70afe0b commit 4721983
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 46 deletions.
40 changes: 40 additions & 0 deletions net/bluetooth/hci_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include <linux/idr.h>
#include <linux/rfkill.h>
#include <linux/debugfs.h>
#include <asm/unaligned.h>

#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
Expand Down Expand Up @@ -82,6 +83,43 @@ static const struct file_operations blacklist_fops = {
.release = single_release,
};

static int uuids_show(struct seq_file *f, void *p)
{
struct hci_dev *hdev = f->private;
struct bt_uuid *uuid;

hci_dev_lock(hdev);
list_for_each_entry(uuid, &hdev->uuids, list) {
u32 data0, data5;
u16 data1, data2, data3, data4;

data5 = get_unaligned_le32(uuid);
data4 = get_unaligned_le16(uuid + 4);
data3 = get_unaligned_le16(uuid + 6);
data2 = get_unaligned_le16(uuid + 8);
data1 = get_unaligned_le16(uuid + 10);
data0 = get_unaligned_le32(uuid + 12);

seq_printf(f, "%.8x-%.4x-%.4x-%.4x-%.4x%.8x\n",
data0, data1, data2, data3, data4, data5);
}
hci_dev_unlock(hdev);

return 0;
}

static int uuids_open(struct inode *inode, struct file *file)
{
return single_open(file, uuids_show, inode->i_private);
}

static const struct file_operations uuids_fops = {
.open = uuids_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};

static int inquiry_cache_show(struct seq_file *f, void *p)
{
struct hci_dev *hdev = f->private;
Expand Down Expand Up @@ -872,6 +910,8 @@ static int __hci_init(struct hci_dev *hdev)
debugfs_create_file("blacklist", 0444, hdev->debugfs, hdev,
&blacklist_fops);

debugfs_create_file("uuids", 0444, hdev->debugfs, hdev, &uuids_fops);

if (lmp_bredr_capable(hdev)) {
debugfs_create_file("inquiry_cache", 0444, hdev->debugfs,
hdev, &inquiry_cache_fops);
Expand Down
46 changes: 0 additions & 46 deletions net/bluetooth/hci_sysfs.c
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

#include <linux/debugfs.h>
#include <linux/module.h>
#include <asm/unaligned.h>

#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>
Expand Down Expand Up @@ -396,49 +395,6 @@ static struct device_type bt_host = {
.release = bt_host_release,
};

static void print_bt_uuid(struct seq_file *f, u8 *uuid)
{
u32 data0, data5;
u16 data1, data2, data3, data4;

data5 = get_unaligned_le32(uuid);
data4 = get_unaligned_le16(uuid + 4);
data3 = get_unaligned_le16(uuid + 6);
data2 = get_unaligned_le16(uuid + 8);
data1 = get_unaligned_le16(uuid + 10);
data0 = get_unaligned_le32(uuid + 12);

seq_printf(f, "%.8x-%.4x-%.4x-%.4x-%.4x%.8x\n",
data0, data1, data2, data3, data4, data5);
}

static int uuids_show(struct seq_file *f, void *p)
{
struct hci_dev *hdev = f->private;
struct bt_uuid *uuid;

hci_dev_lock(hdev);

list_for_each_entry(uuid, &hdev->uuids, list)
print_bt_uuid(f, uuid->uuid);

hci_dev_unlock(hdev);

return 0;
}

static int uuids_open(struct inode *inode, struct file *file)
{
return single_open(file, uuids_show, inode->i_private);
}

static const struct file_operations uuids_fops = {
.open = uuids_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};

void hci_init_sysfs(struct hci_dev *hdev)
{
struct device *dev = &hdev->dev;
Expand Down Expand Up @@ -470,8 +426,6 @@ int hci_add_sysfs(struct hci_dev *hdev)
if (!hdev->debugfs)
return 0;

debugfs_create_file("uuids", 0444, hdev->debugfs, hdev, &uuids_fops);

return 0;
}

Expand Down

0 comments on commit 4721983

Please sign in to comment.