mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-03-17 12:34:01 +00:00
Bluetooth: Introduce HCI_MGMT_HDEV_OPTIONAL option
When setting HCI_MGMT_HDEV_OPTIONAL it is possible to target a specific conntroller or a global interface. Signed-off-by: Marcel Holtmann <marcel@holtmann.org> Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
This commit is contained in:
parent
14a81bf021
commit
d5cc6626b3
2 changed files with 8 additions and 5 deletions
|
@ -1554,6 +1554,7 @@ void hci_sock_dev_event(struct hci_dev *hdev, int event);
|
|||
#define HCI_MGMT_NO_HDEV BIT(1)
|
||||
#define HCI_MGMT_UNTRUSTED BIT(2)
|
||||
#define HCI_MGMT_UNCONFIGURED BIT(3)
|
||||
#define HCI_MGMT_HDEV_OPTIONAL BIT(4)
|
||||
|
||||
struct hci_mgmt_handler {
|
||||
int (*func) (struct sock *sk, struct hci_dev *hdev, void *data,
|
||||
|
|
|
@ -1579,11 +1579,13 @@ static int hci_mgmt_cmd(struct hci_mgmt_chan *chan, struct sock *sk,
|
|||
}
|
||||
}
|
||||
|
||||
no_hdev = (handler->flags & HCI_MGMT_NO_HDEV);
|
||||
if (no_hdev != !hdev) {
|
||||
err = mgmt_cmd_status(sk, index, opcode,
|
||||
MGMT_STATUS_INVALID_INDEX);
|
||||
goto done;
|
||||
if (!(handler->flags & HCI_MGMT_HDEV_OPTIONAL)) {
|
||||
no_hdev = (handler->flags & HCI_MGMT_NO_HDEV);
|
||||
if (no_hdev != !hdev) {
|
||||
err = mgmt_cmd_status(sk, index, opcode,
|
||||
MGMT_STATUS_INVALID_INDEX);
|
||||
goto done;
|
||||
}
|
||||
}
|
||||
|
||||
var_len = (handler->flags & HCI_MGMT_VAR_LEN);
|
||||
|
|
Loading…
Add table
Reference in a new issue