Flag HCI_CONN_POWER_SAVE stands for sniff mode, but hci_mode_change_evt() wrongly set the flag for active mode and clear for sniff mode, it is fixed by reversing power save marking logic. Signed-off-by: Zijun Hu <quic_zijuhu@xxxxxxxxxxx> --- net/bluetooth/hci_event.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/bluetooth/hci_event.c b/net/bluetooth/hci_event.c index ef8c3bed7361..74a14f2e0eaa 100644 --- a/net/bluetooth/hci_event.c +++ b/net/bluetooth/hci_event.c @@ -4601,9 +4601,9 @@ static void hci_mode_change_evt(struct hci_dev *hdev, void *data, if (!test_and_clear_bit(HCI_CONN_MODE_CHANGE_PEND, &conn->flags)) { if (conn->mode == HCI_CM_ACTIVE) - set_bit(HCI_CONN_POWER_SAVE, &conn->flags); - else clear_bit(HCI_CONN_POWER_SAVE, &conn->flags); + else + set_bit(HCI_CONN_POWER_SAVE, &conn->flags); } if (test_and_clear_bit(HCI_CONN_SCO_SETUP_PEND, &conn->flags)) -- The Qualcomm Innovation Center