aboutsummaryrefslogtreecommitdiff
path: root/arch/s390/hypfs/hypfs_diag.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-10-29 08:49:18 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2010-10-29 08:49:18 -0700
commitf56f44001cb5b40089deac094dbb74e5c9f64d81 (patch)
tree0fb004b475852ed87121a774de7b768bb6164156 /arch/s390/hypfs/hypfs_diag.c
parent162164f7e92da970666e7492fd58644f3c1f8574 (diff)
parent9ec2708053b647969bee862902872d44a5f9b439 (diff)
Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
* 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6: [S390] fix kprobes single stepping [S390] tape: fix dbf usage [S390] dasd: provide a Sense Path Group ID ioctl [S390] ftrace: select HAVE_C_RECORDMCOUNT [S390] vdso: get rid of redefinition warnings [S390] facility detection: remove unused variable [S390] hypfs: Fix error handling in hypfs_diag initialization [S390] topology: fix cpu masks for topology=off case [S390] topology: add SCHED_MC config option [S390] Kconfig: add machine type number to code generation options [S390] Add z196 machine type to setup_hwcaps
Diffstat (limited to 'arch/s390/hypfs/hypfs_diag.c')
-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 020e51c063d..cd4a81be9cf 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)
pr_err("The hardware system does not support hypfs\n");
return -ENODATA;
}
- rc = diag224_get_name_table();
- if (rc) {
- diag204_free_buffer();
- pr_err("The hardware system does not provide all "
- "functions required by hypfs\n");
- }
if (diag204_info_type == INFO_EXT) {
rc = hypfs_dbfs_init();
if (rc)
- diag204_free_buffer();
+ return rc;
}
- return rc;
+ if (MACHINE_IS_LPAR) {
+ rc = diag224_get_name_table();
+ if (rc) {
+ pr_err("The hardware system does not provide all "
+ "functions required by hypfs\n");
+ debugfs_remove(dbfs_d204_file);
+ return rc;
+ }
+ }
+ return 0;
}
void hypfs_diag_exit(void)