linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure
@ 2018-05-31  6:23 Stephen Boyd
  2018-05-31 17:00 ` Benson Leung
  2018-06-04  7:45 ` Lee Jones
  0 siblings, 2 replies; 3+ messages in thread
From: Stephen Boyd @ 2018-05-31  6:23 UTC (permalink / raw)
  To: Lee Jones
  Cc: linux-kernel, Benson Leung, Enric Balletbo i Serra,
	Gwendal Grignou, Andy Shevchenko

If the feature query fails during this driver's probe, we memset the
features bits to 0, but then we continue to overwrite that with whatever
junk we read back when the feature probing failed. In the case of a SPI
device, it may be complete junk, causing the caller of this function to
think certain features are present when they aren't. Don't copy over the
bad message on failure so we can fail more gracefully.

Fixes: e4244ebddae2 ("platform/chrome: Introduce a new function to check EC features.")
Cc: Benson Leung <bleung@chromium.org>
Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Cc: Gwendal Grignou <gwendal@chromium.org>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
---
 drivers/mfd/cros_ec_dev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
index 1d6dc5c7a19d..d37c79426c87 100644
--- a/drivers/mfd/cros_ec_dev.c
+++ b/drivers/mfd/cros_ec_dev.c
@@ -113,10 +113,10 @@ static int cros_ec_check_features(struct cros_ec_dev *ec, int feature)
 			dev_warn(ec->dev, "cannot get EC features: %d/%d\n",
 				 ret, msg->result);
 			memset(ec->features, 0, sizeof(ec->features));
+		} else {
+			memcpy(ec->features, msg->data, sizeof(ec->features));
 		}
 
-		memcpy(ec->features, msg->data, sizeof(ec->features));
-
 		dev_dbg(ec->dev, "EC features %08x %08x\n",
 			ec->features[0], ec->features[1]);
 
-- 
Sent by a computer through tubes

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure
  2018-05-31  6:23 [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure Stephen Boyd
@ 2018-05-31 17:00 ` Benson Leung
  2018-06-04  7:45 ` Lee Jones
  1 sibling, 0 replies; 3+ messages in thread
From: Benson Leung @ 2018-05-31 17:00 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: Lee Jones, linux-kernel, Benson Leung, Enric Balletbo i Serra,
	Gwendal Grignou, Andy Shevchenko, vpalatin

[-- Attachment #1: Type: text/plain, Size: 1869 bytes --]

Hi Stephen,

On Wed, May 30, 2018 at 11:23:43PM -0700, Stephen Boyd wrote:
> If the feature query fails during this driver's probe, we memset the
> features bits to 0, but then we continue to overwrite that with whatever
> junk we read back when the feature probing failed. In the case of a SPI
> device, it may be complete junk, causing the caller of this function to
> think certain features are present when they aren't. Don't copy over the
> bad message on failure so we can fail more gracefully.
> 
> Fixes: e4244ebddae2 ("platform/chrome: Introduce a new function to check EC features.")
> Cc: Benson Leung <bleung@chromium.org>
> Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Cc: Gwendal Grignou <gwendal@chromium.org>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Signed-off-by: Stephen Boyd <swboyd@chromium.org>

Acked-by: Benson Leung <bleung@chromium.org>

> ---
>  drivers/mfd/cros_ec_dev.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c
> index 1d6dc5c7a19d..d37c79426c87 100644
> --- a/drivers/mfd/cros_ec_dev.c
> +++ b/drivers/mfd/cros_ec_dev.c
> @@ -113,10 +113,10 @@ static int cros_ec_check_features(struct cros_ec_dev *ec, int feature)
>  			dev_warn(ec->dev, "cannot get EC features: %d/%d\n",
>  				 ret, msg->result);
>  			memset(ec->features, 0, sizeof(ec->features));
> +		} else {
> +			memcpy(ec->features, msg->data, sizeof(ec->features));
>  		}
>  
> -		memcpy(ec->features, msg->data, sizeof(ec->features));
> -
>  		dev_dbg(ec->dev, "EC features %08x %08x\n",
>  			ec->features[0], ec->features[1]);
>  
> -- 
> Sent by a computer through tubes
> 

-- 
Benson Leung
Staff Software Engineer
Chrome OS Kernel
Google Inc.
bleung@google.com
Chromium OS Project
bleung@chromium.org

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure
  2018-05-31  6:23 [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure Stephen Boyd
  2018-05-31 17:00 ` Benson Leung
@ 2018-06-04  7:45 ` Lee Jones
  1 sibling, 0 replies; 3+ messages in thread
From: Lee Jones @ 2018-06-04  7:45 UTC (permalink / raw)
  To: Stephen Boyd
  Cc: linux-kernel, Benson Leung, Enric Balletbo i Serra,
	Gwendal Grignou, Andy Shevchenko

On Wed, 30 May 2018, Stephen Boyd wrote:

> If the feature query fails during this driver's probe, we memset the
> features bits to 0, but then we continue to overwrite that with whatever
> junk we read back when the feature probing failed. In the case of a SPI
> device, it may be complete junk, causing the caller of this function to
> think certain features are present when they aren't. Don't copy over the
> bad message on failure so we can fail more gracefully.
> 
> Fixes: e4244ebddae2 ("platform/chrome: Introduce a new function to check EC features.")
> Cc: Benson Leung <bleung@chromium.org>
> Cc: Enric Balletbo i Serra <enric.balletbo@collabora.com>
> Cc: Gwendal Grignou <gwendal@chromium.org>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Signed-off-by: Stephen Boyd <swboyd@chromium.org>
> ---
>  drivers/mfd/cros_ec_dev.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)

Applied, thanks.

-- 
Lee Jones [李琼斯]
Linaro Services Technical Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-06-04  7:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-31  6:23 [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure Stephen Boyd
2018-05-31 17:00 ` Benson Leung
2018-06-04  7:45 ` Lee Jones

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).