[igt-dev] [PATCH i-g-t] lib/intel_bufops: Fix regression on 5.4 kernel

Vidya Srinivas vidya.srinivas at intel.com
Mon Sep 20 07:56:23 UTC 2021


Starting commit 8759c4a3020ce4 "Add intel_buf_init_in_region"
__intel_buf_init uses gem_create_in_memory_regions instead of
gem_create. Older kernels like 5.4 still dont have support for
I915_GEM_CREATE_EXT_MEMORY_REGIONS (i915_gem_create_ext_ioctl)
from kernel commit (https://patchwork.freedesktop.org/patch/431581/?series=89648&rev=1)
Due to this, the flip-vs-fences tests are failing on kernel 5.4
Patch adds fall back to gem_create when __gem_create_in_memory_region_list fails.

v2 - Addressed review comments from Zbigniew and Mark
Added the fall back in __intel_buf_init

Signed-off-by: Vidya Srinivas <vidya.srinivas at intel.com>
---
 lib/intel_bufops.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index f5f67eddabd7..1caebdf2962a 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -818,8 +818,10 @@ static void __intel_buf_init(struct buf_ops *bops,
 
 	if (handle)
 		buf->handle = handle;
-	else
-		buf->handle = gem_create_in_memory_regions(bops->fd, size, region);
+	else {
+		if( __gem_create_in_memory_regions(bops->fd, &handle, size, region) != 0)
+			buf->handle = gem_create(bops->fd, size);
+	}
 
 	set_hw_tiled(bops, buf);
 }
-- 
2.33.0



More information about the igt-dev mailing list