From 3668a9c28808d2a94ad52598709b1a4252e3ed9b Mon Sep 17 00:00:00 2001 From: Paul Keith Date: Fri, 17 Aug 2018 20:55:36 +0200 Subject: [PATCH] msm8976-common: Hex-edit libmmcamera2_isp_modules for P's mutex restrictions * Google has been tightening up mutexes by disallowing calling pthread_mutex_destroy on an already destroyed mutex in P * This normally isn't an issue, but Qualcomm, in their infinite wisdom, decided to destroy a mutex in a loop in isp_module_stop_session when they were freeing some related memory allocations * This results in a SIGABRT in mm-qcamera-daemon from a __fortify_fatal call in HandleUsingDestroyedMutex in libc * To work around this, the CBNZ instruction (aka, the break condition) in the loop was moved before the call to phtread_mutex_destroy so that the during the 2nd (and final) iteration of the loop, it exits *before* rather than *after* the calls to pthread_mutex_destroy * ASM instructions: - Before: https://gist.github.com/javelinanddart/9afdc8577134bf8ecd48b15213d66491 - After: https://gist.github.com/javelinanddart/789ba3bde8494ff4ba0b7967c93daa14 Change-Id: I36dfab9f3afb8c9e010da8c6b02c2d9eff856c07 --- proprietary-files.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proprietary-files.txt b/proprietary-files.txt index 705f15f..b4901f9 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -79,7 +79,7 @@ vendor/lib/libmmcamera2_dcrf.so vendor/lib/libmmcamera2_frame_algorithm.so vendor/lib/libmmcamera2_iface_modules.so vendor/lib/libmmcamera2_imglib_modules.so -vendor/lib/libmmcamera2_isp_modules.so +vendor/lib/libmmcamera2_isp_modules.so|19729f762952f3d6a3cdae33a44d3b190526a5a3 vendor/lib/libmmcamera2_is.so vendor/lib/libmmcamera2_mct.so vendor/lib/libmmcamera2_pp_buf_mgr.so