summaryrefslogtreecommitdiffstats
path: root/src/intel/isl/isl.c
diff options
context:
space:
mode:
authorLionel Landwerlin <[email protected]>2017-07-13 15:37:43 +0100
committerLionel Landwerlin <[email protected]>2017-07-13 22:50:26 +0100
commit19869d6091e170248378d38352339c65cff19d63 (patch)
tree28610f6b5b9bdb9ecf3cf383a31a6c1674673608 /src/intel/isl/isl.c
parent4df93a54f18ff8baca1d7a1b395c1fa70d65a9bb (diff)
isl: use 64bit arithmetic to compute size
If we allow the size to be more than 2^32, then we should compute it in 64bit arithmetic otherwise we might run into overflow issues. CID: 1412892, 1412891 Signed-off-by: Lionel Landwerlin <[email protected]> Reviewed-by: Anuj Phogat <[email protected]>
Diffstat (limited to 'src/intel/isl/isl.c')
-rw-r--r--src/intel/isl/isl.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/intel/isl/isl.c b/src/intel/isl/isl.c
index ba56d86c178..1026fe94952 100644
--- a/src/intel/isl/isl.c
+++ b/src/intel/isl/isl.c
@@ -1469,7 +1469,7 @@ isl_surf_init_s(const struct isl_device *dev,
uint32_t base_alignment;
uint64_t size;
if (tiling == ISL_TILING_LINEAR) {
- size = row_pitch * padded_h_el + pad_bytes;
+ size = (uint64_t) row_pitch * padded_h_el + pad_bytes;
/* From the Broadwell PRM Vol 2d, RENDER_SURFACE_STATE::SurfaceBaseAddress:
*
@@ -1494,7 +1494,7 @@ isl_surf_init_s(const struct isl_device *dev,
const uint32_t total_h_tl =
isl_align_div(padded_h_el, tile_info.logical_extent_el.height);
- size = total_h_tl * tile_info.phys_extent_B.height * row_pitch;
+ size = (uint64_t) total_h_tl * tile_info.phys_extent_B.height * row_pitch;
const uint32_t tile_size = tile_info.phys_extent_B.width *
tile_info.phys_extent_B.height;