diff mbox series

phy: mdio_bus: Check ENOTSUPP instead of ENOSYS in mdiobus_register_reset

Message ID 8712e54912598b3ca6f00d00ff8fbfdd1c53e7e8.1574170028.git.michal.simek@xilinx.com
State Not Applicable
Delegated to: David Miller
Headers show
Series phy: mdio_bus: Check ENOTSUPP instead of ENOSYS in mdiobus_register_reset | expand

Commit Message

Michal Simek Nov. 19, 2019, 1:27 p.m. UTC
Origin patch was using ENOTSUPP instead of ENOSYS. Silently changing error
value ends up in an access to bad area on Microblaze with axi ethernet
driver.

Fixes: 1d4639567d97 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
Signed-off-by: Michal Simek <michal.simek@xilinx.com>
---

I didn't track it down where exactly that access happens but the patch is
clearly just changing something without description.

The origin patch has been merged between rc7 and rc8 and would be good to
get this fix to v5.4.
---
 drivers/net/phy/mdio_bus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Florian Fainelli Nov. 19, 2019, 6:04 p.m. UTC | #1
On 11/19/19 5:27 AM, Michal Simek wrote:
> Origin patch was using ENOTSUPP instead of ENOSYS. Silently changing error
> value ends up in an access to bad area on Microblaze with axi ethernet
> driver.
> 
> Fixes: 1d4639567d97 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
> Signed-off-by: Michal Simek <michal.simek@xilinx.com>

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

https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=075e238d12c21c8bde700d21fb48be7a3aa80194
Michal Simek Nov. 20, 2019, 6:47 a.m. UTC | #2
On 19. 11. 19 19:04, Florian Fainelli wrote:
> On 11/19/19 5:27 AM, Michal Simek wrote:
>> Origin patch was using ENOTSUPP instead of ENOSYS. Silently changing error
>> value ends up in an access to bad area on Microblaze with axi ethernet
>> driver.
>>
>> Fixes: 1d4639567d97 ("mdio_bus: Fix PTR_ERR applied after initialization to constant")
>> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
> 
> This has been fixed in the "net" tree already:
> 
> https://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git/commit/?id=075e238d12c21c8bde700d21fb48be7a3aa80194
> 

Works for me.

Thanks,
Michal
diff mbox series

Patch

diff --git a/drivers/net/phy/mdio_bus.c b/drivers/net/phy/mdio_bus.c
index 35876562e32a..dbacb0031877 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);