[PATCH v5 3/3] drm/i915: Fix harmful driver register/unregister asymmetry
Andi Shyti
andi.shyti at linux.intel.com
Wed Mar 19 01:01:54 UTC 2025
Hi Janusz,
...
> @@ -634,10 +635,14 @@ static void i915_driver_register(struct drm_i915_private *dev_priv)
> intel_vgpu_register(dev_priv);
>
> /* Reveal our presence to userspace */
> - if (drm_dev_register(&dev_priv->drm, 0)) {
> + ret = drm_dev_register(&dev_priv->drm, 0);
> + if (ret) {
> i915_probe_error(dev_priv,
> "Failed to register driver for userspace access!\n");
> - return;
> + drm_dev_unregister(&dev_priv->drm);
> + i915_pmu_unregister(dev_priv);
> + i915_gem_driver_unregister(dev_priv);
> + return ret;
I would have used a goto here, but it's just my preference.
> }
>
> i915_debugfs_register(dev_priv);
> @@ -660,6 +665,8 @@ static void i915_driver_register(struct drm_i915_private *dev_priv)
>
> if (i915_switcheroo_register(dev_priv))
> drm_err(&dev_priv->drm, "Failed to register vga switcheroo!\n");
> +
> + return 0;
> }
>
> /**
> @@ -834,7 +841,9 @@ int i915_driver_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
> if (ret)
> goto out_cleanup_gem;
>
> - i915_driver_register(i915);
> + ret = i915_driver_register(i915);
> + if (ret)
> + goto out_cleanup_gem;
looks good!
Reviewed-by: Andi Shyti <andi.shyti at linux.intel.com>
Thanks,
Andi
...
More information about the Intel-gfx
mailing list