aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorMika Kuoppala <mika.kuoppala@linux.intel.com>2012-11-12 07:20:19 -0500
committerDaniel Vetter <daniel.vetter@ffwll.ch>2012-11-29 05:43:51 -0500
commit4f1ba0f83a6d4abd055cf75af43954b38df8dcaf (patch)
treede6614f3f538e62d231205a440fcbf666aba2e5d /drivers/gpu
parentfc37381cc8ae2c24b8ece33659e69a0605ca074c (diff)
drm/i915: fix possible NULL dereference of dev_priv
Dereference dev_priv only after we know it is valid. Found with smatch. Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index a48e4910ea2c..4ea331b931fd 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1045,7 +1045,7 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
1045{ 1045{
1046 drm_i915_private_t *dev_priv = dev->dev_private; 1046 drm_i915_private_t *dev_priv = dev->dev_private;
1047 drm_i915_hws_addr_t *hws = data; 1047 drm_i915_hws_addr_t *hws = data;
1048 struct intel_ring_buffer *ring = LP_RING(dev_priv); 1048 struct intel_ring_buffer *ring;
1049 1049
1050 if (drm_core_check_feature(dev, DRIVER_MODESET)) 1050 if (drm_core_check_feature(dev, DRIVER_MODESET))
1051 return -ENODEV; 1051 return -ENODEV;
@@ -1065,6 +1065,7 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
1065 1065
1066 DRM_DEBUG_DRIVER("set status page addr 0x%08x\n", (u32)hws->addr); 1066 DRM_DEBUG_DRIVER("set status page addr 0x%08x\n", (u32)hws->addr);
1067 1067
1068 ring = LP_RING(dev_priv);
1068 ring->status_page.gfx_addr = hws->addr & (0x1ffff<<12); 1069 ring->status_page.gfx_addr = hws->addr & (0x1ffff<<12);
1069 1070
1070 dev_priv->dri1.gfx_hws_cpu_addr = 1071 dev_priv->dri1.gfx_hws_cpu_addr =