Intel-XE Archive on lore.kernel.org
 help / color / mirror / Atom feed
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 &gt->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 = &gt->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 = &gt->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

  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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox