Re: [PATCH v2] net: renesas: fix a missing check of of_get_phy_mode

From: Sergei Shtylyov
Date: Mon Mar 11 2019 - 10:18:36 EST


On 03/11/2019 01:59 PM, Geert Uytterhoeven wrote:

>> of_get_phy_mode may fail and return a negative error code;
>> the fix checks the return value of of_get_phy_mode and
>> returns NULL of it fails.
>>
>> Signed-off-by: Kangjie Lu <kjlu@xxxxxxx>
>
>> --- a/drivers/net/ethernet/renesas/sh_eth.c
>> +++ b/drivers/net/ethernet/renesas/sh_eth.c
>> @@ -3187,6 +3187,8 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct device *dev)
>> return NULL;
>>
>> pdata->phy_interface = of_get_phy_mode(np);
>> + if (pdata->phy_interface < 0)
>> + return NULL;
>
> sh_eth_plat_data.phy_interface has type phy_interface_t.
> This is an enum containing only positive values, hence it is unsigned.
> So the condition can never be true.

Good catch, thank you!
My gcc doesn't warn but doesn't generate the code for the branch either...

[...]

> Gr{oetje,eeting}s,
>
> Geert

MBR, Sergei