From: Kees Cook <keescook@chromium.org>
To: Harry Wentland <harry.wentland@amd.com>
Cc: Jani Nikula <jani.nikula@linux.intel.com>,
David Airlie <airlied@linux.ie>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
linux-hardening@vger.kernel.org,
Thomas Zimmermann <tzimmermann@suse.de>,
Thierry Reding <treding@nvidia.com>
Subject: Re: [PATCH] drm/dp: Actually read Adjust Request Post Cursor2 register
Date: Thu, 9 Dec 2021 15:41:26 -0800 [thread overview]
Message-ID: <202112091539.6B349AC@keescook> (raw)
In-Reply-To: <2b7d760c-9ab8-b607-efc6-1ed276d67668@amd.com>
On Thu, Dec 09, 2021 at 05:20:45PM -0500, Harry Wentland wrote:
>
>
> On 2021-12-09 01:23, Kees Cook wrote:
> > On Wed, Dec 08, 2021 at 01:19:28PM +0200, Jani Nikula wrote:
> >> On Fri, 03 Dec 2021, Kees Cook <keescook@chromium.org> wrote:
> >>> The link_status array was not large enough to read the Adjust Request
> >>> Post Cursor2 register. Adjust the size to include it. Found with a
> >>> -Warray-bounds build:
> >>>
> >>> drivers/gpu/drm/drm_dp_helper.c: In function 'drm_dp_get_adjust_request_post_cursor':
> >>> drivers/gpu/drm/drm_dp_helper.c:59:27: error: array subscript 10 is outside array bounds of 'const u8[6]' {aka 'const unsigned char[6]'} [-Werror=array-bounds]
> >>> 59 | return link_status[r - DP_LANE0_1_STATUS];
> >>> | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
> >>> drivers/gpu/drm/drm_dp_helper.c:147:51: note: while referencing 'link_status'
> >>> 147 | u8 drm_dp_get_adjust_request_post_cursor(const u8 link_status[DP_LINK_STATUS_SIZE],
> >>> | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>>
> >>> Fixes: 79465e0ffeb9 ("drm/dp: Add helper to get post-cursor adjustments")
> >>> Signed-off-by: Kees Cook <keescook@chromium.org>
> >>
> >> Using DP_ADJUST_REQUEST_POST_CURSOR2 has been deprecated since DP 1.3
> >> published in 2014, and Tegra is the only user of
> >> drm_dp_get_adjust_request_post_cursor().
> >
> > I see POST_CURSOR2 is used here too:
> >
> > drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> >
>
> Looks like we read and parse that in the admgpu driver without
> using drm_dp_get_adjust_request_post_cursor.
Right, and probably that could be switched to use it, but I'm not sure
what the impact of the larger link_status read is.
>
> I don't have a strong feeling but I liked your original
> patch a bit better. I'm not sure what it means when part
> of a spec is deprecated. Once a spec is written display
> vendors might implement it. We should make sure that
> displays like that are always handled in a sane manner.
Jani, Dave, any guidance here? I'm fine with whatever, but the current
code is for sure broken. ;)
-Kees
--
Kees Cook
WARNING: multiple messages have this Message-ID (diff)
From: Kees Cook <keescook@chromium.org>
To: Harry Wentland <harry.wentland@amd.com>
Cc: David Airlie <airlied@linux.ie>,
linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org,
Thomas Zimmermann <tzimmermann@suse.de>,
Thierry Reding <treding@nvidia.com>,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH] drm/dp: Actually read Adjust Request Post Cursor2 register
Date: Thu, 9 Dec 2021 15:41:26 -0800 [thread overview]
Message-ID: <202112091539.6B349AC@keescook> (raw)
In-Reply-To: <2b7d760c-9ab8-b607-efc6-1ed276d67668@amd.com>
On Thu, Dec 09, 2021 at 05:20:45PM -0500, Harry Wentland wrote:
>
>
> On 2021-12-09 01:23, Kees Cook wrote:
> > On Wed, Dec 08, 2021 at 01:19:28PM +0200, Jani Nikula wrote:
> >> On Fri, 03 Dec 2021, Kees Cook <keescook@chromium.org> wrote:
> >>> The link_status array was not large enough to read the Adjust Request
> >>> Post Cursor2 register. Adjust the size to include it. Found with a
> >>> -Warray-bounds build:
> >>>
> >>> drivers/gpu/drm/drm_dp_helper.c: In function 'drm_dp_get_adjust_request_post_cursor':
> >>> drivers/gpu/drm/drm_dp_helper.c:59:27: error: array subscript 10 is outside array bounds of 'const u8[6]' {aka 'const unsigned char[6]'} [-Werror=array-bounds]
> >>> 59 | return link_status[r - DP_LANE0_1_STATUS];
> >>> | ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
> >>> drivers/gpu/drm/drm_dp_helper.c:147:51: note: while referencing 'link_status'
> >>> 147 | u8 drm_dp_get_adjust_request_post_cursor(const u8 link_status[DP_LINK_STATUS_SIZE],
> >>> | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >>>
> >>> Fixes: 79465e0ffeb9 ("drm/dp: Add helper to get post-cursor adjustments")
> >>> Signed-off-by: Kees Cook <keescook@chromium.org>
> >>
> >> Using DP_ADJUST_REQUEST_POST_CURSOR2 has been deprecated since DP 1.3
> >> published in 2014, and Tegra is the only user of
> >> drm_dp_get_adjust_request_post_cursor().
> >
> > I see POST_CURSOR2 is used here too:
> >
> > drivers/gpu/drm/amd/display/dc/core/dc_link_dp.c
> >
>
> Looks like we read and parse that in the admgpu driver without
> using drm_dp_get_adjust_request_post_cursor.
Right, and probably that could be switched to use it, but I'm not sure
what the impact of the larger link_status read is.
>
> I don't have a strong feeling but I liked your original
> patch a bit better. I'm not sure what it means when part
> of a spec is deprecated. Once a spec is written display
> vendors might implement it. We should make sure that
> displays like that are always handled in a sane manner.
Jani, Dave, any guidance here? I'm fine with whatever, but the current
code is for sure broken. ;)
-Kees
--
Kees Cook
next prev parent reply other threads:[~2021-12-09 23:41 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-03 8:43 [PATCH] drm/dp: Actually read Adjust Request Post Cursor2 register Kees Cook
2021-12-03 8:43 ` Kees Cook
2021-12-08 11:19 ` Jani Nikula
2021-12-08 11:19 ` Jani Nikula
2021-12-09 5:54 ` Kees Cook
2021-12-09 5:54 ` Kees Cook
2021-12-09 6:23 ` Kees Cook
2021-12-09 6:23 ` Kees Cook
2021-12-09 22:20 ` Harry Wentland
2021-12-09 23:41 ` Kees Cook [this message]
2021-12-09 23:41 ` Kees Cook
2021-12-10 10:06 ` Jani Nikula
2021-12-10 16:53 ` Kees Cook
2021-12-10 16:53 ` Kees Cook
2021-12-13 9:34 ` Jani Nikula
2021-12-13 9:34 ` Jani Nikula
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=202112091539.6B349AC@keescook \
--to=keescook@chromium.org \
--cc=airlied@linux.ie \
--cc=dri-devel@lists.freedesktop.org \
--cc=harry.wentland@amd.com \
--cc=jani.nikula@linux.intel.com \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=treding@nvidia.com \
--cc=tzimmermann@suse.de \
/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.