From: Stephen Rothwell Date: Tue, 6 Nov 2007 06:26:42 +0000 (+1100) Subject: [POWERPC] iSeries: Fix ref counting in vio setup X-Git-Tag: v2.6.24-rc3~175^2~7 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7992344fdeb9b3bc0ce6eacaf600eb801f231c30;p=linux-2.6 [POWERPC] iSeries: Fix ref counting in vio setup Signed-off-by: Stephen Rothwell Signed-off-by: Paul Mackerras --- diff --git a/arch/powerpc/platforms/iseries/vio.c b/arch/powerpc/platforms/iseries/vio.c index d6435b0397..be06cfd9fa 100644 --- a/arch/powerpc/platforms/iseries/vio.c +++ b/arch/powerpc/platforms/iseries/vio.c @@ -523,15 +523,16 @@ static void __init get_viotape_info(struct device_node *vio_root) static int __init iseries_vio_init(void) { struct device_node *vio_root; + int ret = -ENODEV; if (!firmware_has_feature(FW_FEATURE_ISERIES)) - return -ENODEV; + goto out; iommu_vio_init(); vio_root = of_find_node_by_path("/vdevice"); if (!vio_root) - return -ENODEV; + goto out; if (viopath_hostLp == HvLpIndexInvalid) { vio_set_hostlp(); @@ -544,10 +545,11 @@ static int __init iseries_vio_init(void) get_viocd_info(vio_root); get_viotape_info(vio_root); - return 0; + ret = 0; put_node: of_node_put(vio_root); - return -ENODEV; + out: + return ret; } arch_initcall(iseries_vio_init);