aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpi_dbg.c15
-rw-r--r--drivers/acpi/apei/einj.c86
-rw-r--r--drivers/acpi/custom_method.c6
-rw-r--r--drivers/acpi/ec_sys.c36
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, &notrigger);
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, &notrigger);
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
797err_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);
807err_release: 767err_release:
808 apei_resources_release(&einj_resources); 768 apei_resources_release(&einj_resources);
809err_fini: 769err_fini:
810 apei_resources_fini(&einj_resources); 770 apei_resources_fini(&einj_resources);
811err_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
80static int __init acpi_custom_method_init(void) 80static 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
111static int acpi_ec_add_debugfs(struct acpi_ec *ec, unsigned int ec_device_count) 111static 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
144error:
145 debugfs_remove_recursive(acpi_ec_debugfs_dir);
146 return -ENOMEM;
147} 130}
148 131
149static int __init acpi_ec_sys_init(void) 132static 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
159static void __exit acpi_ec_sys_exit(void) 139static void __exit acpi_ec_sys_exit(void)