Messages in this thread | | | Date | Thu, 31 May 2018 10:00:24 -0700 | From | Benson Leung <> | Subject | Re: [PATCH] mfd: cros_ec_dev: Don't advertise junk features on failure |
| |
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 [unhandled content-type:application/pgp-signature] | |