Re: [PATCH] extcon: fix signedness issues

From: Chanwoo Choi
Date: Tue Aug 11 2015 - 02:56:54 EST


Hi Brian,

I knew this issue. So patch[1] fixed it already.
I sent the extcon pull request[2] including patch[1] for Linux 4.3.

[1] http://git.kernel.org/cgit/linux/kernel/git/chanwoo/extcon.git/commit/?h=extcon-next&id=a598af7f0279195abffbfb9bf2070457e9c89ff3
[2] https://lkml.org/lkml/2015/8/11/5

Thanks,
Chanwoo Choi

On 08/11/2015 03:39 AM, Brian Norris wrote:
> commit be052cc87745 ("extcon: Fix hang and
> extcon_get/set_cable_state().") introduced several signedness issues.
> sparse reports them:
>
> drivers/extcon/extcon.c: In function âfind_cable_index_by_nameâ:
> drivers/extcon/extcon.c:153:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
> drivers/extcon/extcon.c: In function âextcon_get_cable_stateâ:
> drivers/extcon/extcon.c:384:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
> drivers/extcon/extcon.c: In function âextcon_set_cable_stateâ:
> drivers/extcon/extcon.c:432:2: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
>
> Fixes: be052cc87745 ("extcon: Fix hang and extcon_get/set_cable_state().")
> Signed-off-by: Brian Norris <computersforpeace@xxxxxxxxx>
> ---
> This is *only* compile-tested
>
> drivers/extcon/extcon.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/extcon/extcon.c b/drivers/extcon/extcon.c
> index 43b57b02d050..a394ca419715 100644
> --- a/drivers/extcon/extcon.c
> +++ b/drivers/extcon/extcon.c
> @@ -126,7 +126,7 @@ static int find_cable_index_by_id(struct extcon_dev *edev, const unsigned int id
>
> static int find_cable_id_by_name(struct extcon_dev *edev, const char *name)
> {
> - unsigned int id = -EINVAL;
> + int id = -EINVAL;
> int i = 0;
>
> /* Find the id of extcon cable */
> @@ -143,7 +143,7 @@ static int find_cable_id_by_name(struct extcon_dev *edev, const char *name)
>
> static int find_cable_index_by_name(struct extcon_dev *edev, const char *name)
> {
> - unsigned int id;
> + int id;
>
> if (edev->max_supported == 0)
> return -EINVAL;
> @@ -378,7 +378,7 @@ EXPORT_SYMBOL_GPL(extcon_get_cable_state_);
> */
> int extcon_get_cable_state(struct extcon_dev *edev, const char *cable_name)
> {
> - unsigned int id;
> + int id;
>
> id = find_cable_id_by_name(edev, cable_name);
> if (id < 0)
> @@ -426,7 +426,7 @@ EXPORT_SYMBOL_GPL(extcon_set_cable_state_);
> int extcon_set_cable_state(struct extcon_dev *edev,
> const char *cable_name, bool cable_state)
> {
> - unsigned int id;
> + int id;
>
> id = find_cable_id_by_name(edev, cable_name);
> if (id < 0)
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/