Thanks for comments,
On 29.06.2022 07:38, Murthy, Arun R wrote:
void intel_fbdev_unregister(struct drm_i915_private *dev_priv) {
struct intel_fbdev *ifbdev = dev_priv->fbdev; @@ -573,6 +594,8 @@
void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
if (!ifbdev)
> void intel_fbdev_unregister(struct drm_i915_private *dev_priv) {
> struct intel_fbdev *ifbdev = dev_priv->fbdev; @@ -573,6 +594,8 @@
> void intel_fbdev_unregister(struct drm_i915_private *dev_priv)
> if (!ifbdev)
> return;
>
> + intel_fbdev_hpd_set_suspend(dev_pri
HPD event after fbdev unregistration can cause registration of deferred
fbdev which will not be unregistered later, causing use-after-free.
To avoid it HPD handling should be suspended before fbdev unregistration.
It should fix following GPF:
[272.634530] general protection fault, probably for non