Hi Johan, >>> We want to be able to control whether enable_advertising() enables >>> connectable or non-connectable advertising based on the connectable >>> setting of the adapter. We could have the function check directly for >>> the HCI_CONNECTABLE flag, but since the flag may not be set or unset >>> before we call the function it's necessary to pass an explicit parameter >>> value to it. >>> >>> Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx> >>> --- >>> net/bluetooth/mgmt.c | 16 +++++++++++----- >>> 1 file changed, 11 insertions(+), 5 deletions(-) >>> >>> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c >>> index 020f95b..6f07523 100644 >>> --- a/net/bluetooth/mgmt.c >>> +++ b/net/bluetooth/mgmt.c >>> @@ -1418,7 +1418,7 @@ unlock: >>> return err; >>> } >>> >>> -static void enable_advertising(struct hci_request *req) >>> +static void enable_advertising(struct hci_request *req, bool connectable) >>> { >>> struct hci_dev *hdev = req->hdev; >>> struct hci_cp_le_set_adv_param cp; >>> @@ -1427,7 +1427,10 @@ static void enable_advertising(struct hci_request *req) >>> memset(&cp, 0, sizeof(cp)); >>> cp.min_interval = __constant_cpu_to_le16(0x0800); >>> cp.max_interval = __constant_cpu_to_le16(0x0800); >>> - cp.type = LE_ADV_IND; >>> + if (connectable) >>> + cp.type = LE_ADV_IND; >>> + else >>> + cp.type = LE_ADV_NONCONN_IND; >> >> this is the part that I do not like. Having the extra parameter seems >> rather pointless. We could check for the HCI_CONNECTABLE bit in >> dev_flags right here. > > This is what I tried to explain in the commit message. When we do > set_connectable() we want to call enable_advertising() with an explicit > value since the HCI_CONNECTABLE flag gets toggled only when the HCI > commands have been successful. I have a bad feeling with doing it like this. So I rather try to avoid this. We might need an internal difference between BR/EDR connectable and LE connectable. So that at least we can track this internally independent. The whole feeding test_bit() as parameter is getting out of control quickly. So I would propose to have one extra flag that gets set. Regards Marcel -- 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