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
This commit is contained in:
Paul Keith 2018-08-17 20:55:36 +02:00
parent 04f4dfb4cd
commit 3668a9c288
1 changed files with 1 additions and 1 deletions

View File

@ -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