Commit 5ace2c9d authored by Marcin Slusarz's avatar Marcin Slusarz Committed by Ben Skeggs
Browse files

drm/nouveau: cleanup after display init failure



Depending on exact point of failure, not cleaning would lead to
BUG_ONs/oopses in various distant places.

Signed-off-by: default avatarMarcin Slusarz <marcin.slusarz@gmail.com>
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent d37f60c8
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -325,14 +325,21 @@ nouveau_display_create(struct drm_device *dev)

	ret = disp->create(dev);
	if (ret)
		return ret;
		goto disp_create_err;

	if (dev->mode_config.num_crtc) {
		ret = drm_vblank_init(dev, dev->mode_config.num_crtc);
		if (ret)
			return ret;
			goto vblank_err;
	}

	return 0;

vblank_err:
	disp->destroy(dev);
disp_create_err:
	drm_kms_helper_poll_fini(dev);
	drm_mode_config_cleanup(dev);
	return ret;
}