Hi Phil, On Fri, Oct 12, 2018 at 11:40:36AM +0100, Phil Edworthy wrote: > This fixes the check for unused mdio bus setting and the following static > checker warning: > drivers/pinctrl/pinctrl-rzn1.c:198 rzn1_pinctrl_mdio_select() > warn: always true condition '(ipctl->mdio_func[mdio] >= 0) => (0-u32max >= 0)' > > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Signed-off-by: Phil Edworthy <phil.edworthy@xxxxxxxxxxx> > --- > drivers/pinctrl/pinctrl-rzn1.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/pinctrl/pinctrl-rzn1.c b/drivers/pinctrl/pinctrl-rzn1.c > index ce05e3a00be2..f688f3a29dfd 100644 > --- a/drivers/pinctrl/pinctrl-rzn1.c > +++ b/drivers/pinctrl/pinctrl-rzn1.c > @@ -195,7 +195,7 @@ static void rzn1_hw_set_lock(struct rzn1_pinctrl *ipctl, u8 lock, u8 value) > static void rzn1_pinctrl_mdio_select(struct rzn1_pinctrl *ipctl, int mdio, > u32 func) > { > - if (ipctl->mdio_func[mdio] >= 0 && ipctl->mdio_func[mdio] != func) > + if (ipctl->mdio_func[mdio] != -1 && ipctl->mdio_func[mdio] != func) > dev_warn(ipctl->dev, "conflicting setting for mdio%d!\n", mdio); > ipctl->mdio_func[mdio] = func; > MY understanding here is that the static checker complains because you are comparing a variable of unsigned type to negative values, and indeed you are treating mdio_func as signed in the driver code. mdio_func is defined as: struct rzn1_pinctrl { ... u32 mdio_func[2]; ... }; Then in probe function mdio_func gets intialized as: ipctl->mdio_func[0] = -1; ipctl->mdio_func[1] = -1; I think you could safely make mdio_func integers, or either define an INVALID value ( > 0), intialize them it that value and check against it for validity. Thanks j > -- > 2.17.1 >
Attachment:
signature.asc
Description: PGP signature