drm: add assertion for checking null edid to drm_edid_block_valid
authorSeung-Woo Kim <sw0312.kim@samsung.com>
Tue, 2 Jul 2013 08:57:04 +0000 (17:57 +0900)
committerDave Airlie <airlied@redhat.com>
Thu, 4 Jul 2013 00:52:50 +0000 (10:52 +1000)
If raw_edid of drm_edid_block_vaild() is null, it will crash, so
checking in bad label is removed and instead assertion is added at
the top of the function.
The type of return for the function is bool, so it fixes to return
true and false instead of 1 and 0.

Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Dave Airlie <airlied@redhat.com>
drivers/gpu/drm/drm_edid.c

index 2dc1a60a867db051f36beb287ff192b860848d66..95d6f4b6967c6df03b4bfcf5e5a5ea27d63cf70d 100644 (file)
@@ -968,6 +968,9 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid)
        u8 csum = 0;
        struct edid *edid = (struct edid *)raw_edid;
 
+       if (WARN_ON(!raw_edid))
+               return false;
+
        if (edid_fixup > 8 || edid_fixup < 0)
                edid_fixup = 6;
 
@@ -1010,15 +1013,15 @@ bool drm_edid_block_valid(u8 *raw_edid, int block, bool print_bad_edid)
                break;
        }
 
-       return 1;
+       return true;
 
 bad:
-       if (raw_edid && print_bad_edid) {
+       if (print_bad_edid) {
                printk(KERN_ERR "Raw EDID:\n");
                print_hex_dump(KERN_ERR, " \t", DUMP_PREFIX_NONE, 16, 1,
                               raw_edid, EDID_LENGTH, false);
        }
-       return 0;
+       return false;
 }
 EXPORT_SYMBOL(drm_edid_block_valid);