Hi Marcel, On Wed, Jan 8, 2020 at 1:25 PM Marcel Holtmann <marcel@xxxxxxxxxxxx> wrote: > > Hi Luiz, > > > Fix up the packet type if ISO packets are sent over the bulk endpoint. > > > > Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> > > --- > > drivers/bluetooth/btusb.c | 7 +++++++ > > 1 file changed, 7 insertions(+) > > > > diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c > > index ded0ba83bcce..c1e030fc272f 100644 > > --- a/drivers/bluetooth/btusb.c > > +++ b/drivers/bluetooth/btusb.c > > @@ -663,11 +663,18 @@ static int btusb_recv_bulk(struct btusb_data *data, void *buffer, int count) > > hci_skb_expect(skb) -= len; > > > > if (skb->len == HCI_ACL_HDR_SIZE) { > > + __u16 handle = __le16_to_cpu(hci_acl_hdr(skb)->handle); > > __le16 dlen = hci_acl_hdr(skb)->dlen; > > + __u8 type; > > > > /* Complete ACL header */ > > hci_skb_expect(skb) = __le16_to_cpu(dlen); > > > > + type = hci_conn_lookup_type(data->hdev, > > + hci_handle(handle)); > > + if (type == ISO_LINK) > > + hci_skb_pkt_type(skb) = HCI_ISODATA_PKT; > > + > > if (skb_tailroom(skb) < hci_skb_expect(skb)) { > > kfree_skb(skb); > > skb = NULL; > > is this a local hack for development. We can not just look up the connection type on every packet we receive. Unfortunately there is no dedicated endpoint for ISO packets, what I could do instead is try to figure out if there is any ISO connection first and only then lookup but that would still incur in lookups when an ISO link is up. > Regards > > Marcel > -- Luiz Augusto von Dentz