drm/xe: Clear xe->display when no longer valid

Don't leave a stale xe->display pointer hanging around after
the display driver has been torn down.

While xe shouldn't hit the display reset related issue that
affects i915, leaving stale pointer floating around still
seems like a bad idea.

Cc: Jani Nikula <jani.nikula@intel.com>
Cc: Jouni Högander <jouni.hogander@intel.com>
Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Link: https://patch.msgid.link/20260415210411.24750-3-ville.syrjala@linux.intel.com
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
This commit is contained in:
Ville Syrjälä 2026-04-16 00:04:06 +03:00
parent 758eedf64b
commit cc07f2925b

View File

@ -520,9 +520,10 @@ void xe_display_pm_runtime_resume(struct xe_device *xe)
static void display_device_remove(struct drm_device *dev, void *arg)
{
struct intel_display *display = arg;
struct xe_device *xe = arg;
intel_display_device_remove(display);
intel_display_device_remove(xe->display);
xe->display = NULL;
}
static bool irq_enabled(struct drm_device *drm)
@ -587,12 +588,12 @@ int xe_display_probe(struct xe_device *xe)
if (IS_ERR(display))
return PTR_ERR(display);
err = drmm_add_action_or_reset(&xe->drm, display_device_remove, display);
xe->display = display;
err = drmm_add_action_or_reset(&xe->drm, display_device_remove, xe);
if (err)
return err;
xe->display = display;
if (intel_display_device_present(display))
return 0;