From: Gustavo Sousa <gustavo.sousa@intel.com>
To: "Lin, Shuicheng" <shuicheng.lin@intel.com>,
"Roper, Matthew D" <matthew.d.roper@intel.com>
Cc: "intel-xe@lists.freedesktop.org" <intel-xe@lists.freedesktop.org>
Subject: RE: [PATCH v2] drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status()
Date: Wed, 29 Apr 2026 15:27:37 -0300 [thread overview]
Message-ID: <87jytpaag6.fsf@intel.com> (raw)
In-Reply-To: <87mrylajn2.fsf@intel.com>
Gustavo Sousa <gustavo.sousa@intel.com> writes:
> "Lin, Shuicheng" <shuicheng.lin@intel.com> writes:
>
>> On Thu, Apr 16, 2026 12:38 PM Matthew Roper wrote:
>>> On Thu, Apr 16, 2026 at 03:17:19PM -0300, Gustavo Sousa wrote:
>>> > When media GT is disabled via configfs, there is no allocation for
>>> > media_gt, which is kept as NULL. In such scenario,
>>> > intel_hdcp_gsc_check_status() results in a kernel pagefault error due
>>> > to >->uc.gsc being evaluated as an invalid memory address.
>>> >
>>> > Fix that by introducing a NULL check on media_gt and bailing out early
>>> > if so.
>>> >
>>> > While at it, also drop the NULL check for gsc, since it can't be NULL
>>> > if media_gt is not NULL.
>>> >
>>> > v2:
>>> > - Get address for gsc only after checking that gt is not NULL.
>>> > (Shuicheng)
>>> > - Drop the NULL check for gsc. (Shuicheng)
>>> >
>>> > Cc: Shuicheng Lin <shuicheng.lin@intel.com>
>>> > Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
>>>
>>> We should probably also have
>>>
>>> Fixes: 4af50beb4e0f ("drm/xe: Use gsc_proxy_init_done to check proxy
>>> status")
>>> Cc: <stable@vger.kernel.org> # v6.10+
>>>
>>> too? Or I guess we could make the argument that there don't seem to be any
>>> real devices without the media GT, so it only became possible to trigger this
>>> once we added configfs support for manually disabling GTs?
>>> In that case,
>>>
>>> Fixes: 7abd69278bb5 ("drm/xe/configfs: Add attribute to disable GT types")
>>> Cc: <stable@vger.kernel.org> # v6.19+
>>>
>>> minimizes the number of kernel versions this would be backported to.
>>
>> Is it possible that we have future platform that does not have media gt, and be supported with old kernel?
>> For that case, it should be supported with dkms, so this Fixes tag should not affect. Is it right?
>> So, I prefer this Fixes tag.
>>
>> LGTM.
>> Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
>
> Yeah, I guess it is safer to use the first proposed Fixes tag. I'll use
> that one when applying.
Pushed to drm-xe-next. Thanks Shuicheng and Matt for the review.
--
Gustavo Sousa
>
> --
> Gustavo Sousa
>
>>
>>>
>>>
>>> Anyway, the change itself is
>>>
>>> Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
>>>
>>> > ---
>>> > Changes in v2:
>>> > - EDITME: describe what is new in this series revision.
>>> > - EDITME: use bulletpoints and terse descriptions.
>>> > - Link to v1:
>>> > https://patch.msgid.link/20260302-check-for-null-media_gt-in-intel_hdc
>>> > p_gsc_check_status-v1-1-163d5f826b30@intel.com
>>> > ---
>>> > drivers/gpu/drm/xe/display/xe_hdcp_gsc.c | 12 ++++++++++--
>>> > 1 file changed, 10 insertions(+), 2 deletions(-)
>>> >
>>> > diff --git a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
>>> > b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
>>> > index 29c72aa4b0d2..33494b86205d 100644
>>> > --- a/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
>>> > +++ b/drivers/gpu/drm/xe/display/xe_hdcp_gsc.c
>>> > @@ -37,9 +37,17 @@ static bool intel_hdcp_gsc_check_status(struct
>>> drm_device *drm)
>>> > struct xe_device *xe = to_xe_device(drm);
>>> > struct xe_tile *tile = xe_device_get_root_tile(xe);
>>> > struct xe_gt *gt = tile->media_gt;
>>> > - struct xe_gsc *gsc = >->uc.gsc;
>>> > + struct xe_gsc *gsc;
>>> > +
>>> > + if (!gt) {
>>> > + drm_dbg_kms(&xe->drm,
>>> > + "not checking GSC status for HDCP2.x: media GT not
>>> present or disabled\n");
>>> > + return false;
>>> > + }
>>> > +
>>> > + gsc = >->uc.gsc;
>>> >
>>> > - if (!gsc || !xe_uc_fw_is_available(&gsc->fw)) {
>>> > + if (!xe_uc_fw_is_available(&gsc->fw)) {
>>> > drm_dbg_kms(&xe->drm,
>>> > "GSC Components not ready for HDCP2.x\n");
>>> > return false;
>>> >
>>> > ---
>>> > base-commit: 9ac7dca8d82a4e6d9806ac6c991f0777338833bb
>>> > change-id:
>>> > 20260302-check-for-null-media_gt-in-intel_hdcp_gsc_check_status-
>>> 071898
>>> > b8a402
>>> >
>>> > Best regards,
>>> > --
>>> > Gustavo Sousa <gustavo.sousa@intel.com>
>>> >
>>>
>>> --
>>> Matt Roper
>>> Graphics Software Engineer
>>> Linux GPU Platform Enablement
>>> Intel Corporation
next prev parent reply other threads:[~2026-04-29 18:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-16 18:17 [PATCH v2] drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status() Gustavo Sousa
2026-04-16 18:42 ` ✓ CI.KUnit: success for drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status() (rev2) Patchwork
2026-04-16 19:37 ` [PATCH v2] drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status() Matt Roper
2026-04-17 2:20 ` Lin, Shuicheng
2026-04-29 15:09 ` Gustavo Sousa
2026-04-29 18:27 ` Gustavo Sousa [this message]
2026-04-16 20:13 ` ✓ Xe.CI.BAT: success for drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status() (rev2) Patchwork
2026-04-16 21:58 ` ✗ Xe.CI.FULL: failure " Patchwork
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=87jytpaag6.fsf@intel.com \
--to=gustavo.sousa@intel.com \
--cc=intel-xe@lists.freedesktop.org \
--cc=matthew.d.roper@intel.com \
--cc=shuicheng.lin@intel.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.