Commit 77bc7624 authored by Dan Carpenter's avatar Dan Carpenter Committed by Thomas Zimmermann
Browse files

fbdev: chipsfb: Fix error codes in chipsfb_pci_init()



The error codes are not set on these error paths.

Fixes: 145eed48 ("fbdev: Remove conflicting devices on PCI bus")
Signed-off-by: default avatarDan Carpenter <error27@gmail.com>
Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/Y/yG+sm2mhdJeTZW@kili
parent ba3be66f
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -358,16 +358,21 @@ static int chipsfb_pci_init(struct pci_dev *dp, const struct pci_device_id *ent)
	if (rc)
		return rc;

	if (pci_enable_device(dp) < 0) {
	rc = pci_enable_device(dp);
	if (rc < 0) {
		dev_err(&dp->dev, "Cannot enable PCI device\n");
		goto err_out;
	}

	if ((dp->resource[0].flags & IORESOURCE_MEM) == 0)
	if ((dp->resource[0].flags & IORESOURCE_MEM) == 0) {
		rc = -ENODEV;
		goto err_disable;
	}
	addr = pci_resource_start(dp, 0);
	if (addr == 0)
	if (addr == 0) {
		rc = -ENODEV;
		goto err_disable;
	}

	p = framebuffer_alloc(0, &dp->dev);
	if (p == NULL) {
@@ -417,7 +422,8 @@ static int chipsfb_pci_init(struct pci_dev *dp, const struct pci_device_id *ent)

	init_chips(p, addr);

	if (register_framebuffer(p) < 0) {
	rc = register_framebuffer(p);
	if (rc < 0) {
		dev_err(&dp->dev,"C&T 65550 framebuffer failed to register\n");
		goto err_unmap;
	}