Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 263f4a30 authored by Henrique de Moraes Holschuh's avatar Henrique de Moraes Holschuh
Browse files

thinkpad-acpi: acpi_evalf fixes



Use acpi_format_exception() in acpi_evalf() instead of logging numeric
errors.

Also, when ACPICA returns an error, we should not be touching the return
object, as it is invalid.  In debug mode, acpi_evalf() callers would
printk the returned crap (but fortunately, not use it).

Signed-off-by: default avatarHenrique de Moraes Holschuh <hmh@hmh.eng.br>
parent 437e470c
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -605,9 +605,10 @@ static int acpi_evalf(acpi_handle handle,

	switch (res_type) {
	case 'd':		/* int */
		if (res)
		success = (status == AE_OK &&
			   out_obj.type == ACPI_TYPE_INTEGER);
		if (success && res)
			*(int *)res = out_obj.integer.value;
		success = status == AE_OK && out_obj.type == ACPI_TYPE_INTEGER;
		break;
	case 'v':		/* void */
		success = status == AE_OK;
@@ -620,8 +621,8 @@ static int acpi_evalf(acpi_handle handle,
	}

	if (!success && !quiet)
		printk(TPACPI_ERR "acpi_evalf(%s, %s, ...) failed: %d\n",
		       method, fmt0, status);
		printk(TPACPI_ERR "acpi_evalf(%s, %s, ...) failed: %s\n",
		       method, fmt0, acpi_format_exception(status));

	return success;
}