Hi Fred, > Older Bluetooth devices may not support Setup Synchronous Connection or SCO > transparent data. This is indicated by the corresponding LMP feature bits. > It is not possible to know if the adapter support these features before setting > BT_VOICE option since the socket is not bound to an adapter. An adapter can > also be added after the socket is created. The socket can be bound to an > address before adapter is plugged in. > > Thus, on a such adapters, if user request BT_VOICE_TRANSPARENT, outgoing > connections fail on connect() and returns -EOPNOTSUPP. Incoming connections > do not fail. However, they should only be allowed depending on what was > specified in Write_Voice_Settings command. > > Signed-off-by: Frédéric Dalleau <frederic.dalleau@xxxxxxxxxxxxxxx> > --- > net/bluetooth/sco.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c > index 934002c..190765c 100644 > --- a/net/bluetooth/sco.c > +++ b/net/bluetooth/sco.c > @@ -176,6 +176,12 @@ static int sco_connect(struct sock *sk) > else > type = SCO_LINK; > > + if (sco_pi(sk)->setting == BT_VOICE_TRANSPARENT && > + (!lmp_transp_capable(hdev) || !lmp_esco_capable(hdev))) { > + err = -ECONNABORTED; the error message does not match the commit description. It seems you want to return EOPNOTSUPP here. > + goto done; > + } > + > hcon = hci_connect_sco(hdev, type, dst, sco_pi(sk)->setting); > if (IS_ERR(hcon)) { > err = PTR_ERR(hcon); 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