On Wed, Sep 25, 2019 at 01:35:07PM +0200, David Miller wrote: > From: "Alvaro G. M" <alvaro.gamez@xxxxxxxxxx> > Date: Wed, 25 Sep 2019 13:05:43 +0200 > > > Hi, Dan > > > > On Wed, Sep 25, 2019 at 01:59:11PM +0300, Dan Carpenter wrote: > >> The "lp->phy_mode" is an enum but in this context GCC treats it as an > >> unsigned int so the error handling is never triggered. > >> > >> lp->phy_mode = of_get_phy_mode(pdev->dev.of_node); > >> - if (lp->phy_mode < 0) { > >> + if ((int)lp->phy_mode < 0) { > > > > This (almost) exact code appears in a lot of different drivers too, > > so maybe it'd be nice to review them all and apply the same cast if needed? > > Or make the thing an int if negative values are never valid 32-bit phy_mode > values anyways. Maybe we should change the API int of_get_phy_mode(struct device_node *np, phy_interface_t *phy_mode); Separate the error from the value we are getting. Andrew