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@xxxxxxxxxxxxxxx> Thanks, Andi ...