forked from luck/tmp_suning_uos_patched
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
|
@ -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…
Reference in New Issue
Block a user