Skip to content

Commit

Permalink
drm/nouveau: move dereferences after null checks
Browse files Browse the repository at this point in the history
Reported-by: Dan Carpenter <[email protected]>
Signed-off-by: Marcin Slusarz <[email protected]>
Signed-off-by: Maarten Maathuis <[email protected]>
Signed-off-by: Ben Skeggs <[email protected]>
  • Loading branch information
mslusarz authored and Ben Skeggs committed Feb 10, 2010
1 parent b1d37aa commit dd19e44
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 11 deletions.
7 changes: 4 additions & 3 deletions drivers/gpu/drm/nouveau/nouveau_connector.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,14 @@ nouveau_connector_destroy(struct drm_connector *drm_connector)
{
struct nouveau_connector *nv_connector =
nouveau_connector(drm_connector);
struct drm_device *dev = nv_connector->base.dev;

NV_DEBUG_KMS(dev, "\n");
struct drm_device *dev;

if (!nv_connector)
return;

dev = nv_connector->base.dev;
NV_DEBUG_KMS(dev, "\n");

kfree(nv_connector->edid);
drm_sysfs_connector_remove(drm_connector);
drm_connector_cleanup(drm_connector);
Expand Down
3 changes: 2 additions & 1 deletion drivers/gpu/drm/nouveau/nouveau_object.c
Original file line number Diff line number Diff line change
Expand Up @@ -885,11 +885,12 @@ int
nouveau_gpuobj_sw_new(struct nouveau_channel *chan, int class,
struct nouveau_gpuobj **gpuobj_ret)
{
struct drm_nouveau_private *dev_priv = chan->dev->dev_private;
struct drm_nouveau_private *dev_priv;
struct nouveau_gpuobj *gpuobj;

if (!chan || !gpuobj_ret || *gpuobj_ret != NULL)
return -EINVAL;
dev_priv = chan->dev->dev_private;

gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL);
if (!gpuobj)
Expand Down
7 changes: 4 additions & 3 deletions drivers/gpu/drm/nouveau/nouveau_sgdma.c
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,12 @@ static void
nouveau_sgdma_clear(struct ttm_backend *be)
{
struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be;
struct drm_device *dev = nvbe->dev;

NV_DEBUG(nvbe->dev, "\n");
struct drm_device *dev;

if (nvbe && nvbe->pages) {
dev = nvbe->dev;
NV_DEBUG(dev, "\n");

if (nvbe->bound)
be->func->unbind(be);

Expand Down
11 changes: 7 additions & 4 deletions drivers/gpu/drm/nouveau/nv50_crtc.c
Original file line number Diff line number Diff line change
Expand Up @@ -298,14 +298,17 @@ nv50_crtc_set_clock(struct drm_device *dev, int head, int pclk)
static void
nv50_crtc_destroy(struct drm_crtc *crtc)
{
struct drm_device *dev = crtc->dev;
struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc);

NV_DEBUG_KMS(dev, "\n");
struct drm_device *dev;
struct nouveau_crtc *nv_crtc;

if (!crtc)
return;

dev = crtc->dev;
nv_crtc = nouveau_crtc(crtc);

NV_DEBUG_KMS(dev, "\n");

drm_crtc_cleanup(&nv_crtc->base);

nv50_cursor_fini(nv_crtc);
Expand Down

0 comments on commit dd19e44

Please sign in to comment.