diff options
| -rw-r--r-- | arch/s390/hypfs/hypfs_diag.c | 19 |
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 | ||
| 655 | void hypfs_diag_exit(void) | 658 | void hypfs_diag_exit(void) |
