Hi Johan, > If a controller is powered on while the HCI_AUTO_OFF flag is set the > link security setting (HCI_LINK_SECURITY) might not be in sync with the > actual state of the controller (HCI_AUTH). This patch fixes the issue by > checking for inequality between the intended and actual settings and > sends a HCI_Write_Auth_Enable command if necessary. > > Signed-off-by: Johan Hedberg <johan.hedberg@xxxxxxxxx> > --- > net/bluetooth/mgmt.c | 7 +++++++ > 1 file changed, 7 insertions(+) > > diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c > index fbc8edf..f6ef8ff 100644 > --- a/net/bluetooth/mgmt.c > +++ b/net/bluetooth/mgmt.c > @@ -3096,6 +3096,13 @@ int mgmt_powered(struct hci_dev *hdev, u8 powered) > sizeof(cp), &cp); > } > > + if (test_bit(HCI_LINK_SECURITY, &hdev->dev_flags) != > + test_bit(HCI_AUTH, &hdev->flags)) { > + u8 val = test_bit(HCI_LINK_SECURITY, &hdev->dev_flags); > + hci_send_cmd(hdev, HCI_OP_WRITE_AUTH_ENABLE, > + sizeof(val), &val); > + } why not actually just test for the value and store its result, then compare and then use the value. Testing HCI_LINK_SECURITY twice seems a bit too much. 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