[PATCH] drm: Fix issue reported by Coverity in drivers/char/drm/via_irq.c
authorDave Airlie <airlied@linux.ie>
Wed, 5 Apr 2006 08:10:11 +0000 (18:10 +1000)
committerDave Airlie <airlied@linux.ie>
Wed, 5 Apr 2006 08:10:11 +0000 (18:10 +1000)
This patch tries to fix an issue reported in drivers/char/drm/via_irq.c by
Coverity, please review and apply if correct.

Error reported:
CID: 3444 Checker: REVERSE_INULL (help)
File: /export2/p4-coverity/mc2/linux26/drivers/char/drm/via_irq.c
Function: via_driver_irq_wait
Description: Pointer "dev_priv" dereferenced before NULL check

Patch Description:
 Move de-referencing dev_priv to after the NULL check.

Signed-off-by: Jayachandran C. <c.jayachandran at gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
drivers/char/drm/via_irq.c

index 6152415644e9b4a327549841df072edd0c45f8e5..1228fa55355b84eb38badeabb8d444bb1b7a1b8d 100644 (file)
@@ -198,7 +198,7 @@ via_driver_irq_wait(drm_device_t * dev, unsigned int irq, int force_sequence,
        unsigned int cur_irq_sequence;
        drm_via_irq_t *cur_irq = dev_priv->via_irqs;
        int ret = 0;
-       maskarray_t *masks = dev_priv->irq_masks;
+       maskarray_t *masks;
        int real_irq;
 
        DRM_DEBUG("%s\n", __FUNCTION__);
@@ -221,7 +221,8 @@ via_driver_irq_wait(drm_device_t * dev, unsigned int irq, int force_sequence,
                          __FUNCTION__, irq);
                return DRM_ERR(EINVAL);
        }
-       
+
+       masks = dev_priv->irq_masks;
        cur_irq += real_irq;
 
        if (masks[real_irq][2] && !force_sequence) {