From 6ebe25132221a389a3df8b0b197a9efff7a211f2 Mon Sep 17 00:00:00 2001 From: "yanggang.yang" Date: Wed, 31 May 2023 13:59:04 +0800 Subject: [PATCH] Fix bluetooth AIDL restart fail when open HCI Fail [Description] If aidl open HCI fail at the first time, the aidl state can not change to enable for the next time to initialize. [Root Cause] Bluetooth AIDL State is always equal to INITIALIZING after open hci fail at the first time. [Solution] When open HCI fail at the first time, initialize the mstate to ready Bug: 285517442 Test: pass Change-Id: I19756d6602ba931242d0f95942db55c505a210bb --- bluetooth/aidl/default/BluetoothHci.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/bluetooth/aidl/default/BluetoothHci.cpp b/bluetooth/aidl/default/BluetoothHci.cpp index 18a371db0c..782122f75f 100644 --- a/bluetooth/aidl/default/BluetoothHci.cpp +++ b/bluetooth/aidl/default/BluetoothHci.cpp @@ -224,6 +224,7 @@ ndk::ScopedAStatus BluetoothHci::initialize( ALOGI("Unable to open Linux interface, trying default path."); mFd = getFdFromDevPath(); if (mFd < 0) { + mState = HalState::READY; cb->initializationComplete(Status::UNABLE_TO_OPEN_INTERFACE); return ndk::ScopedAStatus::ok(); } @@ -281,6 +282,7 @@ ndk::ScopedAStatus BluetoothHci::close() { { std::lock_guard guard(mStateMutex); if (mState != HalState::ONE_CLIENT) { + ASSERT(mState != HalState::INITIALIZING); ALOGI("Already closed"); return ndk::ScopedAStatus::ok(); }