Hi Johan, On Tue, Feb 25, 2014 at 2:57 AM, Johan Hedberg <johan.hedberg@xxxxxxxxx> wrote: > Hi Andre, > > On Mon, Feb 24, 2014, Andre Guedes wrote: >> --- a/include/net/bluetooth/hci_core.h >> +++ b/include/net/bluetooth/hci_core.h >> @@ -1128,6 +1128,7 @@ void hci_req_add(struct hci_request *req, u16 opcode, u32 plen, >> void hci_req_add_ev(struct hci_request *req, u16 opcode, u32 plen, >> const void *param, u8 event); >> void hci_req_cmd_complete(struct hci_dev *hdev, u16 opcode, u8 status); >> +void hci_req_add_le_scan_disable(struct hci_request *req); > > It doesn't feel right to put this straight next to the generic async > request API. I'd at least have an empty line between the generic API and > this new function. I'll add an empty line then. >> --- a/net/bluetooth/hci_core.c >> +++ b/net/bluetooth/hci_core.c >> @@ -3318,7 +3318,6 @@ static void le_scan_disable_work(struct work_struct *work) >> { >> struct hci_dev *hdev = container_of(work, struct hci_dev, >> le_scan_disable.work); >> - struct hci_cp_le_set_scan_enable cp; >> struct hci_request req; >> int err; >> >> @@ -3326,9 +3325,7 @@ static void le_scan_disable_work(struct work_struct *work) >> >> hci_req_init(&req, hdev); >> >> - memset(&cp, 0, sizeof(cp)); >> - cp.enable = LE_SCAN_DISABLE; >> - hci_req_add(&req, HCI_OP_LE_SET_SCAN_ENABLE, sizeof(cp), &cp); >> + hci_req_add_le_scan_disable(&req); >> >> err = hci_req_run(&req, le_scan_disable_work_complete); >> if (err) >> @@ -4872,3 +4869,12 @@ static void hci_cmd_work(struct work_struct *work) >> } >> } >> } >> + >> +void hci_req_add_le_scan_disable(struct hci_request *req) >> +{ >> + struct hci_cp_le_set_scan_enable cp; >> + >> + memset(&cp, 0, sizeof(cp)); >> + cp.enable = LE_SCAN_DISABLE; >> + hci_req_add(req, HCI_OP_LE_SET_SCAN_ENABLE, sizeof(cp), &cp); >> +} >> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c >> index 25b8b27..c722914 100644 >> --- a/net/bluetooth/mgmt.c >> +++ b/net/bluetooth/mgmt.c >> @@ -3526,7 +3526,6 @@ static int stop_discovery(struct sock *sk, struct hci_dev *hdev, void *data, >> struct hci_cp_remote_name_req_cancel cp; >> struct inquiry_entry *e; >> struct hci_request req; >> - struct hci_cp_le_set_scan_enable enable_cp; >> int err; >> >> BT_DBG("%s", hdev->name); >> @@ -3562,10 +3561,7 @@ static int stop_discovery(struct sock *sk, struct hci_dev *hdev, void *data, >> } else { >> cancel_delayed_work(&hdev->le_scan_disable); >> >> - memset(&enable_cp, 0, sizeof(enable_cp)); >> - enable_cp.enable = LE_SCAN_DISABLE; >> - hci_req_add(&req, HCI_OP_LE_SET_SCAN_ENABLE, >> - sizeof(enable_cp), &enable_cp); >> + hci_req_add_le_scan_disable(&req); >> } >> >> break; > > You've missed one place in clean_up_hci_state() in mgmt.c (which was > added by the recent "graceful power down" patch set. I'll fix it. Thanks, 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