Hi Marcel, On Sep 20, 2011, at 9:49 AM, Marcel Holtmann wrote: > Hi Andre, > >> Devices found during LE scan should be reported to userspace through >> mgmt_device_found events. >> >> Signed-off-by: Andre Guedes <andre.guedes@xxxxxxxxxxxxx> >> --- >> net/bluetooth/hci_event.c | 10 ++++++++++ >> 1 files changed, 10 insertions(+), 0 deletions(-) >> >> diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c >> index f097649..166f8fa 100644 >> --- a/net/bluetooth/hci_event.c >> +++ b/net/bluetooth/hci_event.c >> @@ -2830,6 +2830,7 @@ static inline void hci_le_adv_report_evt(struct hci_dev *hdev, >> { >> struct hci_ev_le_advertising_info *ev; >> u8 num_reports; >> + s8 rssi; >> >> num_reports = skb->data[0]; >> ev = (void *) &skb->data[1]; >> @@ -2838,9 +2839,18 @@ static inline void hci_le_adv_report_evt(struct hci_dev *hdev, >> >> hci_add_adv_entry(hdev, ev); >> >> + rssi = ev->data[ev->length]; >> + mgmt_device_found(hdev->id, &ev->bdaddr, NULL, rssi, ev->data, >> + ev->length); >> + >> while (--num_reports) { >> ev = (void *) (ev->data + ev->length + 1); >> + >> hci_add_adv_entry(hdev, ev); >> + >> + rssi = ev->data[ev->length]; >> + mgmt_device_found(hdev->id, &ev->bdaddr, NULL, rssi, ev->data, >> + ev->length); >> } > > any reason we are treating the first entry different than the potential > other ones? This code looks too complex to me. And we have to repeat the > same calls which easily leads to typos. There is no special reason unless it was the easiest implementation when this function was created. But as long as new stuff are added to this function things may become a bit ugly. I'll do some code refactoring in hci_le_adv_report_evt() and send it as a separated patch. BR, Andre-- 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