mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
drm/xe/hdcp: Add NULL check for media_gt in intel_hdcp_gsc_check_status()
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)
v3:
- Add "Fixes" and "Cc: <stable...>" tags. (Matt)
Fixes: 4af50beb4e ("drm/xe: Use gsc_proxy_init_done to check proxy status")
Cc: <stable@vger.kernel.org> # v6.10+
Reviewed-by: Matt Roper <matthew.d.roper@intel.com>
Reviewed-by: Shuicheng Lin <shuicheng.lin@intel.com>
Link: https://patch.msgid.link/20260416-check-for-null-media_gt-in-intel_hdcp_gsc_check_status-v2-1-9adb9fd3b621@intel.com
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
This commit is contained in:
parent
3096d3e9f4
commit
bfaf87e84c
|
|
@ -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 (!gsc || !xe_uc_fw_is_available(&gsc->fw)) {
|
||||
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 (!xe_uc_fw_is_available(&gsc->fw)) {
|
||||
drm_dbg_kms(&xe->drm,
|
||||
"GSC Components not ready for HDCP2.x\n");
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user