[PATCH 5/9] drm/qxl: avoid accessing iosys_map internals.

Dave Airlie airlied at gmail.com
Thu May 22 06:52:14 UTC 2025


From: Dave Airlie <airlied at redhat.com>

This uses the new accessors to avoid touching the iosys_map internals.

Signed-off-by: Dave Airlie <airlied at redhat.com>
---
 drivers/gpu/drm/qxl/qxl_display.c | 14 +++++++-------
 drivers/gpu/drm/qxl/qxl_draw.c    |  4 ++--
 drivers/gpu/drm/qxl/qxl_object.c  |  8 ++++----
 3 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/drivers/gpu/drm/qxl/qxl_display.c b/drivers/gpu/drm/qxl/qxl_display.c
index 70aff64ced87..e833b0bbff47 100644
--- a/drivers/gpu/drm/qxl/qxl_display.c
+++ b/drivers/gpu/drm/qxl/qxl_display.c
@@ -602,16 +602,16 @@ static struct qxl_bo *qxl_create_cursor(struct qxl_device *qdev,
 	cursor.chunk.next_chunk = 0;
 	cursor.chunk.prev_chunk = 0;
 	cursor.chunk.data_size = size;
-	if (cursor_map.is_iomem) {
-		memcpy_toio(cursor_map.vaddr_iomem,
+	if (iosys_map_is_iomem(&cursor_map)) {
+		memcpy_toio(iosys_map_ioptr(&cursor_map),
 			    &cursor, sizeof(cursor));
-		memcpy_toio(cursor_map.vaddr_iomem + sizeof(cursor),
-			    user_map.vaddr, size);
+		memcpy_toio(iosys_map_ioptr(&cursor_map) + sizeof(cursor),
+			    iosys_map_ptr(&user_map), size);
 	} else {
-		memcpy(cursor_map.vaddr,
+		memcpy(iosys_map_ptr(&cursor_map),
 		       &cursor, sizeof(cursor));
-		memcpy(cursor_map.vaddr + sizeof(cursor),
-		       user_map.vaddr, size);
+		memcpy(iosys_map_ptr(&cursor_map) + sizeof(cursor),
+		       iosys_map_ptr(&user_map), size);
 	}
 
 	qxl_bo_vunmap_and_unpin(user_bo);
diff --git a/drivers/gpu/drm/qxl/qxl_draw.c b/drivers/gpu/drm/qxl/qxl_draw.c
index 3a3e127ce297..6000936bc8d0 100644
--- a/drivers/gpu/drm/qxl/qxl_draw.c
+++ b/drivers/gpu/drm/qxl/qxl_draw.c
@@ -52,7 +52,7 @@ static struct qxl_rect *drawable_set_clipping(struct qxl_device *qdev,
 	ret = qxl_bo_vmap_locked(clips_bo, &map);
 	if (ret)
 		return NULL;
-	dev_clips = map.vaddr; /* TODO: Use mapping abstraction properly */
+	dev_clips = iosys_map_ptr(&map); /* TODO: Use mapping abstraction properly */
 
 	dev_clips->num_rects = num_clips;
 	dev_clips->chunk.next_chunk = 0;
@@ -206,7 +206,7 @@ void qxl_draw_dirty_fb(struct qxl_device *qdev,
 	ret = qxl_bo_vmap_locked(bo, &surface_map);
 	if (ret)
 		goto out_release_backoff;
-	surface_base = surface_map.vaddr; /* TODO: Use mapping abstraction properly */
+	surface_base = iosys_map_ptr(&surface_map); /* TODO: Use mapping abstraction properly */
 
 	ret = qxl_image_init(qdev, release, dimage, surface_base,
 			     left - dumb_shadow_offset,
diff --git a/drivers/gpu/drm/qxl/qxl_object.c b/drivers/gpu/drm/qxl/qxl_object.c
index 66635c55cf85..dcc1f6393885 100644
--- a/drivers/gpu/drm/qxl/qxl_object.c
+++ b/drivers/gpu/drm/qxl/qxl_object.c
@@ -172,10 +172,10 @@ int qxl_bo_vmap_locked(struct qxl_bo *bo, struct iosys_map *map)
 	bo->map_count = 1;
 
 	/* TODO: Remove kptr in favor of map everywhere. */
-	if (bo->map.is_iomem)
-		bo->kptr = (void *)bo->map.vaddr_iomem;
+	if (iosys_map_is_iomem(&bo->map))
+		bo->kptr = (void *)iosys_map_ioptr(&bo->map);
 	else
-		bo->kptr = bo->map.vaddr;
+		bo->kptr = iosys_map_ptr(&bo->map);
 
 out:
 	*map = bo->map;
@@ -230,7 +230,7 @@ void *qxl_bo_kmap_atomic_page(struct qxl_device *qdev,
 	ret = qxl_bo_vmap_locked(bo, &bo_map);
 	if (ret)
 		return NULL;
-	rptr = bo_map.vaddr; /* TODO: Use mapping abstraction properly */
+	rptr = iosys_map_ptr(&bo_map); /* TODO: Use mapping abstraction properly */
 
 	rptr += page_offset * PAGE_SIZE;
 	return rptr;
-- 
2.49.0



More information about the dri-devel mailing list