aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2013-10-18 19:38:10 -0400
committerJohan Hedberg <johan.hedberg@intel.com>2013-10-19 09:29:03 -0400
commit922021854bd8a0221fcb05aec2c13409cffb924e (patch)
tree7a7c160edfbaf378ebed348e0e6aa20d8902980b /net
parent79830f66e3cbd224bcf697b032dce9828b5a3c9e (diff)
Bluetooth: Expose debugfs entry read/write own address type
For some testing it is important to know the current own addres type, but also be able to change it. The change is lost over powery cycles and only intended for debugging. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net')
-rw-r--r--net/bluetooth/hci_core.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index c130a239c0de..d47c8ec90ca0 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -385,6 +385,34 @@ static const struct file_operations static_address_fops = {
385 .release = single_release, 385 .release = single_release,
386}; 386};
387 387
388static int own_address_type_set(void *data, u64 val)
389{
390 struct hci_dev *hdev = data;
391
392 if (val != 0 && val != 1)
393 return -EINVAL;
394
395 hci_dev_lock(hdev);
396 hdev->own_addr_type = val;
397 hci_dev_unlock(hdev);
398
399 return 0;
400}
401
402static int own_address_type_get(void *data, u64 *val)
403{
404 struct hci_dev *hdev = data;
405
406 hci_dev_lock(hdev);
407 *val = hdev->own_addr_type;
408 hci_dev_unlock(hdev);
409
410 return 0;
411}
412
413DEFINE_SIMPLE_ATTRIBUTE(own_address_type_fops, own_address_type_get,
414 own_address_type_set, "%llu\n");
415
388static int long_term_keys_show(struct seq_file *f, void *ptr) 416static int long_term_keys_show(struct seq_file *f, void *ptr)
389{ 417{
390 struct hci_dev *hdev = f->private; 418 struct hci_dev *hdev = f->private;
@@ -1162,6 +1190,8 @@ static int __hci_init(struct hci_dev *hdev)
1162 &hdev->le_white_list_size); 1190 &hdev->le_white_list_size);
1163 debugfs_create_file("static_address", 0444, hdev->debugfs, 1191 debugfs_create_file("static_address", 0444, hdev->debugfs,
1164 hdev, &static_address_fops); 1192 hdev, &static_address_fops);
1193 debugfs_create_file("own_address_type", 0644, hdev->debugfs,
1194 hdev, &own_address_type_fops);
1165 debugfs_create_file("long_term_keys", 0400, hdev->debugfs, 1195 debugfs_create_file("long_term_keys", 0400, hdev->debugfs,
1166 hdev, &long_term_keys_fops); 1196 hdev, &long_term_keys_fops);
1167 } 1197 }