| From 55c725e700bc36c0263bf4847f0c010d330d2449 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 18 Jun 2020 11:04:00 +0100 |
| Subject: drm/arm: fix unintentional integer overflow on left shift |
| |
| From: Colin Ian King <colin.king@canonical.com> |
| |
| [ Upstream commit 5f368ddea6fec519bdb93b5368f6a844b6ea27a6 ] |
| |
| Shifting the integer value 1 is evaluated using 32-bit arithmetic |
| and then used in an expression that expects a long value leads to |
| a potential integer overflow. Fix this by using the BIT macro to |
| perform the shift to avoid the overflow. |
| |
| Addresses-Coverity: ("Unintentional integer overflow") |
| Fixes: ad49f8602fe8 ("drm/arm: Add support for Mali Display Processors") |
| Signed-off-by: Colin Ian King <colin.king@canonical.com> |
| Acked-by: Liviu Dudau <liviu.dudau@arm.com> |
| Signed-off-by: Liviu Dudau <Liviu.Dudau@arm.com> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20200618100400.11464-1-colin.king@canonical.com |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/gpu/drm/arm/malidp_planes.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/arm/malidp_planes.c b/drivers/gpu/drm/arm/malidp_planes.c |
| index 37715cc6064e6..ab45ac445045a 100644 |
| --- a/drivers/gpu/drm/arm/malidp_planes.c |
| +++ b/drivers/gpu/drm/arm/malidp_planes.c |
| @@ -928,7 +928,7 @@ int malidp_de_planes_init(struct drm_device *drm) |
| const struct malidp_hw_regmap *map = &malidp->dev->hw->map; |
| struct malidp_plane *plane = NULL; |
| enum drm_plane_type plane_type; |
| - unsigned long crtcs = 1 << drm->mode_config.num_crtc; |
| + unsigned long crtcs = BIT(drm->mode_config.num_crtc); |
| unsigned long flags = DRM_MODE_ROTATE_0 | DRM_MODE_ROTATE_90 | DRM_MODE_ROTATE_180 | |
| DRM_MODE_ROTATE_270 | DRM_MODE_REFLECT_X | DRM_MODE_REFLECT_Y; |
| unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) | |
| -- |
| 2.25.1 |
| |