Messages in this thread | | | From | Guenter Roeck <> | Date | Wed, 8 Jun 2022 09:20:29 -0700 | Subject | Re: [PATCH v3 16/23] platform/chrome: cros_ec_proto: return 0 on getting cmd mask success |
| |
On Wed, Jun 8, 2022 at 4:08 AM Tzung-Bi Shih <tzungbi@kernel.org> wrote: > > cros_ec_get_host_command_version_mask() used to return value from > send_command() which is number of available bytes for input payload on > success (i.e. sizeof(struct ec_response_get_cmd_versions)). > > However, the callers don't need to know how many bytes are available. > > Don't return number of available bytes. Instead, return 0 on success; > otherwise, negative integers on error. > > Also remove the unneeded `ver_mask` initialization as the callers should > take it only if cros_ec_get_host_command_version_mask() returns 0.
Make sure this compiles with W=1. Compilers may think that ver_mask may be uninitialized when used.
> > Signed-off-by: Tzung-Bi Shih <tzungbi@kernel.org>
Otherwise
Reviewed-by: Guenter Roeck <groeck@chromium.org>
> --- > Changes from v2: > - Separate Kunit test to another patch. > - Rephrase the commit message. > > Changes from v1: > - Return 0 on success; otherwise, negative intergers. > > drivers/platform/chrome/cros_ec_proto.c | 13 +++++-------- > 1 file changed, 5 insertions(+), 8 deletions(-) > > diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c > index efbabdcb31ae..06bc7db1213e 100644 > --- a/drivers/platform/chrome/cros_ec_proto.c > +++ b/drivers/platform/chrome/cros_ec_proto.c > @@ -453,6 +453,7 @@ static int cros_ec_get_host_command_version_mask(struct cros_ec_device *ec_dev, > if (ret > 0) { > rver = (struct ec_response_get_cmd_versions *)msg->data; > *mask = rver->version_mask; > + ret = 0; > } > > kfree(msg); > @@ -469,7 +470,7 @@ static int cros_ec_get_host_command_version_mask(struct cros_ec_device *ec_dev, > */ > int cros_ec_query_all(struct cros_ec_device *ec_dev) > { > - u32 ver_mask = 0; > + u32 ver_mask; > int ret; > > /* First try sending with proto v3. */ > @@ -505,9 +506,7 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev) > return -ENOMEM; > > /* Probe if MKBP event is supported */ > - ret = cros_ec_get_host_command_version_mask(ec_dev, > - EC_CMD_GET_NEXT_EVENT, > - &ver_mask); > + ret = cros_ec_get_host_command_version_mask(ec_dev, EC_CMD_GET_NEXT_EVENT, &ver_mask); > if (ret < 0 || ver_mask == 0) { > ec_dev->mkbp_event_supported = 0; > } else { > @@ -517,10 +516,8 @@ int cros_ec_query_all(struct cros_ec_device *ec_dev) > } > > /* Probe if host sleep v1 is supported for S0ix failure detection. */ > - ret = cros_ec_get_host_command_version_mask(ec_dev, > - EC_CMD_HOST_SLEEP_EVENT, > - &ver_mask); > - ec_dev->host_sleep_v1 = (ret >= 0 && (ver_mask & EC_VER_MASK(1))); > + ret = cros_ec_get_host_command_version_mask(ec_dev, EC_CMD_HOST_SLEEP_EVENT, &ver_mask); > + ec_dev->host_sleep_v1 = (ret == 0 && (ver_mask & EC_VER_MASK(1))); > > /* Get host event wake mask. */ > ret = cros_ec_get_host_event_wake_mask(ec_dev, &ec_dev->host_event_wake_mask); > -- > 2.36.1.255.ge46751e96f-goog >
| |