Hi Marcel,
On 05/25/2015 02:25 AM, Marcel Holtmann wrote:
Hi Florian,
The set_advertising_complete() method relied on the now obsolete
hci_dev->adv_instance structure. We replace this reference by an
equivalent access to the newly introduced dynamic advertising instance
list.
This solution still relies on the fact that we only allow a single
advertising instance for now. It needs to be further refactored once we
allow more than one advertising instance. A corresponding TODO has been
inserted in the code to make this clear.
Signed-off-by: Florian Grandel <fgrandel@xxxxxxxxx>
---
net/bluetooth/mgmt.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index 3d09cb9..1bdf005 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -4673,6 +4673,7 @@ static void set_advertising_complete(struct hci_dev *hdev, u8 status,
{
struct cmd_lookup match = { NULL, hdev };
struct hci_request req;
+ struct adv_info *adv_instance;
hci_dev_lock(hdev);
@@ -4698,14 +4699,26 @@ static void set_advertising_complete(struct hci_dev *hdev, u8 status,
sock_put(match.sk);
/* If "Set Advertising" was just disabled and instance advertising was
- * set up earlier, then enable the advertising instance.
+ * set up earlier, then re-enable multi-instance advertising.
*/
if (hci_dev_test_flag(hdev, HCI_ADVERTISING) ||
- !hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE))
+ !hci_dev_test_flag(hdev, HCI_ADVERTISING_INSTANCE) ||
+ &hdev->adv_instance_cnt == 0)
this gives me an error on make C=2 net/bluetooth/
CHECK net/bluetooth/mgmt.c
net/bluetooth/mgmt.c:4717:40: warning: Using plain integer as NULL pointer
Oups! Beginner's error. I just did git rebase -i -exec make. I'll use
the C=2 option from now on for all my contributions. Thanks for pointing
me to it.
Florian
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html