drm: msm: fix potential NULL pointer dereference
adding NULL check before dereferencing a pointer. Change-Id: I260b016abdcb16f5b16e58671ed208df21c99a46 Signed-off-by: Suprith Malligere Shankaregowda <supgow@codeaurora.org>
This commit is contained in:
parent
ef00227cce
commit
8604e9806f
4 changed files with 18 additions and 5 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -439,7 +439,7 @@ int dsi_connector_get_modes(struct drm_connector *connector,
|
|||
rc = dsi_display_get_modes(display, NULL, &count);
|
||||
if (rc) {
|
||||
pr_err("failed to get num of modes, rc=%d\n", rc);
|
||||
goto error;
|
||||
goto end;
|
||||
}
|
||||
|
||||
size = count * sizeof(*modes);
|
||||
|
|
|
@ -193,7 +193,8 @@ static void mdp5_plane_reset(struct drm_plane *plane)
|
|||
|
||||
kfree(to_mdp5_plane_state(plane->state));
|
||||
mdp5_state = kzalloc(sizeof(*mdp5_state), GFP_KERNEL);
|
||||
|
||||
if (!mdp5_state)
|
||||
return;
|
||||
/* assign default blend parameters */
|
||||
mdp5_state->alpha = 255;
|
||||
mdp5_state->premultiplied = 0;
|
||||
|
@ -686,14 +687,21 @@ static int mdp5_plane_mode_set(struct drm_plane *plane,
|
|||
bool vflip, hflip;
|
||||
unsigned long flags;
|
||||
int ret;
|
||||
const struct msm_format *msm_fmt;
|
||||
|
||||
msm_fmt = msm_framebuffer_format(fb);
|
||||
nplanes = drm_format_num_planes(fb->pixel_format);
|
||||
|
||||
/* bad formats should already be rejected: */
|
||||
if (WARN_ON(nplanes > pipe2nclients(pipe)))
|
||||
return -EINVAL;
|
||||
|
||||
format = to_mdp_format(msm_framebuffer_format(fb));
|
||||
if (!msm_fmt) {
|
||||
pr_err("invalid format");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
format = to_mdp_format(msm_fmt);
|
||||
pix_format = format->base.pixel_format;
|
||||
|
||||
/* src values are in Q16 fixed point, convert to integer: */
|
||||
|
|
|
@ -347,6 +347,10 @@ static int submit_reloc(struct msm_gpu *gpu,
|
|||
* to do it page-by-page, w/ kmap() if not vmap()d..
|
||||
*/
|
||||
ptr = msm_gem_vaddr(&obj->base);
|
||||
if (!ptr) {
|
||||
DRM_ERROR("Invalid format");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (IS_ERR(ptr)) {
|
||||
ret = PTR_ERR(ptr);
|
||||
|
|
|
@ -237,7 +237,8 @@ static struct device *find_context_bank(const char *name)
|
|||
|
||||
/* Get the parent device */
|
||||
parent = of_find_device_by_node(node->parent);
|
||||
|
||||
if (!parent)
|
||||
return ERR_PTR(-ENODEV);
|
||||
/* Populate the sub nodes */
|
||||
of_platform_populate(parent->dev.of_node, NULL, NULL, &parent->dev);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue