From 90390678c846d34aae136aa1557643619c524830 Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Sun, 19 Aug 2018 22:59:06 +0200 Subject: [PATCH 03/17] Kirin:: Remove lock to prevent self-lock With Huawei Camera HAL, we get the following call order: cameraserver CameraService::enumerateProviders (*) => HAL ICameraProvider::getVendorTags => HAL ICameraProviderCallback::cameraDeviceStatusChange => cameraserver CameraService::addState => cameraserver CameraService::updateCameraNumAndIds (*) The two functions marked with (*) take mServiceLock Hence the safe-lock --- services/camera/libcameraservice/CameraService.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp index 95e4e6eb7..077e3b238 100644 --- a/services/camera/libcameraservice/CameraService.cpp +++ b/services/camera/libcameraservice/CameraService.cpp @@ -271,7 +271,7 @@ bool CameraService::isPublicallyHiddenSecureCamera(const String8& cameraId) { } void CameraService::updateCameraNumAndIds() { - Mutex::Autolock l(mServiceLock); + //Mutex::Autolock l(mServiceLock); mNumberOfCameras = mCameraProviderManager->getCameraCount(); mNormalDeviceIds = mCameraProviderManager->getAPI1CompatibleCameraDeviceIds(); -- 2.25.1