浏览代码

Bluetooth: Add flag to track managment controlled adapters

This patch adds a HCI_MGMT flag to track adapters which are under the
control of the management interface. This is needed to make sure that
new kernels will work with old user space versions. I.e. behaviour which
could break old user space versions (but is needed by the management
interface) should not be exhibited when the HCI_MGMT flag is not set.

Signed-off-by: Johan Hedberg <johan.hedberg@nokia.com>
Signed-off-by: Gustavo F. Padovan <padovan@profusion.mobi>
Johan Hedberg 14 年之前
父节点
当前提交
ebc99feba7
共有 2 个文件被更改,包括 5 次插入0 次删除
  1. 1 0
      include/net/bluetooth/hci.h
  2. 4 0
      net/bluetooth/mgmt.c

+ 1 - 0
include/net/bluetooth/hci.h

@@ -79,6 +79,7 @@ enum {
 
 
 	HCI_SETUP,
 	HCI_SETUP,
 	HCI_AUTO_OFF,
 	HCI_AUTO_OFF,
+	HCI_MGMT,
 };
 };
 
 
 /* HCI ioctl defines */
 /* HCI ioctl defines */

+ 4 - 0
net/bluetooth/mgmt.c

@@ -142,6 +142,8 @@ static int read_index_list(struct sock *sk)
 
 
 		hci_del_off_timer(d);
 		hci_del_off_timer(d);
 
 
+		set_bit(HCI_MGMT, &d->flags);
+
 		if (test_bit(HCI_SETUP, &d->flags))
 		if (test_bit(HCI_SETUP, &d->flags))
 			continue;
 			continue;
 
 
@@ -200,6 +202,8 @@ static int read_controller_info(struct sock *sk, unsigned char *data, u16 len)
 
 
 	hci_dev_lock_bh(hdev);
 	hci_dev_lock_bh(hdev);
 
 
+	set_bit(HCI_MGMT, &hdev->flags);
+
 	put_unaligned_le16(hdev->id, &rp->index);
 	put_unaligned_le16(hdev->id, &rp->index);
 	rp->type = hdev->dev_type;
 	rp->type = hdev->dev_type;