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

Vidya Srinivas vidya.srinivas at intel.com
Mon Sep 20 10:47:47 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

v3 - Fixed space issue - review comment from Zbigniew

v4 - Addressed review comments from Bhanu

Signed-off-by: Vidya Srinivas <vidya.srinivas at intel.com>
Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
Acked-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
 lib/intel_bufops.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lib/intel_bufops.c b/lib/intel_bufops.c
index f5f67eddabd7..d1395c1605d2 100644
--- a/lib/intel_bufops.c
+++ b/lib/intel_bufops.c
@@ -818,8 +818,12 @@ 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))
+			buf->handle = handle;
+		else
+			buf->handle = gem_create(bops->fd, size);
+	}
 
 	set_hw_tiled(bops, buf);
 }
-- 
2.32.0



More information about the igt-dev mailing list