display: Fix segfualt issue when display stop and re-start 33/39133/2
authorJiyoung Yun <jy910.yun@samsung.com>
Mon, 11 May 2015 04:35:51 +0000 (13:35 +0900)
committerJiyoung Yun <jy910.yun@samsung.com>
Thu, 28 May 2015 04:08:11 +0000 (21:08 -0700)
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>
src/display/core.c
src/display/device-interface.c

index d09ec54..a6ce682 100644 (file)
@@ -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;
index 9f9b852..28b87df 100644 (file)
@@ -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;
 }