summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2021-03-05 19:41:44 +0100
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2021-03-08 19:10:30 +0100
commit4c324548f09fec413b4ee589174dabacfe17d953 (patch)
tree43db312324b6fccc184402a163c06debbec484a9
parenta030fee8db446aaf928c9c0960a21e319886ffdc (diff)
downloadlwn-4c324548f09fec413b4ee589174dabacfe17d953.tar.gz
lwn-4c324548f09fec413b4ee589174dabacfe17d953.zip
ACPI: utils: Introduce acpi_evaluation_failure_warn()
Quite a few users of ACPI objects want to log a warning message if the evaluation fails which is a repeating pattern, so introduce a helper function for that purpose and convert some code where it is open-coded to using it. No intentional functional impact. Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--drivers/acpi/pci_link.c6
-rw-r--r--drivers/acpi/processor_perflib.c10
-rw-r--r--drivers/acpi/processor_throttling.c16
-rw-r--r--drivers/acpi/utils.c14
-rw-r--r--include/linux/acpi.h5
5 files changed, 28 insertions, 23 deletions
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index b9b80e26cb5c..cb7b900d9466 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -256,8 +256,7 @@ static int acpi_pci_link_get_current(struct acpi_pci_link *link)
status = acpi_walk_resources(handle, METHOD_NAME__CRS,
acpi_pci_link_check_current, &irq);
if (ACPI_FAILURE(status)) {
- acpi_handle_warn(handle, "_CRS evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(handle, "_CRS", status);
result = -ENODEV;
goto end;
}
@@ -345,8 +344,7 @@ static int acpi_pci_link_set(struct acpi_pci_link *link, int irq)
/* check for total failure */
if (ACPI_FAILURE(status)) {
- acpi_handle_warn(handle, "_SRS evaluation failed: %s",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(handle, "_SRS", status);
result = -ENODEV;
goto end;
}
diff --git a/drivers/acpi/processor_perflib.c b/drivers/acpi/processor_perflib.c
index 686b23fb968c..1b6aa635bff6 100644
--- a/drivers/acpi/processor_perflib.c
+++ b/drivers/acpi/processor_perflib.c
@@ -67,9 +67,7 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
acpi_processor_ppc_in_use = true;
if (ACPI_FAILURE(status)) {
- acpi_handle_warn(pr->handle,
- "_PPC evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_PPC", status);
return -ENODEV;
}
}
@@ -199,8 +197,7 @@ static int acpi_processor_get_performance_control(struct acpi_processor *pr)
status = acpi_evaluate_object(pr->handle, "_PCT", NULL, &buffer);
if (ACPI_FAILURE(status)) {
- acpi_handle_warn(pr->handle, "_PCT evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_PCT", status);
return -ENODEV;
}
@@ -300,8 +297,7 @@ static int acpi_processor_get_performance_states(struct acpi_processor *pr)
status = acpi_evaluate_object(pr->handle, "_PSS", NULL, &buffer);
if (ACPI_FAILURE(status)) {
- acpi_handle_warn(pr->handle, "_PSS evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_PSS", status);
return -ENODEV;
}
diff --git a/drivers/acpi/processor_throttling.c b/drivers/acpi/processor_throttling.c
index fb6834cb0882..e61b8f038364 100644
--- a/drivers/acpi/processor_throttling.c
+++ b/drivers/acpi/processor_throttling.c
@@ -281,9 +281,7 @@ static int acpi_processor_get_platform_limit(struct acpi_processor *pr)
status = acpi_evaluate_integer(pr->handle, "_TPC", NULL, &tpc);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND)
- acpi_handle_warn(pr->handle,
- "_TPC evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_TPC", status);
return -ENODEV;
}
@@ -416,9 +414,7 @@ static int acpi_processor_get_throttling_control(struct acpi_processor *pr)
status = acpi_evaluate_object(pr->handle, "_PTC", NULL, &buffer);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND)
- acpi_handle_warn(pr->handle,
- "_PTC evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_PTC", status);
return -ENODEV;
}
@@ -503,9 +499,7 @@ static int acpi_processor_get_throttling_states(struct acpi_processor *pr)
status = acpi_evaluate_object(pr->handle, "_TSS", NULL, &buffer);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND)
- acpi_handle_warn(pr->handle,
- "_TSS evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_TSS", status);
return -ENODEV;
}
@@ -586,9 +580,7 @@ static int acpi_processor_get_tsd(struct acpi_processor *pr)
status = acpi_evaluate_object(pr->handle, "_TSD", NULL, &buffer);
if (ACPI_FAILURE(status)) {
if (status != AE_NOT_FOUND)
- acpi_handle_warn(pr->handle,
- "_TSD evaluation failed: %s\n",
- acpi_format_exception(status));
+ acpi_evaluation_failure_warn(pr->handle, "_TSD", status);
return -ENODEV;
}
diff --git a/drivers/acpi/utils.c b/drivers/acpi/utils.c
index 682edd913b3b..f1aff4dab476 100644
--- a/drivers/acpi/utils.c
+++ b/drivers/acpi/utils.c
@@ -512,6 +512,20 @@ EXPORT_SYMBOL(__acpi_handle_debug);
#endif
/**
+ * acpi_evaluation_failure_warn - Log evaluation failure warning.
+ * @handle: Parent object handle.
+ * @name: Name of the object whose evaluation has failed.
+ * @status: Status value returned by the failing object evaluation.
+ */
+void acpi_evaluation_failure_warn(acpi_handle handle, const char *name,
+ acpi_status status)
+{
+ acpi_handle_warn(handle, "%s evaluation failed: %s\n", name,
+ acpi_format_exception(status));
+}
+EXPORT_SYMBOL_GPL(acpi_evaluation_failure_warn);
+
+/**
* acpi_has_method: Check whether @handle has a method named @name
* @handle: ACPI device handle
* @name: name of object or method
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 9f432411e988..35aa70defc57 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -1027,9 +1027,14 @@ static inline void acpi_ec_set_gpe_wake_mask(u8 action) {}
__printf(3, 4)
void acpi_handle_printk(const char *level, acpi_handle handle,
const char *fmt, ...);
+void acpi_evaluation_failure_warn(acpi_handle handle, const char *name,
+ acpi_status status);
#else /* !CONFIG_ACPI */
static inline __printf(3, 4) void
acpi_handle_printk(const char *level, void *handle, const char *fmt, ...) {}
+static inline void acpi_evaluation_failure_warn(acpi_handle handle,
+ const char *name,
+ acpi_status status) {}
#endif /* !CONFIG_ACPI */
#if defined(CONFIG_ACPI) && defined(CONFIG_DYNAMIC_DEBUG)