From: Claude Code Review Bot <claude-review@example.com>
To: dri-devel-reviews@example.com
Subject: Claude review: drm/vmwgfx: Never destroy STDU zero's Screen Target
Date: Sat, 16 May 2026 10:41:44 +1000 [thread overview]
Message-ID: <review-patch1-20260514153103.1465013-1-ian.forbes@broadcom.com> (raw)
In-Reply-To: <20260514153103.1465013-1-ian.forbes@broadcom.com>
Patch Review
**Commit message:** Well written. Clearly explains the problem (client can't create a window, user can't wake VM), the root cause (Screen Target destroyed on disable), and the fix. The Fixes tag references the commit that introduced the "don't destroy on inactive" logic, which this patch extends.
**Code review:**
The change at `vmwgfx_stdu.c:455-456`:
```c
if (stdu->base.unit == 0)
return;
```
This is placed after the bind-to-NULL + update sequence (lines 437-441) which blanks the display, and after the existing early return for the "enabled but inactive" case (lines 446-449). So unit 0's Screen Target will still be unbound/blanked — it just won't be destroyed. This is the right behavior: the display goes dark but the ST metadata remains for clients to query.
**Minor concern — skipped `content_fb_type` reset:** When we early-return for unit 0, we also skip the `stdu->content_fb_type = SAME_AS_DISPLAY` assignment at line 462. This is the same situation as the existing early return at line 449, which also skips it, so this is consistent with the existing pattern. However, it's worth noting that `mode_set_nofb()` (line 395-399) always destroys and resets `content_fb_type` before re-defining, so the re-enable path should handle this correctly regardless.
**Interaction with `mode_set_nofb`:** When the CRTC is re-enabled, `vmw_stdu_crtc_mode_set_nofb()` checks `stdu->defined` (line 388) and will destroy + recreate the Screen Target with the new mode. Since we leave `stdu->defined = true` for unit 0, this path works correctly — it will tear down and rebuild as needed.
**No leak on driver teardown:** `vmw_stdu_destroy_st()` checks `stdu->defined` at the top (line 340) and is a no-op if false. Since unit 0 keeps `defined = true`, any cleanup path that calls `destroy_st` will still properly clean up. This looks safe.
**Comment style:** The multi-line comment uses `/* ... */` style which is fine but the kernel generally prefers the opening `/*` on its own line for multi-line comments (network-style). The existing comment above (lines 443-445) uses the same style, so this is at least locally consistent. Not a blocker.
**Overall:** Clean, minimal fix. The approach of special-casing unit 0 is pragmatic — it's the primary display and the one clients will look for. No correctness issues identified.
**Reviewed-by worthy: Yes.**
---
Generated by Claude Code Patch Reviewer
prev parent reply other threads:[~2026-05-16 0:41 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 15:31 [PATCH] drm/vmwgfx: Never destroy STDU zero's Screen Target Ian Forbes
2026-05-16 0:41 ` Claude review: " Claude Code Review Bot
2026-05-16 0:41 ` Claude Code Review Bot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=review-patch1-20260514153103.1465013-1-ian.forbes@broadcom.com \
--to=claude-review@example.com \
--cc=dri-devel-reviews@example.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox