/* HCI info for socket */
#define hci_pi(sk) ((struct hci_pinfo *) sk)
-/* HCI socket flags */
-#define HCI_PI_MGMT_INIT 0
-
struct hci_pinfo {
struct bt_sock bt;
struct hci_dev *hdev;
struct hci_filter filter;
__u32 cmsg_mask;
unsigned short channel;
- unsigned long flags;
};
/* HCI security filter */
static void mgmt_init_hdev(struct sock *sk, struct hci_dev *hdev)
{
- if (!test_and_clear_bit(HCI_PI_MGMT_INIT, &hci_pi(sk)->flags))
+ if (test_and_set_bit(HCI_MGMT, &hdev->dev_flags))
return;
- if (!test_and_set_bit(HCI_MGMT, &hdev->dev_flags)) {
- INIT_DELAYED_WORK(&hdev->service_cache, service_cache_off);
+ INIT_DELAYED_WORK(&hdev->service_cache, service_cache_off);
- /* Non-mgmt controlled devices get this bit set
- * implicitly so that pairing works for them, however
- * for mgmt we require user-space to explicitly enable
- * it
- */
- clear_bit(HCI_PAIRABLE, &hdev->dev_flags);
- }
+ /* Non-mgmt controlled devices get this bit set
+ * implicitly so that pairing works for them, however
+ * for mgmt we require user-space to explicitly enable
+ * it
+ */
+ clear_bit(HCI_PAIRABLE, &hdev->dev_flags);
}
static int read_controller_info(struct sock *sk, struct hci_dev *hdev,