Takashi Iwai 6b9bd7
From bb52d3691db8cf24cea049235223f3599778f264 Mon Sep 17 00:00:00 2001
Takashi Iwai 6b9bd7
From: Linus Walleij <linus.walleij@linaro.org>
Takashi Iwai 6b9bd7
Date: Sun, 1 May 2022 21:50:29 +0200
Takashi Iwai 6b9bd7
Subject: [PATCH] iio: magnetometer: yas530: Fix memchr_inv() misuse
Takashi Iwai 6b9bd7
Git-commit: bb52d3691db8cf24cea049235223f3599778f264
Takashi Iwai 6b9bd7
Patch-mainline: v5.19-rc4
Takashi Iwai 6b9bd7
References: git-fixes
Takashi Iwai 6b9bd7
Takashi Iwai 6b9bd7
The call to check if the calibration is all zeroes is doing
Takashi Iwai 6b9bd7
it wrong: memchr_inv() returns NULL if the the calibration
Takashi Iwai 6b9bd7
contains all zeroes, but the check is for != NULL.
Takashi Iwai 6b9bd7
Takashi Iwai 6b9bd7
Fix it up. It's probably not an urgent fix because the inner
Takashi Iwai 6b9bd7
check for BIT(7) in data[13] will save us. But fix it.
Takashi Iwai 6b9bd7
Takashi Iwai 6b9bd7
Fixes: de8860b1ed47 ("iio: magnetometer: Add driver for Yamaha YAS530")
Takashi Iwai 6b9bd7
Reported-by: Jakob Hauser <jahau@rocketmail.com>
Takashi Iwai 6b9bd7
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Takashi Iwai 6b9bd7
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Takashi Iwai 6b9bd7
Link: https://lore.kernel.org/r/20220501195029.151852-1-linus.walleij@linaro.org
Takashi Iwai 6b9bd7
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Takashi Iwai 6b9bd7
Acked-by: Takashi Iwai <tiwai@suse.de>
Takashi Iwai 6b9bd7
Takashi Iwai 6b9bd7
---
Takashi Iwai 6b9bd7
 drivers/iio/magnetometer/yamaha-yas530.c | 2 +-
Takashi Iwai 6b9bd7
 1 file changed, 1 insertion(+), 1 deletion(-)
Takashi Iwai 6b9bd7
Takashi Iwai 6b9bd7
diff --git a/drivers/iio/magnetometer/yamaha-yas530.c b/drivers/iio/magnetometer/yamaha-yas530.c
Takashi Iwai 6b9bd7
index 9ff7b0e56cf6..b2bc637150bf 100644
Takashi Iwai 6b9bd7
--- a/drivers/iio/magnetometer/yamaha-yas530.c
Takashi Iwai 6b9bd7
+++ b/drivers/iio/magnetometer/yamaha-yas530.c
Takashi Iwai 6b9bd7
@@ -639,7 +639,7 @@ static int yas532_get_calibration_data(struct yas5xx *yas5xx)
Takashi Iwai 6b9bd7
 	dev_dbg(yas5xx->dev, "calibration data: %*ph\n", 14, data);
Takashi Iwai 6b9bd7
 
Takashi Iwai 6b9bd7
 	/* Sanity check, is this all zeroes? */
Takashi Iwai 6b9bd7
-	if (memchr_inv(data, 0x00, 13)) {
Takashi Iwai 6b9bd7
+	if (memchr_inv(data, 0x00, 13) == NULL) {
Takashi Iwai 6b9bd7
 		if (!(data[13] & BIT(7)))
Takashi Iwai 6b9bd7
 			dev_warn(yas5xx->dev, "calibration is blank!\n");
Takashi Iwai 6b9bd7
 	}
Takashi Iwai 6b9bd7
-- 
Takashi Iwai 6b9bd7
2.35.3
Takashi Iwai 6b9bd7