Subject: Re: [net, v3, 1/3] net: phy: Fix PHY module checks and NULL deref in phy_attach_direct()

From: Heiko Schocher <[email-masked]>
Date: Thu, 9 Feb 2017 08:29:37 +0100

Hello Florian,

Am 09.02.2017 um 08:13 schrieb Florian Fainelli:
>
>
> On 02/08/2017 10:58 PM, Heiko Schocher wrote:
>> Hello Florian,
>>
>> Am 09.02.2017 um 01:13 schrieb Florian Fainelli:
>>> The Generic PHY drivers gets assigned after we checked that the current
>>> PHY driver is NULL, so we need to check a few things before we can
>>> safely dereference d->driver. This would be causing a NULL deference to
>>> occur when a system binds to the Generic PHY driver. Update
>>> phy_attach_direct() to do the following:
>>>
>>> - grab the driver module reference after we have assigned the Generic
>>>     PHY drivers accordingly
>>>
>>> - update the error path to clean up the module reference in case the
>>>     Generic PHY probe function fails
>>>
>>> Fixes: cafe8df8b9bc ("net: phy: Fix lack of reference count on PHY
>>> driver")
>>> Signed-off-by: Florian Fainelli <[email-masked]>
>>> ---
>>>    drivers/net/phy/phy_device.c | 16 +++++++++++++++-
>>>    1 file changed, 15 insertions(+), 1 deletion(-)
>>
>> just stumbled over this bug on an am335x based board, with an
>> KSZ8081 attached, so there a "fixed-link" is used like:
>> http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/am335x-baltos-ir3220.dts#n105
>>
>>
>> With your patch it crashes also ...
>
> The final version of the patch is here:
>
> http://patchwork.ozlabs.org/patch/725923/

Huh, sorry ...

> Do you mind giving it a try?

With this patch, ethernet works again fine on this board, thanks!

bye,
Heiko
-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany