drm/pl111: Use 64-bit arithmetic instead of 32-bit
authorGustavo A. R. Silva <gustavo@embeddedor.com>
Wed, 4 Jul 2018 14:22:55 +0000 (09:22 -0500)
committerEric Anholt <eric@anholt.net>
Tue, 17 Jul 2018 18:25:18 +0000 (11:25 -0700)
Add suffix ULL to constant 1000 in order to give the compiler complete
information about the proper arithmetic to use.

Notice that such constant is used in a context that expects an
expression of type u64 (64 bits, unsigned) and the following
expression is currently being evaluated using 32-bit arithmetic:

mode->clock * 1000

Addresses-Coverity-ID: 1466139 ("Unintentional integer overflow")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Eric Anholt <eric@anholt.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20180704142255.GA8614@embeddedor.com
drivers/gpu/drm/pl111/pl111_display.c

index a432eb7..754f6b2 100644 (file)
@@ -63,7 +63,7 @@ pl111_mode_valid(struct drm_crtc *crtc,
         * We use the pixelclock to also account for interlaced modes, the
         * resulting bandwidth is in bytes per second.
         */
-       bw = mode->clock * 1000; /* In Hz */
+       bw = mode->clock * 1000ULL; /* In Hz */
        bw = bw * mode->hdisplay * mode->vdisplay * cpp;
        bw = div_u64(bw, mode->htotal * mode->vtotal);