diff mbox series

mdio_bus: Fix init if CONFIG_RESET_CONTROLLER=n

Message ID 20191119112524.24841-1-geert+renesas@glider.be
State Accepted
Delegated to: David Miller
Headers show
Series mdio_bus: Fix init if CONFIG_RESET_CONTROLLER=n | expand

Commit Message

Geert Uytterhoeven Nov. 19, 2019, 11:25 a.m. UTC
Commit 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after
initialization to constant") accidentally changed a check from -ENOTSUPP
to -ENOSYS, causing failures if reset controller support is not enabled.
E.g. on r7s72100/rskrza1:

    sh-eth e8203000.ethernet: MDIO init failed: -524
    sh-eth: probe of e8203000.ethernet failed with error -524

Fixes: 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
This is a regression in v5.4-rc8.
Seen on r8a7740/armadillo, r7s72100/rskrza1, and r7s9210/rza2mevb.
---
 drivers/net/phy/mdio_bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Florian Fainelli Nov. 19, 2019, 6:05 p.m. UTC | #1
On 11/19/19 3:25 AM, Geert Uytterhoeven wrote:
> Commit 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after
> initialization to constant") accidentally changed a check from -ENOTSUPP
> to -ENOSYS, causing failures if reset controller support is not enabled.
> E.g. on r7s72100/rskrza1:
> 
>     sh-eth e8203000.ethernet: MDIO init failed: -524
>     sh-eth: probe of e8203000.ethernet failed with error -524
> 
> Fixes: 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>

This has been fixed in the "net" tree with:

https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=075e238d12c21c8bde700d21fb48be7a3aa80194
Geert Uytterhoeven Nov. 19, 2019, 6:55 p.m. UTC | #2
Hi Florian,

On Tue, Nov 19, 2019 at 7:05 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
> On 11/19/19 3:25 AM, Geert Uytterhoeven wrote:
> > Commit 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after
> > initialization to constant") accidentally changed a check from -ENOTSUPP
> > to -ENOSYS, causing failures if reset controller support is not enabled.
> > E.g. on r7s72100/rskrza1:
> >
> >     sh-eth e8203000.ethernet: MDIO init failed: -524
> >     sh-eth: probe of e8203000.ethernet failed with error -524
> >
> > Fixes: 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
>
> This has been fixed in the "net" tree with:
>
> https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=075e238d12c21c8bde700d21fb48be7a3aa80194

Ah, hadn't seen that one.

However, that one (a) keeps the unneeded check for -ENOSYS, and (b)
carries a wrong Fixes tag.

Gr{oetje,eeting}s,

                        Geert
David Miller Nov. 20, 2019, 3:18 a.m. UTC | #3
From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: Tue, 19 Nov 2019 19:55:53 +0100

> Hi Florian,
> 
> On Tue, Nov 19, 2019 at 7:05 PM Florian Fainelli <f.fainelli@gmail.com> wrote:
>> On 11/19/19 3:25 AM, Geert Uytterhoeven wrote:
>> > Commit 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after
>> > initialization to constant") accidentally changed a check from -ENOTSUPP
>> > to -ENOSYS, causing failures if reset controller support is not enabled.
>> > E.g. on r7s72100/rskrza1:
>> >
>> >     sh-eth e8203000.ethernet: MDIO init failed: -524
>> >     sh-eth: probe of e8203000.ethernet failed with error -524
>> >
>> > Fixes: 1d4639567d970de0 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
>> > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
>>
>> This has been fixed in the "net" tree with:
>>
>> https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=075e238d12c21c8bde700d21fb48be7a3aa80194
> 
> Ah, hadn't seen that one.
> 
> However, that one (a) keeps the unneeded check for -ENOSYS, and (b)
> carries a wrong Fixes tag.

Linus took Geert's fix so I reverted the one in 'net' and cherry picked
Geert's fix from Linus's tree.

Just FYI...
diff mbox series

Patch

diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 35876562e32a02ce..dbacb00318775ff1 100644
--- a/drivers/net/phy/mdio_bus.c
+++ b/drivers/net/phy/mdio_bus.c
@@ -65,7 +65,7 @@  static int mdiobus_register_reset(struct mdio_device *mdiodev)
 		reset = devm_reset_control_get_exclusive(&mdiodev->dev,
 							 "phy");
 	if (IS_ERR(reset)) {
-		if (PTR_ERR(reset) == -ENOENT || PTR_ERR(reset) == -ENOSYS)
+		if (PTR_ERR(reset) == -ENOENT || PTR_ERR(reset) == -ENOTSUPP)
 			reset = NULL;
 		else
 			return PTR_ERR(reset);