提交 f63ba24b 编写于 作者: F Florian Grandel 提交者: Marcel Holtmann

Bluetooth: mgmt: multi adv for create_instance_adv_data()

The create_instance_adv_data() function could not deal with
multiple advertising instances previously. This is being fixed by
retrieving advertising instances from the newly introduced dynamic
advertising instance list.
Signed-off-by: NFlorian Grandel <fgrandel@gmail.com>
Signed-off-by: NMarcel Holtmann <marcel@holtmann.org>
上级 ca21fbe9
...@@ -1014,8 +1014,18 @@ static u8 get_cur_adv_instance_scan_rsp_len(struct hci_dev *hdev) ...@@ -1014,8 +1014,18 @@ static u8 get_cur_adv_instance_scan_rsp_len(struct hci_dev *hdev)
static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr) static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr)
{ {
struct adv_info *adv_instance = NULL;
u8 ad_len = 0, flags = 0; u8 ad_len = 0, flags = 0;
u32 instance_flags = get_adv_instance_flags(hdev, instance); u32 instance_flags;
/* Return 0 when the current instance identifier is invalid. */
if (instance) {
adv_instance = hci_find_adv_instance(hdev, instance);
if (!adv_instance)
return 0;
}
instance_flags = get_adv_instance_flags(hdev, instance);
/* The Add Advertising command allows userspace to set both the general /* The Add Advertising command allows userspace to set both the general
* and limited discoverable flags. * and limited discoverable flags.
...@@ -1049,12 +1059,11 @@ static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr) ...@@ -1049,12 +1059,11 @@ static u8 create_instance_adv_data(struct hci_dev *hdev, u8 instance, u8 *ptr)
} }
} }
if (instance) { if (adv_instance) {
memcpy(ptr, hdev->adv_instance.adv_data, memcpy(ptr, adv_instance->adv_data,
hdev->adv_instance.adv_data_len); adv_instance->adv_data_len);
ad_len += adv_instance->adv_data_len;
ad_len += hdev->adv_instance.adv_data_len; ptr += adv_instance->adv_data_len;
ptr += hdev->adv_instance.adv_data_len;
} }
/* Provide Tx Power only if we can provide a valid value for it */ /* Provide Tx Power only if we can provide a valid value for it */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册