2021-12-18 19:26:35

by Denis Pauk

[permalink] [raw]
Subject: [PATCH 1/1] hwmon: (nct6775) Additional check for ChipID before ASUS WMI usage

WMI monitoring methods can be changed or removed in new ASUS boards
BIOS versions. Such versions return zero instead of a real one as
Chip ID.

Commit adds additional validation for the result of Chip ID call
before enabling access by ASUS WMI methods.

BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
Signed-off-by: Denis Pauk <[email protected]>
---
drivers/hwmon/nct6775.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
index 57ce8633a725..034347ed51c4 100644
--- a/drivers/hwmon/nct6775.c
+++ b/drivers/hwmon/nct6775.c
@@ -5038,7 +5038,8 @@ static int __init sensors_nct6775_init(void)
board_name);
if (err >= 0) {
/* if reading chip id via WMI succeeds, use WMI */
- if (!nct6775_asuswmi_read(0, NCT6775_PORT_CHIPID, &tmp)) {
+ if (!nct6775_asuswmi_read(0, NCT6775_PORT_CHIPID, &tmp) &&
+ tmp) {
pr_info("Using Asus WMI to access %#x chip.\n", tmp);
access = access_asuswmi;
} else {

base-commit: 2585cf9dfaaddf00b069673f27bb3f8530e2039c
--
2.34.1



2021-12-18 19:35:43

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 1/1] hwmon: (nct6775) Additional check for ChipID before ASUS WMI usage

On 12/18/21 11:26 AM, Denis Pauk wrote:
> WMI monitoring methods can be changed or removed in new ASUS boards
> BIOS versions. Such versions return zero instead of a real one as
> Chip ID.
>
> Commit adds additional validation for the result of Chip ID call
> before enabling access by ASUS WMI methods.
>
> BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=204807
> Signed-off-by: Denis Pauk <[email protected]>
> ---
> drivers/hwmon/nct6775.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
> index 57ce8633a725..034347ed51c4 100644
> --- a/drivers/hwmon/nct6775.c
> +++ b/drivers/hwmon/nct6775.c
> @@ -5038,7 +5038,8 @@ static int __init sensors_nct6775_init(void)
> board_name);
> if (err >= 0) {
> /* if reading chip id via WMI succeeds, use WMI */
> - if (!nct6775_asuswmi_read(0, NCT6775_PORT_CHIPID, &tmp)) {
> + if (!nct6775_asuswmi_read(0, NCT6775_PORT_CHIPID, &tmp) &&
> + tmp) {

Please drop the continuation line; the above hurts readability, and in that case
up to 100 columns are allowed.

Thanks,
Guenter

> pr_info("Using Asus WMI to access %#x chip.\n", tmp);
> access = access_asuswmi;
> } else {
>
> base-commit: 2585cf9dfaaddf00b069673f27bb3f8530e2039c
>