summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJiyoung Yun <jy910.yun@samsung.com>2015-05-11 13:35:51 +0900
committerJiyoung Yun <jy910.yun@samsung.com>2015-05-27 21:08:11 -0700
commitc8a0c847a4bc605e9c73609da9068b8c8108fd92 (patch)
treefcb6b7e25873ea0389f915766df874cd900bdb68
parent57d2a32eab7747c89335d15ea2f918768a49e919 (diff)
downloaddeviced-c8a0c847a4bc605e9c73609da9068b8c8108fd92.tar.gz
deviced-c8a0c847a4bc605e9c73609da9068b8c8108fd92.tar.bz2
deviced-c8a0c847a4bc605e9c73609da9068b8c8108fd92.zip
display: Fix segfualt issue when display stop and re-start
When display stop, display_dev is released. But it does not allocate when display restart, so add it. Change-Id: I2e2c25ce67ef7a7c26db4e890008d382980faadd Signed-off-by: Jiyoung Yun <jy910.yun@samsung.com>
-rw-r--r--src/display/core.c3
-rw-r--r--src/display/device-interface.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/src/display/core.c b/src/display/core.c
index d09ec542..a6ce682e 100644
--- a/src/display/core.c
+++ b/src/display/core.c
@@ -2323,6 +2323,9 @@ static int display_start(enum device_flags flags)
if (status == DEVICE_OPS_STATUS_START)
return -EALREADY;
+ if (display_probe(NULL) < 0)
+ return -EPERM;
+
display_init(NULL);
return 0;
diff --git a/src/display/device-interface.c b/src/display/device-interface.c
index 9f9b8524..28b87dff 100644
--- a/src/display/device-interface.c
+++ b/src/display/device-interface.c
@@ -463,6 +463,9 @@ int display_service_load(void)
struct hw_info *info;
int r;
+ if (display_dev)
+ return 0;
+
r = hw_get_info(DISPLAY_HARDWARE_DEVICE_ID,
(const struct hw_info **)&info);
if (r < 0) {
@@ -497,6 +500,7 @@ int display_service_free(void)
assert(info);
info->close((struct hw_common *)display_dev);
+ display_dev = NULL;
return 0;
}