@@ -505,6 +505,14 @@ static bool platform_has_relocs_enabled(const struct i915_execbuffer *eb)
return false;
}
+static bool platform_allows_pass_alignment(const struct i915_execbuffer *eb)
+{
+ if (GRAPHICS_VER(eb->i915) < 4)
+ return true;
+
+ return false;
+}
+
static int
eb_validate_vma(struct i915_execbuffer *eb,
struct drm_i915_gem_exec_object2 *entry,
@@ -513,6 +521,9 @@ eb_validate_vma(struct i915_execbuffer *eb,
if (entry->relocation_count && !platform_has_relocs_enabled(eb))
return -EINVAL;
+ if (entry->alignment && !platform_allows_pass_alignment(eb))
+ return -EINVAL;
+
if (unlikely(entry->flags & eb->invalid_flags))
return -EINVAL;
Ensure passing alignment is not possible by UMD starting on gens4+. Inspected UMD code - Mesa, Compute (NEO), Media-Driver, xf86-intel-video seems to be alignment == 0 ready. Libdrm potentially uses alignment but it is used in some IGTs which remains intact during libdrm removal (there's no possibility to properly rewrite those tests due to specific hw requirement - dual gpus). Signed-off-by: Zbigniew Kempczyński <zbigniew.kempczynski@intel.com> Cc: Jason Ekstrand <jason@jlekstrand.net> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> --- drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c | 11 +++++++++++ 1 file changed, 11 insertions(+)