diff options
| -rw-r--r-- | drivers/acpi/acpi_dbg.c | 15 | ||||
| -rw-r--r-- | drivers/acpi/apei/einj.c | 86 | ||||
| -rw-r--r-- | drivers/acpi/custom_method.c | 6 | ||||
| -rw-r--r-- | drivers/acpi/ec_sys.c | 36 |
4 files changed, 32 insertions, 111 deletions
diff --git a/drivers/acpi/acpi_dbg.c b/drivers/acpi/acpi_dbg.c index a2dcd62ea32f..f3bca448b305 100644 --- a/drivers/acpi/acpi_dbg.c +++ b/drivers/acpi/acpi_dbg.c | |||
| @@ -752,11 +752,6 @@ int __init acpi_aml_init(void) | |||
| 752 | { | 752 | { |
| 753 | int ret = 0; | 753 | int ret = 0; |
| 754 | 754 | ||
| 755 | if (!acpi_debugfs_dir) { | ||
| 756 | ret = -ENOENT; | ||
| 757 | goto err_exit; | ||
| 758 | } | ||
| 759 | |||
| 760 | /* Initialize AML IO interface */ | 755 | /* Initialize AML IO interface */ |
| 761 | mutex_init(&acpi_aml_io.lock); | 756 | mutex_init(&acpi_aml_io.lock); |
| 762 | init_waitqueue_head(&acpi_aml_io.wait); | 757 | init_waitqueue_head(&acpi_aml_io.wait); |
| @@ -766,10 +761,6 @@ int __init acpi_aml_init(void) | |||
| 766 | S_IFREG | S_IRUGO | S_IWUSR, | 761 | S_IFREG | S_IRUGO | S_IWUSR, |
| 767 | acpi_debugfs_dir, NULL, | 762 | acpi_debugfs_dir, NULL, |
| 768 | &acpi_aml_operations); | 763 | &acpi_aml_operations); |
| 769 | if (acpi_aml_dentry == NULL) { | ||
| 770 | ret = -ENODEV; | ||
| 771 | goto err_exit; | ||
| 772 | } | ||
| 773 | ret = acpi_register_debugger(THIS_MODULE, &acpi_aml_debugger); | 764 | ret = acpi_register_debugger(THIS_MODULE, &acpi_aml_debugger); |
| 774 | if (ret) | 765 | if (ret) |
| 775 | goto err_fs; | 766 | goto err_fs; |
| @@ -788,10 +779,8 @@ void __exit acpi_aml_exit(void) | |||
| 788 | { | 779 | { |
| 789 | if (acpi_aml_initialized) { | 780 | if (acpi_aml_initialized) { |
| 790 | acpi_unregister_debugger(&acpi_aml_debugger); | 781 | acpi_unregister_debugger(&acpi_aml_debugger); |
| 791 | if (acpi_aml_dentry) { | 782 | debugfs_remove(acpi_aml_dentry); |
| 792 | debugfs_remove(acpi_aml_dentry); | 783 | acpi_aml_dentry = NULL; |
| 793 | acpi_aml_dentry = NULL; | ||
| 794 | } | ||
| 795 | acpi_aml_initialized = false; | 784 | acpi_aml_initialized = false; |
| 796 | } | 785 | } |
| 797 | } | 786 | } |
diff --git a/drivers/acpi/apei/einj.c b/drivers/acpi/apei/einj.c index fcccbfdbdd1a..c42299e048e4 100644 --- a/drivers/acpi/apei/einj.c +++ b/drivers/acpi/apei/einj.c | |||
| @@ -679,7 +679,6 @@ static int __init einj_init(void) | |||
| 679 | { | 679 | { |
| 680 | int rc; | 680 | int rc; |
| 681 | acpi_status status; | 681 | acpi_status status; |
| 682 | struct dentry *fentry; | ||
| 683 | struct apei_exec_context ctx; | 682 | struct apei_exec_context ctx; |
| 684 | 683 | ||
| 685 | if (acpi_disabled) { | 684 | if (acpi_disabled) { |
| @@ -707,25 +706,13 @@ static int __init einj_init(void) | |||
| 707 | 706 | ||
| 708 | rc = -ENOMEM; | 707 | rc = -ENOMEM; |
| 709 | einj_debug_dir = debugfs_create_dir("einj", apei_get_debugfs_dir()); | 708 | einj_debug_dir = debugfs_create_dir("einj", apei_get_debugfs_dir()); |
| 710 | if (!einj_debug_dir) { | ||
| 711 | pr_err("Error creating debugfs node.\n"); | ||
| 712 | goto err_cleanup; | ||
| 713 | } | ||
| 714 | 709 | ||
| 715 | fentry = debugfs_create_file("available_error_type", S_IRUSR, | 710 | debugfs_create_file("available_error_type", S_IRUSR, einj_debug_dir, |
| 716 | einj_debug_dir, NULL, | 711 | NULL, &available_error_type_fops); |
| 717 | &available_error_type_fops); | 712 | debugfs_create_file("error_type", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 718 | if (!fentry) | 713 | NULL, &error_type_fops); |
| 719 | goto err_cleanup; | 714 | debugfs_create_file("error_inject", S_IWUSR, einj_debug_dir, |
| 720 | 715 | NULL, &error_inject_fops); | |
| 721 | fentry = debugfs_create_file("error_type", S_IRUSR | S_IWUSR, | ||
| 722 | einj_debug_dir, NULL, &error_type_fops); | ||
| 723 | if (!fentry) | ||
| 724 | goto err_cleanup; | ||
| 725 | fentry = debugfs_create_file("error_inject", S_IWUSR, | ||
| 726 | einj_debug_dir, NULL, &error_inject_fops); | ||
| 727 | if (!fentry) | ||
| 728 | goto err_cleanup; | ||
| 729 | 716 | ||
| 730 | apei_resources_init(&einj_resources); | 717 | apei_resources_init(&einj_resources); |
| 731 | einj_exec_ctx_init(&ctx); | 718 | einj_exec_ctx_init(&ctx); |
| @@ -750,66 +737,37 @@ static int __init einj_init(void) | |||
| 750 | rc = -ENOMEM; | 737 | rc = -ENOMEM; |
| 751 | einj_param = einj_get_parameter_address(); | 738 | einj_param = einj_get_parameter_address(); |
| 752 | if ((param_extension || acpi5) && einj_param) { | 739 | if ((param_extension || acpi5) && einj_param) { |
| 753 | fentry = debugfs_create_x32("flags", S_IRUSR | S_IWUSR, | 740 | debugfs_create_x32("flags", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 754 | einj_debug_dir, &error_flags); | 741 | &error_flags); |
| 755 | if (!fentry) | 742 | debugfs_create_x64("param1", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 756 | goto err_unmap; | 743 | &error_param1); |
| 757 | fentry = debugfs_create_x64("param1", S_IRUSR | S_IWUSR, | 744 | debugfs_create_x64("param2", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 758 | einj_debug_dir, &error_param1); | 745 | &error_param2); |
| 759 | if (!fentry) | 746 | debugfs_create_x64("param3", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 760 | goto err_unmap; | 747 | &error_param3); |
| 761 | fentry = debugfs_create_x64("param2", S_IRUSR | S_IWUSR, | 748 | debugfs_create_x64("param4", S_IRUSR | S_IWUSR, einj_debug_dir, |
| 762 | einj_debug_dir, &error_param2); | 749 | &error_param4); |
| 763 | if (!fentry) | 750 | debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR, |
| 764 | goto err_unmap; | 751 | einj_debug_dir, ¬rigger); |
| 765 | fentry = debugfs_create_x64("param3", S_IRUSR | S_IWUSR, | ||
| 766 | einj_debug_dir, &error_param3); | ||
| 767 | if (!fentry) | ||
| 768 | goto err_unmap; | ||
| 769 | fentry = debugfs_create_x64("param4", S_IRUSR | S_IWUSR, | ||
| 770 | einj_debug_dir, &error_param4); | ||
| 771 | if (!fentry) | ||
| 772 | goto err_unmap; | ||
| 773 | |||
| 774 | fentry = debugfs_create_x32("notrigger", S_IRUSR | S_IWUSR, | ||
| 775 | einj_debug_dir, ¬rigger); | ||
| 776 | if (!fentry) | ||
| 777 | goto err_unmap; | ||
| 778 | } | 752 | } |
| 779 | 753 | ||
| 780 | if (vendor_dev[0]) { | 754 | if (vendor_dev[0]) { |
| 781 | vendor_blob.data = vendor_dev; | 755 | vendor_blob.data = vendor_dev; |
| 782 | vendor_blob.size = strlen(vendor_dev); | 756 | vendor_blob.size = strlen(vendor_dev); |
| 783 | fentry = debugfs_create_blob("vendor", S_IRUSR, | 757 | debugfs_create_blob("vendor", S_IRUSR, einj_debug_dir, |
| 784 | einj_debug_dir, &vendor_blob); | 758 | &vendor_blob); |
| 785 | if (!fentry) | 759 | debugfs_create_x32("vendor_flags", S_IRUSR | S_IWUSR, |
| 786 | goto err_unmap; | 760 | einj_debug_dir, &vendor_flags); |
| 787 | fentry = debugfs_create_x32("vendor_flags", S_IRUSR | S_IWUSR, | ||
| 788 | einj_debug_dir, &vendor_flags); | ||
| 789 | if (!fentry) | ||
| 790 | goto err_unmap; | ||
| 791 | } | 761 | } |
| 792 | 762 | ||
| 793 | pr_info("Error INJection is initialized.\n"); | 763 | pr_info("Error INJection is initialized.\n"); |
| 794 | 764 | ||
| 795 | return 0; | 765 | return 0; |
| 796 | 766 | ||
| 797 | err_unmap: | ||
| 798 | if (einj_param) { | ||
| 799 | acpi_size size = (acpi5) ? | ||
| 800 | sizeof(struct set_error_type_with_address) : | ||
| 801 | sizeof(struct einj_parameter); | ||
| 802 | |||
| 803 | acpi_os_unmap_iomem(einj_param, size); | ||
| 804 | pr_err("Error creating param extension debugfs nodes.\n"); | ||
| 805 | } | ||
| 806 | apei_exec_post_unmap_gars(&ctx); | ||
| 807 | err_release: | 767 | err_release: |
| 808 | apei_resources_release(&einj_resources); | 768 | apei_resources_release(&einj_resources); |
| 809 | err_fini: | 769 | err_fini: |
| 810 | apei_resources_fini(&einj_resources); | 770 | apei_resources_fini(&einj_resources); |
| 811 | err_cleanup: | ||
| 812 | pr_err("Error creating primary debugfs nodes.\n"); | ||
| 813 | debugfs_remove_recursive(einj_debug_dir); | 771 | debugfs_remove_recursive(einj_debug_dir); |
| 814 | 772 | ||
| 815 | return rc; | 773 | return rc; |
diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c index 4451877f83b6..aa972dc5cb7e 100644 --- a/drivers/acpi/custom_method.c +++ b/drivers/acpi/custom_method.c | |||
| @@ -79,14 +79,8 @@ static const struct file_operations cm_fops = { | |||
| 79 | 79 | ||
| 80 | static int __init acpi_custom_method_init(void) | 80 | static int __init acpi_custom_method_init(void) |
| 81 | { | 81 | { |
| 82 | if (acpi_debugfs_dir == NULL) | ||
| 83 | return -ENOENT; | ||
| 84 | |||
| 85 | cm_dentry = debugfs_create_file("custom_method", S_IWUSR, | 82 | cm_dentry = debugfs_create_file("custom_method", S_IWUSR, |
| 86 | acpi_debugfs_dir, NULL, &cm_fops); | 83 | acpi_debugfs_dir, NULL, &cm_fops); |
| 87 | if (cm_dentry == NULL) | ||
| 88 | return -ENODEV; | ||
| 89 | |||
| 90 | return 0; | 84 | return 0; |
| 91 | } | 85 | } |
| 92 | 86 | ||
diff --git a/drivers/acpi/ec_sys.c b/drivers/acpi/ec_sys.c index dd70d6c2bca0..23faa66ea772 100644 --- a/drivers/acpi/ec_sys.c +++ b/drivers/acpi/ec_sys.c | |||
| @@ -108,52 +108,32 @@ static const struct file_operations acpi_ec_io_ops = { | |||
| 108 | .llseek = default_llseek, | 108 | .llseek = default_llseek, |
| 109 | }; | 109 | }; |
| 110 | 110 | ||
| 111 | static int acpi_ec_add_debugfs(struct acpi_ec *ec, unsigned int ec_device_count) | 111 | static void acpi_ec_add_debugfs(struct acpi_ec *ec, unsigned int ec_device_count) |
| 112 | { | 112 | { |
| 113 | struct dentry *dev_dir; | 113 | struct dentry *dev_dir; |
| 114 | char name[64]; | 114 | char name[64]; |
| 115 | umode_t mode = 0400; | 115 | umode_t mode = 0400; |
| 116 | 116 | ||
| 117 | if (ec_device_count == 0) { | 117 | if (ec_device_count == 0) |
| 118 | acpi_ec_debugfs_dir = debugfs_create_dir("ec", NULL); | 118 | acpi_ec_debugfs_dir = debugfs_create_dir("ec", NULL); |
| 119 | if (!acpi_ec_debugfs_dir) | ||
| 120 | return -ENOMEM; | ||
| 121 | } | ||
| 122 | 119 | ||
| 123 | sprintf(name, "ec%u", ec_device_count); | 120 | sprintf(name, "ec%u", ec_device_count); |
| 124 | dev_dir = debugfs_create_dir(name, acpi_ec_debugfs_dir); | 121 | dev_dir = debugfs_create_dir(name, acpi_ec_debugfs_dir); |
| 125 | if (!dev_dir) { | ||
| 126 | if (ec_device_count != 0) | ||
| 127 | goto error; | ||
| 128 | return -ENOMEM; | ||
| 129 | } | ||
| 130 | 122 | ||
| 131 | if (!debugfs_create_x32("gpe", 0444, dev_dir, &first_ec->gpe)) | 123 | debugfs_create_x32("gpe", 0444, dev_dir, &first_ec->gpe); |
| 132 | goto error; | 124 | debugfs_create_bool("use_global_lock", 0444, dev_dir, |
| 133 | if (!debugfs_create_bool("use_global_lock", 0444, dev_dir, | 125 | &first_ec->global_lock); |
| 134 | &first_ec->global_lock)) | ||
| 135 | goto error; | ||
| 136 | 126 | ||
| 137 | if (write_support) | 127 | if (write_support) |
| 138 | mode = 0600; | 128 | mode = 0600; |
| 139 | if (!debugfs_create_file("io", mode, dev_dir, ec, &acpi_ec_io_ops)) | 129 | debugfs_create_file("io", mode, dev_dir, ec, &acpi_ec_io_ops); |
| 140 | goto error; | ||
| 141 | |||
| 142 | return 0; | ||
| 143 | |||
| 144 | error: | ||
| 145 | debugfs_remove_recursive(acpi_ec_debugfs_dir); | ||
| 146 | return -ENOMEM; | ||
| 147 | } | 130 | } |
| 148 | 131 | ||
| 149 | static int __init acpi_ec_sys_init(void) | 132 | static int __init acpi_ec_sys_init(void) |
| 150 | { | 133 | { |
| 151 | int err = 0; | ||
| 152 | if (first_ec) | 134 | if (first_ec) |
| 153 | err = acpi_ec_add_debugfs(first_ec, 0); | 135 | acpi_ec_add_debugfs(first_ec, 0); |
| 154 | else | 136 | return 0; |
| 155 | err = -ENODEV; | ||
| 156 | return err; | ||
| 157 | } | 137 | } |
| 158 | 138 | ||
| 159 | static void __exit acpi_ec_sys_exit(void) | 139 | static void __exit acpi_ec_sys_exit(void) |
