Commit bf2fda15 authored by Luc Verhaegen's avatar Luc Verhaegen Committed by Tomi Valkeinen
Browse files

simplefb: add goto error path to probe



Use the usual kernel style of goto error_foo to free resources on probe
error. This is a preparation patch for adding clocks support.

While at it also update ioremap_wc error return from ENODEV to ENOMEM.

Signed-off-by: default avatarLuc Verhaegen <libv@skynet.be>
Acked-by: default avatarStephen Warren <swarren@nvidia.com>
Reviewed-by: default avatarHans de Goede <hdegoede@redhat.com>
Signed-off-by: default avatarHans de Goede <hdegoede@redhat.com>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Reviewed-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Reviewed-by: default avatarDavid Herrmann <dh.herrmann@gmail.com>
Acked-by: default avatarGrant Likely <grant.likely@linaro.org>
Signed-off-by: default avatarTomi Valkeinen <tomi.valkeinen@ti.com>
parent 1270be4a
Loading
Loading
Loading
Loading
+11 −7
Original line number Diff line number Diff line
@@ -220,8 +220,8 @@ static int simplefb_probe(struct platform_device *pdev)

	info->apertures = alloc_apertures(1);
	if (!info->apertures) {
		framebuffer_release(info);
		return -ENOMEM;
		ret = -ENOMEM;
		goto error_fb_release;
	}
	info->apertures->ranges[0].base = info->fix.smem_start;
	info->apertures->ranges[0].size = info->fix.smem_len;
@@ -231,8 +231,8 @@ static int simplefb_probe(struct platform_device *pdev)
	info->screen_base = ioremap_wc(info->fix.smem_start,
				       info->fix.smem_len);
	if (!info->screen_base) {
		framebuffer_release(info);
		return -ENODEV;
		ret = -ENOMEM;
		goto error_fb_release;
	}
	info->pseudo_palette = par->palette;

@@ -247,14 +247,18 @@ static int simplefb_probe(struct platform_device *pdev)
	ret = register_framebuffer(info);
	if (ret < 0) {
		dev_err(&pdev->dev, "Unable to register simplefb: %d\n", ret);
		iounmap(info->screen_base);
		framebuffer_release(info);
		return ret;
		goto error_unmap;
	}

	dev_info(&pdev->dev, "fb%d: simplefb registered!\n", info->node);

	return 0;

error_unmap:
	iounmap(info->screen_base);
error_fb_release:
	framebuffer_release(info);
	return ret;
}

static int simplefb_remove(struct platform_device *pdev)