All of lore.kernel.org
 help / color / mirror / Atom feed
From: Enric Balletbo i Serra <enric.balletbo@collabora.com>
To: Prashant Malani <pmalani@chromium.org>, linux-kernel@vger.kernel.org
Cc: Benson Leung <bleung@chromium.org>,
	Guenter Roeck <groeck@chromium.org>,
	"Gustavo A. R. Silva" <gustavoars@kernel.org>
Subject: Re: [PATCH] platform/chrome: cros_ec_proto: Fix check_features ret val
Date: Tue, 21 Sep 2021 13:42:04 +0200	[thread overview]
Message-ID: <f6860aa6-b541-b03d-da8d-333661a8322f@collabora.com> (raw)
In-Reply-To: <20210916014632.2662612-1-pmalani@chromium.org>

Hi Prashant,

Thank you for the patch. Just one comment below ...

On 16/9/21 3:46, Prashant Malani wrote:
> The kerneldoc for cros_ec_check_features() states that it returns 1 or 0
> depedending on whether a feature is supported or not, but it instead
> returns a negative error number in one case, and a non-1 bitmask in
> other cases.
> 
> Since all call-sites only check for a 1 or 0 return value, update
> the function to return boolean values.
> 
> Signed-off-by: Prashant Malani <pmalani@chromium.org>
> ---
>  drivers/platform/chrome/cros_ec_proto.c     | 12 +++++++-----
>  include/linux/platform_data/cros_ec_proto.h |  2 +-
>  2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
> index a7404d69b2d3..a34cf58c5ef7 100644
> --- a/drivers/platform/chrome/cros_ec_proto.c
> +++ b/drivers/platform/chrome/cros_ec_proto.c
> @@ -808,9 +808,9 @@ EXPORT_SYMBOL(cros_ec_get_host_event);
>   *
>   * Call this function to test whether the ChromeOS EC supports a feature.
>   *
> - * Return: 1 if supported, 0 if not
> + * Return: true if supported, false if not (or if an error was encountered).
>   */
> -int cros_ec_check_features(struct cros_ec_dev *ec, int feature)
> +bool cros_ec_check_features(struct cros_ec_dev *ec, int feature)
>  {
>  	struct cros_ec_command *msg;
>  	int ret;
> @@ -818,8 +818,10 @@ int cros_ec_check_features(struct cros_ec_dev *ec, int feature)
>  	if (ec->features[0] == -1U && ec->features[1] == -1U) {
>  		/* features bitmap not read yet */
>  		msg = kzalloc(sizeof(*msg) + sizeof(ec->features), GFP_KERNEL);
> -		if (!msg)
> -			return -ENOMEM;
> +		if (!msg) {
> +			dev_err(ec->dev, "failed to allocate memory to get EC features\n");

In case of failure you will be noticed by the allocator, prints after
[k|v][m|z|c]alloc() functions are not needed, so I think you can just return
false here.

Other than that the patch looks good to me.

Thanks,
  Enric

> +			return false;
> +		}
>  
>  		msg->command = EC_CMD_GET_FEATURES + ec->cmd_offset;
>  		msg->insize = sizeof(ec->features);
> @@ -839,7 +841,7 @@ int cros_ec_check_features(struct cros_ec_dev *ec, int feature)
>  		kfree(msg);
>  	}
>  
> -	return ec->features[feature / 32] & EC_FEATURE_MASK_0(feature);
> +	return !!(ec->features[feature / 32] & EC_FEATURE_MASK_0(feature));
>  }
>  EXPORT_SYMBOL_GPL(cros_ec_check_features);
>  
> diff --git a/include/linux/platform_data/cros_ec_proto.h b/include/linux/platform_data/cros_ec_proto.h
> index 02599687770c..55844ece0b32 100644
> --- a/include/linux/platform_data/cros_ec_proto.h
> +++ b/include/linux/platform_data/cros_ec_proto.h
> @@ -227,7 +227,7 @@ int cros_ec_get_next_event(struct cros_ec_device *ec_dev,
>  
>  u32 cros_ec_get_host_event(struct cros_ec_device *ec_dev);
>  
> -int cros_ec_check_features(struct cros_ec_dev *ec, int feature);
> +bool cros_ec_check_features(struct cros_ec_dev *ec, int feature);
>  
>  int cros_ec_get_sensor_count(struct cros_ec_dev *ec);
>  
> 

  parent reply	other threads:[~2021-09-21 11:42 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-16  1:46 [PATCH] platform/chrome: cros_ec_proto: Fix check_features ret val Prashant Malani
2021-09-16  2:36 ` Guenter Roeck
2021-09-21 11:42 ` Enric Balletbo i Serra [this message]
2021-09-21 17:29   ` Prashant Malani
2021-09-22  9:12     ` Enric Balletbo i Serra
2021-09-22 10:55       ` Prashant Malani
2021-09-22 14:09         ` Enric Balletbo i Serra
2021-09-22 18:47           ` Prashant Malani
2021-09-30  6:45 ` Enric Balletbo i Serra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=f6860aa6-b541-b03d-da8d-333661a8322f@collabora.com \
    --to=enric.balletbo@collabora.com \
    --cc=bleung@chromium.org \
    --cc=groeck@chromium.org \
    --cc=gustavoars@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pmalani@chromium.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.