From 18427071831046aa7ff1071d053fc5956641a906 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Fri, 9 Jul 2021 20:05:54 +0200 Subject: [PATCH] tegra: Fix mmap() of GEM buffer objects Store 64-bit offset values and use libdrm's built-in drm_mmap() function instead of mmap() to ensure the full 64-bit offset is used. Reviewed-by: Mikko Perttunen Signed-off-by: Thierry Reding --- tegra/private.h | 2 +- tegra/tegra.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tegra/private.h b/tegra/private.h index 215dd330..d0f2944b 100644 --- a/tegra/private.h +++ b/tegra/private.h @@ -41,7 +41,7 @@ struct drm_tegra { struct drm_tegra_bo { struct drm_tegra *drm; uint32_t handle; - uint32_t offset; + uint64_t offset; uint32_t flags; uint32_t size; atomic_t ref; diff --git a/tegra/tegra.c b/tegra/tegra.c index 74e1fd33..a9087e95 100644 --- a/tegra/tegra.c +++ b/tegra/tegra.c @@ -211,8 +211,8 @@ drm_public int drm_tegra_bo_map(struct drm_tegra_bo *bo, void **ptr) bo->offset = args.offset; - bo->map = mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, - drm->fd, bo->offset); + bo->map = drm_mmap(NULL, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED, + drm->fd, bo->offset); if (bo->map == MAP_FAILED) { bo->map = NULL; return -errno;