DF-1672 / fix.diff
diff --git a/sys/dev/drm/radeon/cik_sdma.c b/sys/dev/drm/radeon/cik_sdma.c --- a/sys/dev/drm/radeon/cik_sdma.c +++ b/sys/dev/drm/radeon/cik_sdma.c @@ -583,13 +583,13 @@ struct radeon_sync sync; int ring_index = rdev->asic->copy.dma_ring_index; struct radeon_ring *ring = &rdev->ring[ring_index]; - u32 size_in_bytes, cur_size_in_bytes; + u64 size_in_bytes, cur_size_in_bytes; int i, num_loops; int r = 0; radeon_sync_create(&sync); - size_in_bytes = (num_gpu_pages << RADEON_GPU_PAGE_SHIFT); + size_in_bytes = ((u64)num_gpu_pages << RADEON_GPU_PAGE_SHIFT); num_loops = DIV_ROUND_UP(size_in_bytes, 0x1fffff); r = radeon_ring_lock(rdev, ring, num_loops * 7 + 14); if (r) { |