|
@@ -960,12 +960,17 @@ static bool get_connectable(struct hci_dev *hdev)
|
|
|
static u32 get_adv_instance_flags(struct hci_dev *hdev, u8 instance)
|
|
static u32 get_adv_instance_flags(struct hci_dev *hdev, u8 instance)
|
|
|
{
|
|
{
|
|
|
u32 flags;
|
|
u32 flags;
|
|
|
|
|
+ struct adv_info *adv_instance;
|
|
|
|
|
|
|
|
- if (instance > 0x01)
|
|
|
|
|
- return 0;
|
|
|
|
|
|
|
+ if (instance != 0x00) {
|
|
|
|
|
+ adv_instance = hci_find_adv_instance(hdev, instance);
|
|
|
|
|
|
|
|
- if (instance == 0x01)
|
|
|
|
|
- return hdev->adv_instance.flags;
|
|
|
|
|
|
|
+ /* Return 0 when we got an invalid instance identifier. */
|
|
|
|
|
+ if (!adv_instance)
|
|
|
|
|
+ return 0;
|
|
|
|
|
+
|
|
|
|
|
+ return adv_instance->flags;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
/* Instance 0 always manages the "Tx Power" and "Flags" fields */
|
|
/* Instance 0 always manages the "Tx Power" and "Flags" fields */
|
|
|
flags = MGMT_ADV_FLAG_TX_POWER | MGMT_ADV_FLAG_MANAGED_FLAGS;
|
|
flags = MGMT_ADV_FLAG_TX_POWER | MGMT_ADV_FLAG_MANAGED_FLAGS;
|