blob: 145f9609e58fd17e1ef29779f5e3a7eed9612975 [file] [log] [blame]
Jackeagle1cba4132018-12-19 17:08:24 +01001From 3d3c5c2cf4a520aff26537e81f054632629891af Mon Sep 17 00:00:00 2001
Jon West013ef582018-08-21 20:45:26 -04002From: Pierre-Hugues Husson <phh@phh.me>
3Date: Sun, 19 Aug 2018 22:59:06 +0200
Jackeagle1cba4132018-12-19 17:08:24 +01004Subject: [PATCH 2/3] Kirin:: Remove lock to prevent self-lock
Jon West013ef582018-08-21 20:45:26 -04005
6With Huawei Camera HAL, we get the following call order:
7cameraserver CameraService::enumerateProviders (*)
8=> HAL ICameraProvider::getVendorTags
9=> HAL ICameraProviderCallback::cameraDeviceStatusChange
10=> cameraserver CameraService::addState
11=> cameraserver CameraService::updateCameraNumAndIds (*)
12
13The two functions marked with (*) take mServiceLock
14Hence the safe-lock
15---
16 services/camera/libcameraservice/CameraService.cpp | 2 +-
17 1 file changed, 1 insertion(+), 1 deletion(-)
18
19diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
Jackeagle1cba4132018-12-19 17:08:24 +010020index 5d3167e4a..1f9e1e28f 100644
Jon West013ef582018-08-21 20:45:26 -040021--- a/services/camera/libcameraservice/CameraService.cpp
22+++ b/services/camera/libcameraservice/CameraService.cpp
Jackeagled3ba2282018-11-17 20:49:22 -070023@@ -233,7 +233,7 @@ void CameraService::onNewProviderRegistered() {
Jon West013ef582018-08-21 20:45:26 -040024 }
25
26 void CameraService::updateCameraNumAndIds() {
27- Mutex::Autolock l(mServiceLock);
28+ //Mutex::Autolock l(mServiceLock);
29 mNumberOfCameras = mCameraProviderManager->getCameraCount();
30 mNormalDeviceIds =
31 mCameraProviderManager->getAPI1CompatibleCameraDeviceIds();
32--
Jackeagled3ba2282018-11-17 20:49:22 -0700332.17.1
Jon West013ef582018-08-21 20:45:26 -040034