aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/hypfs
diff options
context:
space:
mode:
authorMichael Holzheu <holzheu@linux.vnet.ibm.com>2010-10-29 10:50:39 -0400
committerMartin Schwidefsky <sky@mschwide.boeblingen.de.ibm.com>2010-10-29 10:50:50 -0400
commit3c8ebca0453c71a2a8be79e6dd40e7be2d6167cb (patch)
tree7ebee2073ac4bd32638931fadadcfc22a4855675 /arch/s390/hypfs
parent0b52783d4feb14d6ff990a63512a66d6131d41f9 (diff)
[S390] hypfs: Fix error handling in hypfs_diag initialization
Fix the following two error handling bugs in hypfs_diag_init(): * No need for calling diag204_free_buffer() * Initialize name table only in case of LPAR and prevent error message on non-LPAR systems. Signed-off-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/hypfs')
-rw-r--r--arch/s390/hypfs/hypfs_diag.c19
1 files changed, 11 insertions, 8 deletions
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c
index 020e51c063d2..cd4a81be9cf8 100644
--- a/arch/s390/hypfs/hypfs_diag.c
+++ b/arch/s390/hypfs/hypfs_diag.c
@@ -638,18 +638,21 @@ __init int hypfs_diag_init(void)
638 pr_err("The hardware system does not support hypfs\n"); 638 pr_err("The hardware system does not support hypfs\n");
639 return -ENODATA; 639 return -ENODATA;
640 } 640 }
641 rc = diag224_get_name_table();
642 if (rc) {
643 diag204_free_buffer();
644 pr_err("The hardware system does not provide all "
645 "functions required by hypfs\n");
646 }
647 if (diag204_info_type == INFO_EXT) { 641 if (diag204_info_type == INFO_EXT) {
648 rc = hypfs_dbfs_init(); 642 rc = hypfs_dbfs_init();
649 if (rc) 643 if (rc)
650 diag204_free_buffer(); 644 return rc;
651 } 645 }
652 return rc; 646 if (MACHINE_IS_LPAR) {
647 rc = diag224_get_name_table();
648 if (rc) {
649 pr_err("The hardware system does not provide all "
650 "functions required by hypfs\n");
651 debugfs_remove(dbfs_d204_file);
652 return rc;
653 }
654 }
655 return 0;
653} 656}
654 657
655void hypfs_diag_exit(void) 658void hypfs_diag_exit(void)