From: Roel Kluin <roel.kluin@gmail.com>
To: Jonathan Woithe <jwoithe@physics.adelaide.edu.au>
Cc: Len Brown <lenb@kernel.org>,
akpm@linux-foundation.org, linux-acpi@vger.kernel.org
Subject: Re: [patch 05/12] fujitsu-laptop: fix tests of acpi_evaluate_integer()
Date: Wed, 25 Nov 2009 12:11:03 +0100 [thread overview]
Message-ID: <4B0D10C7.6080603@gmail.com> (raw)
In-Reply-To: <200911250629.nAP6TL2u009406@turbo.physics.adelaide.edu.au>
The wrong test was used, acpi_status status is unsigned. Callers
expect an -errno on failure.
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
---
>>> The wrong test was used acpi_status status is unsigned.
>>> - if (status < 0)
>>> + if (ACPI_FAILURE(status))
>>> return status;
>>
>> as status is a positive number, shouldn't we be returning something like
>> -1 here on failure, rather than status?
>
> These functions are called via the backlight_ops structure by the standard
> backlight class framework and it seems, from a real quick look, that the API
> treats numbers >=0 as valid data. So something like this (untested, off the
> top of my head) might be more appropriate:
> status =
> acpi_evaluate_integer(fujitsu->acpi_handle, "GBLL", NULL, &state);
> - if (status < 0)
> - return status;
> + if (ACPI_FAILURE(status))
> + return -status;
> Otherwise "return -1;" would be fine by me. My only reason for going with
> "-status" is that it might give some clue as to what went wrong. Thoughts?
The acpi errors have an entirely different range, won't that confuse the
caller? Maybe it's better to return an -errno and display the acpi error in
a warning message.
Also, acpi_fujitsu_add() and acpi_fujitsu_notify() ignore a get_lcd_level()
error return. Is that ok?
e.g. something like:
drivers/platform/x86/fujitsu-laptop.c | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/platform/x86/fujitsu-laptop.c b/drivers/platform/x86/fujitsu-laptop.c
index bcd4ba8..714c472 100644
--- a/drivers/platform/x86/fujitsu-laptop.c
+++ b/drivers/platform/x86/fujitsu-laptop.c
@@ -376,8 +376,10 @@ static int get_lcd_level(void)
status =
acpi_evaluate_integer(fujitsu->acpi_handle, "GBLL", NULL, &state);
- if (status < 0)
- return status;
+ if (ACPI_FAILURE(status)) {
+ pr_warning("%s failed, acpi error: %u\n", __func__, status);
+ return -EINVAL;
+ }
fujitsu->brightness_level = state & 0x0fffffff;
@@ -398,8 +400,10 @@ static int get_max_brightness(void)
status =
acpi_evaluate_integer(fujitsu->acpi_handle, "RBLL", NULL, &state);
- if (status < 0)
- return status;
+ if (ACPI_FAILURE(status)) {
+ pr_warning("%s failed, acpi error: %u\n", __func__, status);
+ return -EINVAL;
+ }
fujitsu->max_brightness = state;
next prev parent reply other threads:[~2009-11-25 11:10 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-17 22:27 [patch 05/12] fujitsu-laptop: fix tests of acpi_evaluate_integer() return akpm
2009-11-25 5:58 ` Len Brown
2009-11-25 6:29 ` [patch 05/12] fujitsu-laptop: fix tests of acpi_evaluate_integer() Jonathan Woithe
2009-11-25 11:11 ` Roel Kluin [this message]
2009-11-26 1:26 ` Jonathan Woithe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4B0D10C7.6080603@gmail.com \
--to=roel.kluin@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=jwoithe@physics.adelaide.edu.au \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox