Module: Mesa
Branch: main
Commit: 53ccb421a272ec88598fb942bcb0bcd19cba11fa
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=53ccb421a272ec88598fb942bcb0bcd19cba11fa

Author: Rob Clark <[email protected]>
Date:   Fri Aug 11 11:30:48 2023 -0700

freedreno/drm: Simplify backend mmap impl

Signed-off-by: Rob Clark <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24733>

---

 src/freedreno/drm/freedreno_bo.c | 33 ++++++++++++++++-----------------
 1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/src/freedreno/drm/freedreno_bo.c b/src/freedreno/drm/freedreno_bo.c
index 4a48d3e91f5..546223d0898 100644
--- a/src/freedreno/drm/freedreno_bo.c
+++ b/src/freedreno/drm/freedreno_bo.c
@@ -586,23 +586,14 @@ fd_bo_is_cached(struct fd_bo *bo)
 void *
 fd_bo_map_os_mmap(struct fd_bo *bo)
 {
-   if (!bo->map) {
-      uint64_t offset;
-      int ret;
-
-      ret = bo->funcs->offset(bo, &offset);
-      if (ret) {
-         return NULL;
-      }
-
-      bo->map = os_mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED,
-                        bo->dev->fd, offset);
-      if (bo->map == MAP_FAILED) {
-         ERROR_MSG("mmap failed: %s", strerror(errno));
-         bo->map = NULL;
-      }
+   uint64_t offset;
+   int ret;
+   ret = bo->funcs->offset(bo, &offset);
+   if (ret) {
+      return NULL;
    }
-   return bo->map;
+   return os_mmap(0, bo->size, PROT_READ | PROT_WRITE, MAP_SHARED,
+                  bo->dev->fd, offset);
 }
 
 void *
@@ -614,7 +605,15 @@ fd_bo_map(struct fd_bo *bo)
    if (bo->alloc_flags & FD_BO_NOMAP)
       return NULL;
 
-   return bo->funcs->map(bo);
+   if (!bo->map) {
+      bo->map = bo->funcs->map(bo);
+      if (bo->map == MAP_FAILED) {
+         ERROR_MSG("mmap failed: %s", strerror(errno));
+         bo->map = NULL;
+      }
+   }
+
+   return bo->map;
 }
 
 void

Reply via email to