diff options
author | Jiyoung Yun <jy910.yun@samsung.com> | 2015-05-11 13:35:51 +0900 |
---|---|---|
committer | Jiyoung Yun <jy910.yun@samsung.com> | 2015-05-27 21:08:11 -0700 |
commit | c8a0c847a4bc605e9c73609da9068b8c8108fd92 (patch) | |
tree | fcb6b7e25873ea0389f915766df874cd900bdb68 | |
parent | 57d2a32eab7747c89335d15ea2f918768a49e919 (diff) | |
download | deviced-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.c | 3 | ||||
-rw-r--r-- | src/display/device-interface.c | 4 |
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; } |