Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0f288605 authored by Tom Gundersen's avatar Tom Gundersen Committed by Sean Paul
Browse files

drm: Don't swallow error codes in drm_dev_alloc()



There are many reasons other than ENOMEM that drm_dev_init() can
fail. Return ERR_PTR rather than NULL to be able to distinguish
these in the caller.

Signed-off-by: default avatarTom Gundersen <teg@jklm.no>
Signed-off-by: default avatarSean Paul <seanpaul@chromium.org>
Link: http://patchwork.freedesktop.org/patch/msgid/20160921145919.13754-2-teg@jklm.no
parent c6bf811a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -198,8 +198,8 @@ static int arcpgu_probe(struct platform_device *pdev)
	int ret;

	drm = drm_dev_alloc(&arcpgu_drm_driver, &pdev->dev);
	if (!drm)
		return -ENOMEM;
	if (IS_ERR(drm))
		return PTR_ERR(drm);

	ret = arcpgu_load(drm);
	if (ret)
+2 −2
Original line number Diff line number Diff line
@@ -326,8 +326,8 @@ static int hdlcd_drm_bind(struct device *dev)
		return -ENOMEM;

	drm = drm_dev_alloc(&hdlcd_driver, dev);
	if (!drm)
		return -ENOMEM;
	if (IS_ERR(drm))
		return PTR_ERR(drm);

	drm->dev_private = hdlcd;
	dev_set_drvdata(dev, drm);
+2 −2
Original line number Diff line number Diff line
@@ -311,8 +311,8 @@ static int malidp_bind(struct device *dev)
		return ret;

	drm = drm_dev_alloc(&malidp_driver, dev);
	if (!drm) {
		ret = -ENOMEM;
	if (IS_ERR(drm)) {
		ret = PTR_ERR(drm);
		goto alloc_fail;
	}

+2 −2
Original line number Diff line number Diff line
@@ -797,8 +797,8 @@ static int atmel_hlcdc_dc_drm_probe(struct platform_device *pdev)
	int ret;

	ddev = drm_dev_alloc(&atmel_hlcdc_dc_driver, &pdev->dev);
	if (!ddev)
		return -ENOMEM;
	if (IS_ERR(ddev))
		return PTR_ERR(ddev);

	ret = atmel_hlcdc_dc_load(ddev);
	if (ret)
+3 −3
Original line number Diff line number Diff line
@@ -591,7 +591,7 @@ EXPORT_SYMBOL(drm_dev_init);
 * own struct should look at using drm_dev_init() instead.
 *
 * RETURNS:
 * Pointer to new DRM device, or NULL if out of memory.
 * Pointer to new DRM device, or ERR_PTR on failure.
 */
struct drm_device *drm_dev_alloc(struct drm_driver *driver,
				 struct device *parent)
@@ -601,12 +601,12 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,

	dev = kzalloc(sizeof(*dev), GFP_KERNEL);
	if (!dev)
		return NULL;
		return ERR_PTR(-ENOMEM);

	ret = drm_dev_init(dev, driver, parent);
	if (ret) {
		kfree(dev);
		return NULL;
		return ERR_PTR(ret);
	}

	return dev;
Loading