diff options
author | Dominik Karol Piatkowski <dominik.karol.piatkowski@intel.com> | 2022-12-20 08:07:16 +0100 |
---|---|---|
committer | Kamil Konieczny <kamil.konieczny@linux.intel.com> | 2022-12-27 16:04:38 +0100 |
commit | a96b43f01688e0c93224b0f247acc3439286e1f4 (patch) | |
tree | 97261d894b81e90bb795cd16f2e0473edf470707 | |
parent | bacfdc84a9c02556c5441deb21e3a3f18a07347d (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.c | 5 |
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(); |