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 <[email protected]>
> Cc: Enric Balletbo i Serra <[email protected]>
> Cc: Gwendal Grignou <[email protected]>
> Cc: Andy Shevchenko <[email protected]>
> Signed-off-by: Stephen Boyd <[email protected]>Acked-by: Benson Leung <[email protected]> > --- > 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. [email protected] Chromium OS Project [email protected]
signature.asc
Description: PGP signature

