| From d2c3681f04eb3247d75be60ff48fffb1bb6903e4 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 18 Oct 2021 11:25:37 -0700 |
| Subject: platform/x86: thinkpad_acpi: Fix bitwise vs. logical warning |
| |
| From: Nathan Chancellor <nathan@kernel.org> |
| |
| [ Upstream commit fd96e35ea7b95f1e216277805be89d66e4ae962d ] |
| |
| A new warning in clang points out a use of bitwise OR with boolean |
| expressions in this driver: |
| |
| drivers/platform/x86/thinkpad_acpi.c:9061:11: error: use of bitwise '|' with boolean operands [-Werror,-Wbitwise-instead-of-logical] |
| else if ((strlencmp(cmd, "level disengaged") == 0) | |
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| || |
| drivers/platform/x86/thinkpad_acpi.c:9061:11: note: cast one or both operands to int to silence this warning |
| 1 error generated. |
| |
| This should clearly be a logical OR so change it to fix the warning. |
| |
| Fixes: fe98a52ce754 ("ACPI: thinkpad-acpi: add sysfs support to fan subdriver") |
| Link: https://github.com/ClangBuiltLinux/linux/issues/1476 |
| Reported-by: Tor Vic <torvic9@mailbox.org> |
| Signed-off-by: Nathan Chancellor <nathan@kernel.org> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Link: https://lore.kernel.org/r/20211018182537.2316800-1-nathan@kernel.org |
| Reviewed-by: Hans de Goede <hdegoede@redhat.com> |
| Signed-off-by: Hans de Goede <hdegoede@redhat.com> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/platform/x86/thinkpad_acpi.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c |
| index f027609fdab6d..3028d9f1ac59c 100644 |
| --- a/drivers/platform/x86/thinkpad_acpi.c |
| +++ b/drivers/platform/x86/thinkpad_acpi.c |
| @@ -9086,7 +9086,7 @@ static int fan_write_cmd_level(const char *cmd, int *rc) |
| |
| if (strlencmp(cmd, "level auto") == 0) |
| level = TP_EC_FAN_AUTO; |
| - else if ((strlencmp(cmd, "level disengaged") == 0) | |
| + else if ((strlencmp(cmd, "level disengaged") == 0) || |
| (strlencmp(cmd, "level full-speed") == 0)) |
| level = TP_EC_FAN_FULLSPEED; |
| else if (sscanf(cmd, "level %d", &level) != 1) |
| -- |
| 2.33.0 |
| |