Commit 9125963a authored by Chris Wilson's avatar Chris Wilson

drm/i915: Mark up GTT sizes as u64

Since we use a 64b virtual GTT irrespective of the system, we want to
ensure that the GTT computations remains 64b even on 32b systems,
including treatment of huge virtual pages.

No code generation changes on 64b:
Reported-by: default avatarSergii Romantsov <sergii.romantsov@globallogic.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108282Signed-off-by: default avatarChris Wilson <chris@chris-wilson.co.uk>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Cc: stable@vger.kernel.org
Reviewed-by: default avatarMatthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20181025091823.20571-1-chris@chris-wilson.co.uk
parent 5a400aa3
...@@ -1708,7 +1708,7 @@ static void gen6_dump_ppgtt(struct i915_hw_ppgtt *base, struct seq_file *m) ...@@ -1708,7 +1708,7 @@ static void gen6_dump_ppgtt(struct i915_hw_ppgtt *base, struct seq_file *m)
if (i == 4) if (i == 4)
continue; continue;
seq_printf(m, "\t\t(%03d, %04d) %08lx: ", seq_printf(m, "\t\t(%03d, %04d) %08llx: ",
pde, pte, pde, pte,
(pde * GEN6_PTES + pte) * I915_GTT_PAGE_SIZE); (pde * GEN6_PTES + pte) * I915_GTT_PAGE_SIZE);
for (i = 0; i < 4; i++) { for (i = 0; i < 4; i++) {
......
...@@ -42,9 +42,9 @@ ...@@ -42,9 +42,9 @@
#include "i915_selftest.h" #include "i915_selftest.h"
#include "i915_timeline.h" #include "i915_timeline.h"
#define I915_GTT_PAGE_SIZE_4K BIT(12) #define I915_GTT_PAGE_SIZE_4K BIT_ULL(12)
#define I915_GTT_PAGE_SIZE_64K BIT(16) #define I915_GTT_PAGE_SIZE_64K BIT_ULL(16)
#define I915_GTT_PAGE_SIZE_2M BIT(21) #define I915_GTT_PAGE_SIZE_2M BIT_ULL(21)
#define I915_GTT_PAGE_SIZE I915_GTT_PAGE_SIZE_4K #define I915_GTT_PAGE_SIZE I915_GTT_PAGE_SIZE_4K
#define I915_GTT_MAX_PAGE_SIZE I915_GTT_PAGE_SIZE_2M #define I915_GTT_MAX_PAGE_SIZE I915_GTT_PAGE_SIZE_2M
......
...@@ -551,7 +551,7 @@ static int igt_mock_ppgtt_misaligned_dma(void *arg) ...@@ -551,7 +551,7 @@ static int igt_mock_ppgtt_misaligned_dma(void *arg)
err = igt_check_page_sizes(vma); err = igt_check_page_sizes(vma);
if (vma->page_sizes.gtt != I915_GTT_PAGE_SIZE_4K) { if (vma->page_sizes.gtt != I915_GTT_PAGE_SIZE_4K) {
pr_err("page_sizes.gtt=%u, expected %lu\n", pr_err("page_sizes.gtt=%u, expected %llu\n",
vma->page_sizes.gtt, I915_GTT_PAGE_SIZE_4K); vma->page_sizes.gtt, I915_GTT_PAGE_SIZE_4K);
err = -EINVAL; err = -EINVAL;
} }
......
...@@ -1337,7 +1337,7 @@ static int igt_gtt_reserve(void *arg) ...@@ -1337,7 +1337,7 @@ static int igt_gtt_reserve(void *arg)
GEM_BUG_ON(!drm_mm_node_allocated(&vma->node)); GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
if (vma->node.start != total || if (vma->node.start != total ||
vma->node.size != 2*I915_GTT_PAGE_SIZE) { vma->node.size != 2*I915_GTT_PAGE_SIZE) {
pr_err("i915_gem_gtt_reserve (pass 1) placement failed, found (%llx + %llx), expected (%llx + %lx)\n", pr_err("i915_gem_gtt_reserve (pass 1) placement failed, found (%llx + %llx), expected (%llx + %llx)\n",
vma->node.start, vma->node.size, vma->node.start, vma->node.size,
total, 2*I915_GTT_PAGE_SIZE); total, 2*I915_GTT_PAGE_SIZE);
err = -EINVAL; err = -EINVAL;
...@@ -1386,7 +1386,7 @@ static int igt_gtt_reserve(void *arg) ...@@ -1386,7 +1386,7 @@ static int igt_gtt_reserve(void *arg)
GEM_BUG_ON(!drm_mm_node_allocated(&vma->node)); GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
if (vma->node.start != total || if (vma->node.start != total ||
vma->node.size != 2*I915_GTT_PAGE_SIZE) { vma->node.size != 2*I915_GTT_PAGE_SIZE) {
pr_err("i915_gem_gtt_reserve (pass 2) placement failed, found (%llx + %llx), expected (%llx + %lx)\n", pr_err("i915_gem_gtt_reserve (pass 2) placement failed, found (%llx + %llx), expected (%llx + %llx)\n",
vma->node.start, vma->node.size, vma->node.start, vma->node.size,
total, 2*I915_GTT_PAGE_SIZE); total, 2*I915_GTT_PAGE_SIZE);
err = -EINVAL; err = -EINVAL;
...@@ -1430,7 +1430,7 @@ static int igt_gtt_reserve(void *arg) ...@@ -1430,7 +1430,7 @@ static int igt_gtt_reserve(void *arg)
GEM_BUG_ON(!drm_mm_node_allocated(&vma->node)); GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
if (vma->node.start != offset || if (vma->node.start != offset ||
vma->node.size != 2*I915_GTT_PAGE_SIZE) { vma->node.size != 2*I915_GTT_PAGE_SIZE) {
pr_err("i915_gem_gtt_reserve (pass 3) placement failed, found (%llx + %llx), expected (%llx + %lx)\n", pr_err("i915_gem_gtt_reserve (pass 3) placement failed, found (%llx + %llx), expected (%llx + %llx)\n",
vma->node.start, vma->node.size, vma->node.start, vma->node.size,
offset, 2*I915_GTT_PAGE_SIZE); offset, 2*I915_GTT_PAGE_SIZE);
err = -EINVAL; err = -EINVAL;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment