[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kernel-janitors
Subject:    AW: [PATCH 2/2] usb: typec: stusb160x: fix some signedness bugs
From:       Walter Harms <wharms () bfs ! de>
Date:       2020-10-29 8:21:57
Message-ID: f843e2866d6f421d83b4455582809a95 () bfs ! de
[Download RAW message or body]

this is much better to read
________________________________________
Von: Amelie DELAUNAY [amelie.delaunay@st.com]
Gesendet: Mittwoch, 28. Oktober 2020 13:26
An: Dan Carpenter; Heikki Krogerus
Cc: Greg Kroah-Hartman; linux-usb@vger.kernel.org; kernel-janitors@vger.kernel.org
Betreff: Re: [PATCH 2/2] usb: typec: stusb160x: fix some signedness bugs

Hi Dan,

On 10/23/20 1:24 PM, Dan Carpenter wrote:
> These variables are enums but in this situation GCC will treat them as
> unsigned so the conditions are never true.
>
> Fixes: da0cb6310094 ("usb: typec: add support for STUSB160x Type-C controller family")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>   drivers/usb/typec/stusb160x.c | 7 ++++---
>   1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/usb/typec/stusb160x.c b/drivers/usb/typec/stusb160x.c
> index f7369e371dd4..da7f1957bcb3 100644
> --- a/drivers/usb/typec/stusb160x.c
> +++ b/drivers/usb/typec/stusb160x.c
> @@ -545,7 +545,7 @@ static int stusb160x_get_fw_caps(struct stusb160x *chip,
>       ret = fwnode_property_read_string(fwnode, "power-role", &cap_str);
>       if (!ret) {
>               chip->port_type = typec_find_port_power_role(cap_str);
> -             if (chip->port_type < 0) {
> +             if ((int)chip->port_type < 0) {
>                       ret = chip->port_type;
>                       return ret;
>               }

I was preparing a patch for this one, and it uses the ret instead of the
cast:
        ret = fwnode_property_read_string(fwnode, "power-role", &cap_str);
        if (!ret) {
                ret = typec_find_port_power_role(cap_str);
                if (ret < 0)
                        return ret;
                chip->port_type = ret;

        }

> @@ -567,9 +567,10 @@ static int stusb160x_get_fw_caps(struct stusb160x *chip,
>       if (!ret) {
>               chip->pwr_opmode = typec_find_pwr_opmode(cap_str);
>               /* Power delivery not yet supported */
> -             if (chip->pwr_opmode < 0 ||
> +             if ((int)chip->pwr_opmode < 0 ||
>                   chip->pwr_opmode == TYPEC_PWR_MODE_PD) {
> -                     ret = chip->pwr_opmode < 0 ? chip->pwr_opmode : -EINVAL;
> +                     ret = (int)chip->pwr_opmode < 0 ? chip->pwr_opmode :
> +                                                       -EINVAL;
>                       dev_err(chip->dev, "bad power operation mode: %d\n",
>                               chip->pwr_opmode);
>                       return ret;
>

        if (!ret) {
                ret = typec_find_pwr_opmode(cap_str);
                /* Power delivery not yet supported */
                if (ret < 0 || ret == TYPEC_PWR_MODE_PD) {
                        dev_err(chip->dev, "bad power operation mode: %d\n", ret);
                        return -EINVAL;
                }
                chip->pwr_opmode = ret;
        }


So, which fix sounds better ? IMHO using ret make the code more readable.

Regards,
Amelie
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic