aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc')
-rw-r--r--arch/powerpc/platforms/iseries/vio.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/powerpc/platforms/iseries/vio.c b/arch/powerpc/platforms/iseries/vio.c
index d6435b03971f..be06cfd9fa3d 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)
523static int __init iseries_vio_init(void) 523static int __init iseries_vio_init(void)
524{ 524{
525 struct device_node *vio_root; 525 struct device_node *vio_root;
526 int ret = -ENODEV;
526 527
527 if (!firmware_has_feature(FW_FEATURE_ISERIES)) 528 if (!firmware_has_feature(FW_FEATURE_ISERIES))
528 return -ENODEV; 529 goto out;
529 530
530 iommu_vio_init(); 531 iommu_vio_init();
531 532
532 vio_root = of_find_node_by_path("/vdevice"); 533 vio_root = of_find_node_by_path("/vdevice");
533 if (!vio_root) 534 if (!vio_root)
534 return -ENODEV; 535 goto out;
535 536
536 if (viopath_hostLp == HvLpIndexInvalid) { 537 if (viopath_hostLp == HvLpIndexInvalid) {
537 vio_set_hostlp(); 538 vio_set_hostlp();
@@ -544,10 +545,11 @@ static int __init iseries_vio_init(void)
544 get_viocd_info(vio_root); 545 get_viocd_info(vio_root);
545 get_viotape_info(vio_root); 546 get_viotape_info(vio_root);
546 547
547 return 0; 548 ret = 0;
548 549
549 put_node: 550 put_node:
550 of_node_put(vio_root); 551 of_node_put(vio_root);
551 return -ENODEV; 552 out:
553 return ret;
552} 554}
553arch_initcall(iseries_vio_init); 555arch_initcall(iseries_vio_init);