Message ID | 20200519202519.219335-3-luiz.dentz@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Marcel Holtmann |
Headers | show |
Series | [1/4] Bluetooth: Disconnect if E0 is used for Level 4 | expand |
Hi Luiz, > This reverts 19f8def031bfa50c579149b200bfeeb919727b27 > "Bluetooth: Fix auth_complete_evt for legacy units" which seems to be > working around a bug on a broken controller rather then any limitation > imposed by the Bluetooth spec, in fact if there ws not possible to > re-auth the command shall fail not succeed. > > Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > --- > net/bluetooth/hci_event.c | 10 ++-------- > 1 file changed, 2 insertions(+), 8 deletions(-) > > diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c > index dc1cc3c4348c..8c9051ffa665 100644 > --- a/net/bluetooth/hci_event.c > +++ b/net/bluetooth/hci_event.c > @@ -2869,14 +2869,8 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) > > if (!ev->status) { > clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags); > - > - if (!hci_conn_ssp_enabled(conn) && > - test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) { > - bt_dev_info(hdev, "re-auth of legacy device is not possible."); > - } else { > - set_bit(HCI_CONN_AUTH, &conn->flags); > - conn->sec_level = conn->pending_sec_level; > - } > + set_bit(HCI_CONN_AUTH, &conn->flags); > + conn->sec_level = conn->pending_sec_level; > } else { > if (ev->status == HCI_ERROR_PIN_OR_KEY_MISSING) > set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags); wouldn’t we now also remove HCI_CONN_REAUTH_PEND flag? Regards Marcel
Hi Marcel, On Wed, May 20, 2020 at 7:25 AM Marcel Holtmann <marcel@holtmann.org> wrote: > > Hi Luiz, > > > This reverts 19f8def031bfa50c579149b200bfeeb919727b27 > > "Bluetooth: Fix auth_complete_evt for legacy units" which seems to be > > working around a bug on a broken controller rather then any limitation > > imposed by the Bluetooth spec, in fact if there ws not possible to > > re-auth the command shall fail not succeed. > > > > Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > > --- > > net/bluetooth/hci_event.c | 10 ++-------- > > 1 file changed, 2 insertions(+), 8 deletions(-) > > > > diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c > > index dc1cc3c4348c..8c9051ffa665 100644 > > --- a/net/bluetooth/hci_event.c > > +++ b/net/bluetooth/hci_event.c > > @@ -2869,14 +2869,8 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) > > > > if (!ev->status) { > > clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags); > > - > > - if (!hci_conn_ssp_enabled(conn) && > > - test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) { > > - bt_dev_info(hdev, "re-auth of legacy device is not possible."); > > - } else { > > - set_bit(HCI_CONN_AUTH, &conn->flags); > > - conn->sec_level = conn->pending_sec_level; > > - } > > + set_bit(HCI_CONN_AUTH, &conn->flags); > > + conn->sec_level = conn->pending_sec_level; > > } else { > > if (ev->status == HCI_ERROR_PIN_OR_KEY_MISSING) > > set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags); > > wouldn’t we now also remove HCI_CONN_REAUTH_PEND flag? Yep, it doesn't seem there is any other user of HCI_CONN_REAUTH_PEND, not sure if we wouldn't need this in the future though if we do want to check if reauth was triggered. > Regards > > Marcel >
diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index dc1cc3c4348c..8c9051ffa665 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -2869,14 +2869,8 @@ static void hci_auth_complete_evt(struct hci_dev *hdev, struct sk_buff *skb) if (!ev->status) { clear_bit(HCI_CONN_AUTH_FAILURE, &conn->flags); - - if (!hci_conn_ssp_enabled(conn) && - test_bit(HCI_CONN_REAUTH_PEND, &conn->flags)) { - bt_dev_info(hdev, "re-auth of legacy device is not possible."); - } else { - set_bit(HCI_CONN_AUTH, &conn->flags); - conn->sec_level = conn->pending_sec_level; - } + set_bit(HCI_CONN_AUTH, &conn->flags); + conn->sec_level = conn->pending_sec_level; } else { if (ev->status == HCI_ERROR_PIN_OR_KEY_MISSING) set_bit(HCI_CONN_AUTH_FAILURE, &conn->flags);