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 > Cc: Enric Balletbo i Serra > Cc: Gwendal Grignou > Cc: Andy Shevchenko > Signed-off-by: Stephen Boyd Acked-by: Benson Leung > --- > 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