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

Commit ffa3eb01 authored by Phil Carmody's avatar Phil Carmody Committed by Benjamin Herrenschmidt
Browse files

powerpc/via-pmu: fix error path in find_via_pmu()



Cleanup was not in the reverse order from the set-up, so not all
the gotos made sense, and also it was being avoided completely upon
failure of init_pmu().

Signed-off-by: default avatarPhil Carmody <pc+lkml@asdf.org>
Signed-off-by: default avatarAaro Koskinen <aaro.koskinen@iki.fi>
Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
parent b05ae4ee
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -332,7 +332,7 @@ int __init find_via_pmu(void)
		}
		if (gpio_reg == NULL) {
			printk(KERN_ERR "via-pmu: Can't find GPIO reg !\n");
			goto fail_gpio;
			goto fail;
		}
	} else
		pmu_kind = PMU_UNKNOWN;
@@ -340,7 +340,7 @@ int __init find_via_pmu(void)
	via = ioremap(taddr, 0x2000);
	if (via == NULL) {
		printk(KERN_ERR "via-pmu: Can't map address !\n");
		goto fail;
		goto fail_via_remap;
	}
	
	out_8(&via[IER], IER_CLR | 0x7f);	/* disable all intrs */
@@ -348,10 +348,8 @@ int __init find_via_pmu(void)

	pmu_state = idle;

	if (!init_pmu()) {
		via = NULL;
		return 0;
	}
	if (!init_pmu())
		goto fail_init;

	printk(KERN_INFO "PMU driver v%d initialized for %s, firmware: %02x\n",
	       PMU_DRIVER_VERSION, pbook_type[pmu_kind], pmu_version);
@@ -359,11 +357,15 @@ int __init find_via_pmu(void)
	sys_ctrler = SYS_CTRLER_PMU;
	
	return 1;
 fail:
	of_node_put(vias);

 fail_init:
	iounmap(via);
	via = NULL;
 fail_via_remap:
	iounmap(gpio_reg);
	gpio_reg = NULL;
 fail_gpio:
 fail:
	of_node_put(vias);
	vias = NULL;
	return 0;
}