Re: [PATCH v2] drm/fbdev-shmem: don't warn on a transient dirty callback failure
From: Jiahao Xu
Date: Wed Nov 11 2026 - 20:45:01 EST
Hi Thomas,
thanks for the quick look.
> Cosmetic? Failing to allocate memory seems like a significant problem to me.
You are right, and "cosmetic" was a poor choice of words on my side. The
allocation failure is significant -- what I meant is that the patch does not
downgrade it: the error is still returned to the caller unchanged.
What I am after is the drm_WARN_ONCE() call. It fires for a failure that
userspace can trigger by writing to the fbdev fd under memory pressure, and
it produces a splat that panics with panic_on_warn and that syzbot turns into
a kernel bug report (extid=369ee6a6e9d0bbf14b37). The same failure is
already reported to userspace through the return value, so the WARN does not
add any information that would identify a driver problem.
For the record, v1 got this wrong in a way that is worth keeping in mind:
with
if (drm_WARN_ONCE(dev, ret, "Dirty helper failed: ret=%d\n", ret))
return ret;
the propagation is gated on the value of the WARN macro, which yields 0 when
the warning is disabled, i.e. -ENOMEM was silently dropped. v2 keeps the
propagation unconditional and only skips the splat for -ENOMEM:
drm_WARN_ONCE(dev, ret && ret != -ENOMEM,
"Dirty helper failed: ret=%d\n", ret);
if (ret)
return ret;
If you would rather keep some diagnostics here, I am glad to resend with
either of these instead:
a) as-is: keep the warning for failures other than -ENOMEM, propagate all;
b) replace the WARN with drm_dbg_ratelimited()/drm_err_ratelimited();
c) or drop the patch, if you consider the WARN appropriate in this path.
Which one would you prefer?
Thanks,
Jiahao