summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Karol Piatkowski <dominik.karol.piatkowski@intel.com>2022-12-20 08:07:16 +0100
committerKamil Konieczny <kamil.konieczny@linux.intel.com>2022-12-27 16:04:38 +0100
commita96b43f01688e0c93224b0f247acc3439286e1f4 (patch)
tree97261d894b81e90bb795cd16f2e0473edf470707
parentbacfdc84a9c02556c5441deb21e3a3f18a07347d (diff)
lib/intel_allocator: Fixed start offset and alignment
On some platforms it may be required to use non-zero start address that is also aligned. Allocating memory before aligned safe start offset may result in failures. Signed-off-by: Dominik Karol Piatkowski <dominik.karol.piatkowski@intel.com> Cc: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com>
-rw-r--r--lib/intel_allocator.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/intel_allocator.c b/lib/intel_allocator.c
index 3004f15ae..060a65ce1 100644
--- a/lib/intel_allocator.c
+++ b/lib/intel_allocator.c
@@ -910,6 +910,9 @@ static uint64_t __intel_allocator_open_full(int fd, uint32_t ctx,
struct alloc_resp resp;
uint64_t gtt_size;
+ if (!start)
+ req.open.start = gem_detect_safe_start_offset(fd);
+
if (!end) {
igt_assert_f(can_report_gtt_size(fd), "Invalid fd\n");
gtt_size = gem_aperture_size(fd);
@@ -924,6 +927,8 @@ static uint64_t __intel_allocator_open_full(int fd, uint32_t ctx,
if (!default_alignment)
req.open.default_alignment = gem_detect_safe_alignment(fd);
+ req.open.start = ALIGN(req.open.start, req.open.default_alignment);
+
/* Get child_tid only once at open() */
if (child_tid == -1)
child_tid = gettid();