From: sashiko-bot@kernel.org
To: "Liu Ying" <victor.liu@nxp.com>
Cc: imx@lists.linux.dev, Frank.Li@kernel.org, robh@kernel.org,
conor+dt@kernel.org, devicetree@vger.kernel.org,
dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v6 03/13] drm/imx: dc-fu: Fix dimensions
Date: Fri, 04 Sep 2026 08:07:52 +0000 [thread overview]
Message-ID: <20260904080752.D34441F00A3D@smtp.kernel.org> (raw)
In-Reply-To: <20260904-imx8-dc-prefetch-v6-3-26643e3f6cb7@nxp.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] Integer underflow in plane dimensions when a plane is fully clipped, causing hardware misconfiguration.
--
commit dbd00e4ed77401b79cffe99deaf03ef1ee191363
Author: Liu Ying <victor.liu@nxp.com>
drm/imx: dc-fu: Fix dimensions
This commit fixes an off-by-one issue in LINEWIDTH, LINECOUNT, FRAMEWIDTH
and FRAMEHEIGHT macro definitions used to set fetchunit dimensions.
> diff --git a/drivers/gpu/drm/imx/dc/dc-fu.c b/drivers/gpu/drm/imx/dc/dc-fu.c
> index 1d8f74babef8a..2e197b3344bd1 100644
> --- a/drivers/gpu/drm/imx/dc/dc-fu.c
> +++ b/drivers/gpu/drm/imx/dc/dc-fu.c
> @@ -31,8 +31,8 @@
> #define STRIDE(x) FIELD_PREP(STRIDE_MASK, (x) - 1)
>
> /* SOURCEBUFFERDIMENSION */
> -#define LINECOUNT(x) FIELD_PREP(GENMASK(29, 16), (x))
> -#define LINEWIDTH(x) FIELD_PREP(GENMASK(13, 0), (x))
> +#define LINECOUNT(x) FIELD_PREP(GENMASK(29, 16), (x) - 1)
> +#define LINEWIDTH(x) FIELD_PREP(GENMASK(13, 0), (x) - 1)
[Severity: High]
Could this unconditional subtraction cause an integer underflow when a
plane is fully clipped?
When an unprivileged userspace application moves a DRM plane completely
off-screen, drm_atomic_helper_check_plane_state() sets
plane_state->visible = false and clips the src and dst rectangles such
that their width and height become 0 or negative.
Because dc_plane_atomic_update() lacks an early return for
!new_state->visible, it appears to extract src_w and src_h and pass them
to these macros:
drivers/gpu/drm/imx/dc/dc-plane.c:dc_plane_atomic_update() {
...
src_w = drm_rect_width(&new_state->src) >> 16;
src_h = drm_rect_height(&new_state->src) >> 16;
...
fu_ops->set_src_buf_dimensions(fu, DC_FETCHUNIT_FRAC0, src_w, src_h);
fu_ops->set_framedimensions(fu, src_w, src_h);
...
}
Because (x) - 1 underflows for x <= 0, FIELD_PREP() would apply the
bitmask and result in the maximum possible field value (16383) being
written to the hardware registers. Will this cause out-of-bounds DMA
fetches leading to IOMMU faults or system lockups?
> diff --git a/drivers/gpu/drm/imx/dc/dc-fu.h b/drivers/gpu/drm/imx/dc/dc-fu.h
> index f678de3ca8c0a..cc93317e30013 100644
> --- a/drivers/gpu/drm/imx/dc/dc-fu.h
> +++ b/drivers/gpu/drm/imx/dc/dc-fu.h
> @@ -38,8 +38,8 @@
> #define YUVCONVERSIONMODE(x) FIELD_PREP(YUVCONVERSIONMODE_MASK, (x))
>
> /* FRAMEDIMENSIONS */
> -#define FRAMEHEIGHT(x) FIELD_PREP(GENMASK(29, 16), (x))
> -#define FRAMEWIDTH(x) FIELD_PREP(GENMASK(13, 0), (x))
> +#define FRAMEHEIGHT(x) FIELD_PREP(GENMASK(29, 16), (x) - 1)
> +#define FRAMEWIDTH(x) FIELD_PREP(GENMASK(13, 0), (x) - 1)
[Severity: High]
Similarly, will these frame dimension macros also underflow to the maximum
field width when height or width is 0 or negative?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260904-imx8-dc-prefetch-v6-0-26643e3f6cb7@nxp.com?part=3
next prev parent reply other threads:[~2026-09-04 8:07 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-04 7:54 [PATCH v6 00/13] drm/imx: dc: Use prefetch engine Liu Ying
2026-09-04 7:54 ` [PATCH v6 01/13] dt-bindings: display: imx: Add i.MX8qxp/qm PRG binding Liu Ying
2026-09-04 7:54 ` [PATCH v6 02/13] dt-bindings: display: imx: Add i.MX8qxp/qm DPR channel binding Liu Ying
2026-09-04 7:54 ` [PATCH v6 03/13] drm/imx: dc-fu: Fix dimensions Liu Ying
2026-09-04 8:07 ` sashiko-bot [this message]
2026-09-04 7:54 ` [PATCH v6 04/13] drm/imx: dc-crtc: Disable at boot Liu Ying
2026-09-04 8:10 ` sashiko-bot
2026-09-04 8:27 ` Maxime Ripard
2026-09-04 7:54 ` [PATCH v6 05/13] drm/imx: dc: Add PRG support Liu Ying
2026-09-04 8:08 ` sashiko-bot
2026-09-04 8:29 ` Maxime Ripard
2026-09-04 7:54 ` [PATCH v6 06/13] drm/imx: dc: Add DPR channel support Liu Ying
2026-09-04 8:07 ` sashiko-bot
2026-09-04 8:29 ` Maxime Ripard
2026-09-04 7:54 ` [PATCH v6 07/13] drm/imx: dc: Use TCON operation mode Liu Ying
2026-09-04 8:05 ` sashiko-bot
2026-09-04 8:32 ` Maxime Ripard
2026-09-04 7:54 ` [PATCH v6 08/13] drm/imx: dc-ed: Support getting source selection Liu Ying
2026-09-04 8:00 ` sashiko-bot
2026-09-04 8:32 ` Maxime Ripard
2026-09-04 7:54 ` [PATCH v6 09/13] drm/imx: dc-lb: Support getting secondary input selection Liu Ying
2026-09-04 8:33 ` Maxime Ripard
2026-09-04 7:55 ` [PATCH v6 10/13] drm/imx: dc-ed: Drop initial source selection Liu Ying
2026-09-04 8:03 ` sashiko-bot
2026-09-04 8:33 ` Maxime Ripard
2026-09-04 7:55 ` [PATCH v6 11/13] drm/imx: dc-lb: Drop initial primary and secondary input selections Liu Ying
2026-09-04 8:33 ` Maxime Ripard
2026-09-04 7:55 ` [PATCH v6 12/13] drm/imx: dc-fu: Get DPR channel Liu Ying
2026-09-04 8:13 ` sashiko-bot
2026-09-04 8:36 ` Maxime Ripard
2026-09-04 7:55 ` [PATCH v6 13/13] drm/imx: dc: Use prefetch engine Liu Ying
2026-09-04 8:13 ` sashiko-bot
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=20260904080752.D34441F00A3D@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=imx@lists.linux.dev \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
--cc=victor.liu@nxp.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.