summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/gralloc/gralloc.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/modules/gralloc/gralloc.cpp b/modules/gralloc/gralloc.cpp
index 257bb4a..40d14dc 100644
--- a/modules/gralloc/gralloc.cpp
+++ b/modules/gralloc/gralloc.cpp
@@ -200,10 +200,16 @@ static int init_pmem_area(private_module_t* m)
pthread_mutex_lock(&m->lock);
int err = m->pmem_master;
if (err == -1) {
+ // first time, try to initialize pmem
err = init_pmem_area_locked(m);
if (err) {
m->pmem_master = err;
}
+ } else if (err < 0) {
+ // pmem couldn't be initialized, never use it
+ } else {
+ // pmem OK
+ err = 0;
}
pthread_mutex_unlock(&m->lock);
return err;