Hi Johan, >>> --- a/net/bluetooth/hci_event.c >>> +++ b/net/bluetooth/hci_event.c >>> @@ -5868,7 +5868,8 @@ void hci_event_packet(struct hci_dev *hdev, struct sk_buff *skb) >>> u8 status = 0, event = hdr->evt, req_evt = 0; >>> u16 opcode = HCI_OP_NOP; >>> >>> - if (hdev->sent_cmd && bt_cb(hdev->sent_cmd)->hci.req_event == event) { >>> + if (hdev->sent_cmd && event && >>> + bt_cb(hdev->sent_cmd)->hci.req_event == event) { >> >> Why are you bothering to check for event here. Do we have requests set with hci_req.event == 0? > > If I remember right, most requests are like that. req.event is only used then the request completes in something else than a command complete/status. so what do we do then if we get an event == 0 from the controller? Just bail out early? It seems kind pointless to keep processing it. Regards Marcel