diff options
| -rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_vidi.c | 7 | 
1 files changed, 3 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c index 6d91000c56f9..13ccbd4bcfaa 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c @@ -521,7 +521,6 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,  	struct exynos_drm_manager *manager;  	struct exynos_drm_display_ops *display_ops;  	struct drm_exynos_vidi_connection *vidi = data; -	struct edid *raw_edid;  	int edid_len;  	DRM_DEBUG_KMS("%s\n", __FILE__); @@ -558,11 +557,11 @@ int vidi_connection_ioctl(struct drm_device *drm_dev, void *data,  	}  	if (vidi->connection) { -		if (!vidi->edid) { -			DRM_DEBUG_KMS("edid data is null.\n"); +		struct edid *raw_edid  = (struct edid *)(uint32_t)vidi->edid; +		if (!drm_edid_is_valid(raw_edid)) { +			DRM_DEBUG_KMS("edid data is invalid.\n");  			return -EINVAL;  		} -		raw_edid = (struct edid *)(uint32_t)vidi->edid;  		edid_len = (1 + raw_edid->extensions) * EDID_LENGTH;  		ctx->raw_edid = kzalloc(edid_len, GFP_KERNEL);  		if (!ctx->raw_edid) { | 
