]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/radeon: fix vm page table block size calculation
authorAlex Deucher <alexander.deucher@amd.com>
Wed, 15 Oct 2014 21:20:55 +0000 (17:20 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 14 Nov 2014 18:10:31 +0000 (10:10 -0800)
commit 8e66e134e20b936179ea1535dd4ed19ec4f99dba upstream.

The page offset is 12 bits.  For example if we have an
8 GB VM, we'd need 33 bits.  The number of bits needed
for PD + PT is 21 (33 - 12 or log2(8) + 18), not 20
(log2(8) + 17).

Noticed by Alexey during code review.

Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/radeon/radeon_device.c

index 12c8329644c4af4e8fe5224fbbad5d888d580f28..6684fbf099292834a5f623ea4cf07d21cb4820d8 100644 (file)
@@ -1130,7 +1130,7 @@ static void radeon_check_arguments(struct radeon_device *rdev)
        if (radeon_vm_block_size == -1) {
 
                /* Total bits covered by PD + PTs */
-               unsigned bits = ilog2(radeon_vm_size) + 17;
+               unsigned bits = ilog2(radeon_vm_size) + 18;
 
                /* Make sure the PD is 4K in size up to 8GB address space.
                   Above that split equal between PD and PTs */