* [PATCH] drm/vmwgfx: Remove duplicates in vmwgfx_bo.h
@ 2026-05-21 22:41 Maaz Mombasawala
2026-05-25 9:30 ` Claude review: " Claude Code Review Bot
2026-05-25 9:30 ` Claude Code Review Bot
0 siblings, 2 replies; 3+ messages in thread
From: Maaz Mombasawala @ 2026-05-21 22:41 UTC (permalink / raw)
To: dri-devel
Cc: bcm-kernel-feedback-list, ian.forbes, zack.rusin,
Maaz Mombasawala
The vmw_user_bo_ref and vmw_user_bo_unref functions are identical to
vmw_bo_reference and vmw_bo_unreference respectively, remove them.
Signed-off-by: Maaz Mombasawala <maaz.mombasawala@broadcom.com>
---
drivers/gpu/drm/vmwgfx/vmwgfx_bo.c | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_bo.h | 15 ---------------
drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 1 -
drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_prime.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 12 ++++++------
drivers/gpu/drm/vmwgfx/vmwgfx_shader.c | 4 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_surface.c | 6 +++---
11 files changed, 21 insertions(+), 37 deletions(-)
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
index d1ce1a58e134..a9a204234ed6 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.c
@@ -539,7 +539,7 @@ static int vmw_user_bo_synccpu_release(struct drm_file *filp,
if (!(flags & drm_vmw_synccpu_allow_cs)) {
atomic_dec(&vmw_bo->cpu_writers);
}
- vmw_user_bo_unref(&vmw_bo);
+ vmw_bo_unreference(&vmw_bo);
}
return ret;
@@ -581,7 +581,7 @@ int vmw_user_bo_synccpu_ioctl(struct drm_device *dev, void *data,
return ret;
ret = vmw_user_bo_synccpu_grab(vbo, arg->flags);
- vmw_user_bo_unref(&vbo);
+ vmw_bo_unreference(&vbo);
if (unlikely(ret != 0)) {
if (ret == -ERESTARTSYS || ret == -EBUSY)
return -EBUSY;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.h b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.h
index cf84a163bfcb..f3c2cfb42588 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_bo.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_bo.h
@@ -213,21 +213,6 @@ static inline struct vmw_bo *vmw_bo_reference(struct vmw_bo *buf)
return buf;
}
-static inline struct vmw_bo *vmw_user_bo_ref(struct vmw_bo *vbo)
-{
- drm_gem_object_get(&vbo->tbo.base);
- return vbo;
-}
-
-static inline void vmw_user_bo_unref(struct vmw_bo **buf)
-{
- struct vmw_bo *tmp_buf = *buf;
-
- *buf = NULL;
- if (tmp_buf)
- drm_gem_object_put(&tmp_buf->tbo.base);
-}
-
static inline struct vmw_bo *to_vmw_bo(struct drm_gem_object *gobj)
{
return container_of((gobj), struct vmw_bo, tbo.base);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
index 091f1039a052..9c882e746e3c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
@@ -502,7 +502,7 @@ static int vmw_cotable_resize(struct vmw_resource *res, size_t new_size)
vmw_resource_mob_attach(res);
/* Let go of the old mob. */
- vmw_user_bo_unref(&old_buf);
+ vmw_bo_unreference(&old_buf);
res->id = vcotbl->type;
ret = dma_resv_reserve_fences(bo->base.resv, 1);
@@ -521,7 +521,7 @@ static int vmw_cotable_resize(struct vmw_resource *res, size_t new_size)
out_wait:
ttm_bo_unpin(bo);
ttm_bo_unreserve(bo);
- vmw_user_bo_unref(&buf);
+ vmw_bo_unreference(&buf);
out_done:
MKS_STAT_TIME_POP(MKSSTAT_KERN_COTABLE_RESIZE);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
index cda55ee009d2..cd46d3995ade 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
@@ -96,7 +96,6 @@ struct vmwgfx_hash_item {
struct vmw_res_func;
-struct vmw_bo;
struct vmw_bo;
struct vmw_resource_dirty;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index e1f18020170a..f3fd45f28140 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -1148,7 +1148,7 @@ static int vmw_translate_mob_ptr(struct vmw_private *dev_priv,
vmw_bo_placement_set(vmw_bo, VMW_BO_DOMAIN_MOB, VMW_BO_DOMAIN_MOB);
ret = vmw_validation_add_bo(sw_context->ctx, vmw_bo);
tmp_bo = vmw_bo;
- vmw_user_bo_unref(&tmp_bo);
+ vmw_bo_unreference(&tmp_bo);
if (unlikely(ret != 0))
return ret;
@@ -1205,7 +1205,7 @@ static int vmw_translate_guest_ptr(struct vmw_private *dev_priv,
VMW_BO_DOMAIN_GMR | VMW_BO_DOMAIN_VRAM);
ret = vmw_validation_add_bo(sw_context->ctx, vmw_bo);
tmp_bo = vmw_bo;
- vmw_user_bo_unref(&tmp_bo);
+ vmw_bo_unreference(&tmp_bo);
if (unlikely(ret != 0))
return ret;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 4db29b645a38..6bd83e49885b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -1968,7 +1968,7 @@ int vmw_connector_get_modes(struct drm_connector *connector)
struct vmw_user_object *vmw_user_object_ref(struct vmw_user_object *uo)
{
if (uo->buffer)
- vmw_user_bo_ref(uo->buffer);
+ vmw_bo_reference(uo->buffer);
else if (uo->surface)
vmw_surface_reference(uo->surface);
return uo;
@@ -1977,7 +1977,7 @@ struct vmw_user_object *vmw_user_object_ref(struct vmw_user_object *uo)
void vmw_user_object_unref(struct vmw_user_object *uo)
{
if (uo->buffer)
- vmw_user_bo_unref(&uo->buffer);
+ vmw_bo_unreference(&uo->buffer);
else if (uo->surface)
vmw_surface_unreference(&uo->surface);
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
index 679adf7c7183..d4a1cd50c325 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c
@@ -451,7 +451,7 @@ int vmw_overlay_ioctl(struct drm_device *dev, void *data,
ret = vmw_overlay_update_stream(dev_priv, buf, arg, true);
- vmw_user_bo_unref(&buf);
+ vmw_bo_unreference(&buf);
out_unlock:
mutex_unlock(&overlay->mutex);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
index 598b90ac7590..6abeb1ee1f8f 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_prime.c
@@ -117,7 +117,7 @@ int vmw_prime_handle_to_fd(struct drm_device *dev,
handle, flags,
prime_fd);
}
- vmw_user_bo_unref(&vbo);
+ vmw_bo_unreference(&vbo);
}
return ret;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
index 388011696941..1391bed79f7b 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
@@ -143,7 +143,7 @@ static void vmw_resource_release(struct kref *kref)
if (res->coherent)
vmw_bo_dirty_release(res->guest_memory_bo);
ttm_bo_unreserve(bo);
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
}
if (likely(res->hw_destroy != NULL)) {
@@ -315,7 +315,7 @@ int vmw_user_object_lookup(struct vmw_private *dev_priv,
uo->buffer,
handle);
if (uo->surface)
- vmw_user_bo_unref(&uo->buffer);
+ vmw_bo_unreference(&uo->buffer);
}
return ret;
@@ -466,11 +466,11 @@ void vmw_resource_unreserve(struct vmw_resource *res,
vmw_resource_mob_detach(res);
if (res->coherent)
vmw_bo_dirty_release(res->guest_memory_bo);
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
}
if (new_guest_memory_bo) {
- res->guest_memory_bo = vmw_user_bo_ref(new_guest_memory_bo);
+ res->guest_memory_bo = vmw_bo_reference(new_guest_memory_bo);
/*
* The validation code should already have added a
@@ -560,7 +560,7 @@ vmw_resource_check_buffer(struct ww_acquire_ctx *ticket,
drm_gem_object_put(&val_buf->bo->base);
val_buf->bo = NULL;
if (guest_memory_dirty)
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
return ret;
}
@@ -736,7 +736,7 @@ int vmw_resource_validate(struct vmw_resource *res, bool intr,
goto out_no_validate;
else if (!res->func->needs_guest_memory && res->guest_memory_bo) {
WARN_ON_ONCE(vmw_resource_mob_attached(res));
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
}
return 0;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
index eca4e3e97eb4..ede4de9dc8b0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
@@ -180,7 +180,7 @@ static int vmw_gb_shader_init(struct vmw_private *dev_priv,
res->guest_memory_size = size;
if (byte_code) {
- res->guest_memory_bo = vmw_user_bo_ref(byte_code);
+ res->guest_memory_bo = vmw_bo_reference(byte_code);
res->guest_memory_offset = offset;
}
shader->size = size;
@@ -809,7 +809,7 @@ static int vmw_shader_define(struct drm_device *dev, struct drm_file *file_priv,
shader_type, num_input_sig,
num_output_sig, tfile, shader_handle);
out_bad_arg:
- vmw_user_bo_unref(&buffer);
+ vmw_bo_unreference(&buffer);
return ret;
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
index 34e55ad07ca9..5a9c953eb73c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_surface.c
@@ -972,7 +972,7 @@ static int vmw_buffer_prime_to_surface_base(struct vmw_private *dev_priv,
*base_p = base;
out:
- vmw_user_bo_unref(&bo);
+ vmw_bo_unreference(&bo);
return ret;
}
@@ -1593,12 +1593,12 @@ vmw_gb_surface_define_internal(struct drm_device *dev,
if (ret == 0) {
if (res->guest_memory_bo->is_dumb) {
VMW_DEBUG_USER("Can't backup surface with a dumb buffer.\n");
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
ret = -EINVAL;
goto out_unlock;
} else if (res->guest_memory_bo->tbo.base.size < res->guest_memory_size) {
VMW_DEBUG_USER("Surface backup buffer too small.\n");
- vmw_user_bo_unref(&res->guest_memory_bo);
+ vmw_bo_unreference(&res->guest_memory_bo);
ret = -EINVAL;
goto out_unlock;
} else {
--
2.54.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Claude review: drm/vmwgfx: Remove duplicates in vmwgfx_bo.h
2026-05-21 22:41 [PATCH] drm/vmwgfx: Remove duplicates in vmwgfx_bo.h Maaz Mombasawala
@ 2026-05-25 9:30 ` Claude Code Review Bot
2026-05-25 9:30 ` Claude Code Review Bot
1 sibling, 0 replies; 3+ messages in thread
From: Claude Code Review Bot @ 2026-05-25 9:30 UTC (permalink / raw)
To: dri-devel-reviews
Overall Series Review
Subject: drm/vmwgfx: Remove duplicates in vmwgfx_bo.h
Author: Maaz Mombasawala <maaz.mombasawala@broadcom.com>
Patches: 1
Reviewed: 2026-05-25T19:30:20.019359
---
This is a straightforward, correct cleanup patch. It removes two inline functions (`vmw_user_bo_ref` and `vmw_user_bo_unref`) from `vmwgfx_bo.h` that are exact duplicates of the existing `vmw_bo_reference` and `vmw_bo_unreference` in the same header, and updates all callers. It also removes a duplicate `struct vmw_bo;` forward declaration in `vmwgfx_drv.h`.
The code transformation is entirely mechanical — every `vmw_user_bo_ref(x)` becomes `vmw_bo_reference(x)` and every `vmw_user_bo_unref(&x)` becomes `vmw_bo_unreference(&x)`. The replacement functions have identical signatures and identical bodies (`drm_gem_object_get`/`drm_gem_object_put` on the same `tbo.base` member), so there is no behavioral change.
**Verdict: Looks good.** No issues found.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 3+ messages in thread
* Claude review: drm/vmwgfx: Remove duplicates in vmwgfx_bo.h
2026-05-21 22:41 [PATCH] drm/vmwgfx: Remove duplicates in vmwgfx_bo.h Maaz Mombasawala
2026-05-25 9:30 ` Claude review: " Claude Code Review Bot
@ 2026-05-25 9:30 ` Claude Code Review Bot
1 sibling, 0 replies; 3+ messages in thread
From: Claude Code Review Bot @ 2026-05-25 9:30 UTC (permalink / raw)
To: dri-devel-reviews
Patch Review
**Correctness of the duplicate claim:**
The removed functions in `vmwgfx_bo.h`:
```c
static inline struct vmw_bo *vmw_user_bo_ref(struct vmw_bo *vbo)
{
drm_gem_object_get(&vbo->tbo.base);
return vbo;
}
static inline void vmw_user_bo_unref(struct vmw_bo **buf)
{
struct vmw_bo *tmp_buf = *buf;
*buf = NULL;
if (tmp_buf)
drm_gem_object_put(&tmp_buf->tbo.base);
}
```
are indeed identical to the retained functions in the same file:
```c
static inline struct vmw_bo *vmw_bo_reference(struct vmw_bo *buf)
{
drm_gem_object_get(&buf->tbo.base);
return buf;
}
static inline void vmw_bo_unreference(struct vmw_bo **buf)
{
struct vmw_bo *tmp_buf = *buf;
*buf = NULL;
if (tmp_buf)
drm_gem_object_put(&tmp_buf->tbo.base);
}
```
The only difference is the parameter name (`vbo` vs `buf`), which has no semantic impact.
**Caller updates:** All 17 call sites across 9 files are mechanically updated — each `vmw_user_bo_ref` → `vmw_bo_reference`, each `vmw_user_bo_unref` → `vmw_bo_unreference`. The argument types and pointer-to-pointer semantics are preserved correctly in every instance.
**Forward declaration cleanup (`vmwgfx_drv.h`):** The patch also removes one of two identical `struct vmw_bo;` forward declarations. The remaining one at line 99 is sufficient.
**No issues found.** This is a clean, correct deduplication.
---
Generated by Claude Code Patch Reviewer
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-05-25 9:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-21 22:41 [PATCH] drm/vmwgfx: Remove duplicates in vmwgfx_bo.h Maaz Mombasawala
2026-05-25 9:30 ` Claude review: " Claude Code Review Bot
2026-05-25 9:30 ` Claude Code Review Bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox