kms_frontbuffer_tracking@basic falls over if the fb needs to be migrated
from non-mappable device memory, to the mappable part, due to being
temporarily pinned for scanout, when hitting the CPU fault handler,
which just gives us SIGBUS. If the device has a small BAR let's attempt
to use the mappable portion, if possible.

XXX: perhaps the kernel needs to somehow handle this better?

Signed-off-by: Matthew Auld <matthew.a...@intel.com>
Cc: Thomas Hellström <thomas.hellst...@linux.intel.com>
---
 lib/ioctl_wrappers.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/ioctl_wrappers.c b/lib/ioctl_wrappers.c
index 09eb3ce7..7713e78b 100644
--- a/lib/ioctl_wrappers.c
+++ b/lib/ioctl_wrappers.c
@@ -635,7 +635,8 @@ uint32_t gem_buffer_create_fb_obj(int fd, uint64_t size)
        uint32_t handle;
 
        if (gem_has_lmem(fd))
-               handle = gem_create_in_memory_regions(fd, size, REGION_LMEM(0));
+               handle = gem_create_with_cpu_access_in_memory_regions(fd, size,
+                                                                     
REGION_LMEM(0));
        else
                handle = gem_create(fd, size);
 
-- 
2.34.1

Reply via email to