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 committed by ripee
parent 2c3c850404
commit ff869fd7c7
1 changed files with 0 additions and 0 deletions