From: Claude Code Review Bot <claude-review@example.com>
To: dri-devel-reviews@example.com
Subject: Claude review: drm/xe/tests: avoid build warning on 32-bit targets
Date: Thu, 05 Mar 2026 13:42:12 +1000 [thread overview]
Message-ID: <review-patch1-20260304083741.725121-1-arnd@kernel.org> (raw)
In-Reply-To: <20260304083741.725121-1-arnd@kernel.org>
Patch Review
**The problem is correctly identified** — `resource_size_t` is `u32` on 32-bit and the constant `0x37a800000ull` (~14.9 GiB) doesn't fit.
**The fix is problematic for several reasons:**
1. **Silent data corruption in tests.** The cast truncates `0x37a800000` to `0x7a800000` (~1.9 GiB). This changes the behavior of every test that relies on `TEST_VRAM`:
- At line 71, `vram->usable_size = TEST_VRAM;` would set a much smaller VRAM size
- At line 225, `TEST_VRAM` appears in the `vram_sizes[]` array as a `u64`, where it would also be truncated (the array is `u64` but the macro would expand to a truncated value)
- At line 280, `KUNIT_EXPECT_GE(test, TEST_VRAM, num_vfs * pf_profile_fair_lmem(gt, num_vfs));` would compare against the truncated value
Wait — actually looking again at line 219:
```c
static const u64 vram_sizes[] = {
...
TEST_VRAM,
};
```
With the proposed change, `TEST_VRAM` expands to `(resource_size_t)0x37a800000ull`, which in a `u64` array initializer would store the truncated 32-bit value, changing test semantics.
2. **The cast syntax is a C-style cast without parentheses around the full expression.** While it works, the more conventional kernel style would be to wrap it: `((resource_size_t)0x37a800000ull)`. Without the outer parens, the macro could cause surprises in some expression contexts.
3. **Better alternatives exist:**
- **Skip on 32-bit:** Since the Xe driver is only meaningful on 64-bit x86 platforms, the entire test file could be gated with `#if BITS_PER_LONG == 64` or a Kconfig dependency. The Xe driver itself likely already depends on 64-bit (`CONFIG_64BIT`).
- **Use a smaller value on 32-bit:** An `#ifdef` could select a smaller VRAM size that fits in 32 bits:
```c
#if BITS_PER_LONG == 64
#define TEST_VRAM 0x37a800000ull
#else
#define TEST_VRAM 0x7a800000ull
#endif
```
- **Check if Xe even builds on 32-bit:** If `CONFIG_DRM_XE` depends on `CONFIG_64BIT` (which it likely does for a discrete GPU driver), this warning may only appear in contrived build configurations and the fix may be unnecessary.
**Recommendation:** Check whether `CONFIG_DRM_XE` already depends on `CONFIG_64BIT`. If so, this patch is unnecessary. If not, the better fix is to add that dependency or skip the test on 32-bit, rather than silently truncating test data. The author's instinct in the cover letter — "please treat this as a bug report" — is the right call here.
---
Generated by Claude Code Patch Reviewer
prev parent reply other threads:[~2026-03-05 3:42 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-04 8:37 [PATCH] drm/xe/tests: avoid build warning on 32-bit targets Arnd Bergmann
2026-03-04 8:51 ` Michal Wajdeczko
2026-03-04 9:06 ` Arnd Bergmann
2026-03-05 3:42 ` Claude review: " Claude Code Review Bot
2026-03-05 3:42 ` 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-20260304083741.725121-1-arnd@kernel.org \
--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