* [PATCH net-next v4 0/3] net: Return PTR_ERR() for fixed_phy_register()
@ 2023-08-21 2:50 Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 1/3] net: bgmac: " Jinjie Ruan
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Jinjie Ruan @ 2023-08-21 2:50 UTC (permalink / raw)
To: rafal, bcm-kernel-feedback-list, davem, edumazet, kuba, pabeni,
opendmb, florian.fainelli, bryan.whitehead, UNGLinuxDriver,
netdev, andrew
Cc: ruanjinjie
fixed_phy_register() returns not only -EIO or -ENODEV, but also
-EPROBE_DEFER, -EINVAL and -EBUSY. The Best practice is to return these
error codes with PTR_ERR().
Changes in v4:
- Keep the code context consistent with another patch set.
- Update to bring the author's name before.
Jinjie Ruan (3):
net: bgmac: Return PTR_ERR() for fixed_phy_register()
net: bcmgenet: Return PTR_ERR() for fixed_phy_register()
net: lan743x: Return PTR_ERR() for fixed_phy_register()
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +-
drivers/net/ethernet/microchip/lan743x_main.c | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
--
2.34.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH net-next v4 1/3] net: bgmac: Return PTR_ERR() for fixed_phy_register()
2023-08-21 2:50 [PATCH net-next v4 0/3] net: Return PTR_ERR() for fixed_phy_register() Jinjie Ruan
@ 2023-08-21 2:50 ` Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 2/3] net: bcmgenet: " Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 3/3] net: lan743x: " Jinjie Ruan
2 siblings, 0 replies; 7+ messages in thread
From: Jinjie Ruan @ 2023-08-21 2:50 UTC (permalink / raw)
To: rafal, bcm-kernel-feedback-list, davem, edumazet, kuba, pabeni,
opendmb, florian.fainelli, bryan.whitehead, UNGLinuxDriver,
netdev, andrew
Cc: ruanjinjie
fixed_phy_register() returns -EPROBE_DEFER, -EINVAL and -EBUSY,
etc, in addition to -ENODEV. The best practice is to return
these error codes with PTR_ERR().
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
v4:
- Keep the code context consistent with another patch set.
- Update to bring the author's name before.
v3:
- Split the return value check into another patch set.
- Update the commit title and message.
---
drivers/net/ethernet/broadcom/bgmac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/bgmac.c b/drivers/net/ethernet/broadcom/bgmac.c
index 52ee3751187a..448a1b90de5e 100644
--- a/drivers/net/ethernet/broadcom/bgmac.c
+++ b/drivers/net/ethernet/broadcom/bgmac.c
@@ -1450,7 +1450,7 @@ int bgmac_phy_connect_direct(struct bgmac *bgmac)
phy_dev = fixed_phy_register(PHY_POLL, &fphy_status, NULL);
if (IS_ERR(phy_dev)) {
dev_err(bgmac->dev, "Failed to register fixed PHY device\n");
- return -ENODEV;
+ return PTR_ERR(phy_dev);
}
err = phy_connect_direct(bgmac->net_dev, phy_dev, bgmac_adjust_link,
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next v4 2/3] net: bcmgenet: Return PTR_ERR() for fixed_phy_register()
2023-08-21 2:50 [PATCH net-next v4 0/3] net: Return PTR_ERR() for fixed_phy_register() Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 1/3] net: bgmac: " Jinjie Ruan
@ 2023-08-21 2:50 ` Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 3/3] net: lan743x: " Jinjie Ruan
2 siblings, 0 replies; 7+ messages in thread
From: Jinjie Ruan @ 2023-08-21 2:50 UTC (permalink / raw)
To: rafal, bcm-kernel-feedback-list, davem, edumazet, kuba, pabeni,
opendmb, florian.fainelli, bryan.whitehead, UNGLinuxDriver,
netdev, andrew
Cc: ruanjinjie
fixed_phy_register() returns -EPROBE_DEFER, -EINVAL and -EBUSY,
etc, in addition to -ENODEV. The Best practice is to return these
error codes with PTR_ERR().
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Acked-by: Doug Berger <opendmb@gmail.com>
---
v4:
- Keep the code context consistent with another patch set.
- Update to bring the author's name before.
---
v3:
- Split the return value check into another patch set.
- Update the commit title and message.
---
drivers/net/ethernet/broadcom/genet/bcmmii.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index cc3afb605b1e..97ea76d443ab 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -619,7 +619,7 @@ static int bcmgenet_mii_pd_init(struct bcmgenet_priv *priv)
phydev = fixed_phy_register(PHY_POLL, &fphy_status, NULL);
if (IS_ERR(phydev)) {
dev_err(kdev, "failed to register fixed PHY device\n");
- return -ENODEV;
+ return PTR_ERR(phydev);
}
/* Make sure we initialize MoCA PHYs with a link down */
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH net-next v4 3/3] net: lan743x: Return PTR_ERR() for fixed_phy_register()
2023-08-21 2:50 [PATCH net-next v4 0/3] net: Return PTR_ERR() for fixed_phy_register() Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 1/3] net: bgmac: " Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 2/3] net: bcmgenet: " Jinjie Ruan
@ 2023-08-21 2:50 ` Jinjie Ruan
2023-08-23 0:03 ` Jakub Kicinski
2 siblings, 1 reply; 7+ messages in thread
From: Jinjie Ruan @ 2023-08-21 2:50 UTC (permalink / raw)
To: rafal, bcm-kernel-feedback-list, davem, edumazet, kuba, pabeni,
opendmb, florian.fainelli, bryan.whitehead, UNGLinuxDriver,
netdev, andrew
Cc: ruanjinjie
fixed_phy_register() returns -EPROBE_DEFER, -EINVAL and -EBUSY,
etc, in addition to -EIO. The Best practice is to return these
error codes with PTR_ERR().
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
---
v4:
- Update to bring the author's name before.
v3:
- Update the commit title and message.
---
drivers/net/ethernet/microchip/lan743x_main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
index a36f6369f132..c81cdeb4d4e7 100644
--- a/drivers/net/ethernet/microchip/lan743x_main.c
+++ b/drivers/net/ethernet/microchip/lan743x_main.c
@@ -1515,7 +1515,7 @@ static int lan743x_phy_open(struct lan743x_adapter *adapter)
&fphy_status, NULL);
if (IS_ERR(phydev)) {
netdev_err(netdev, "No PHY/fixed_PHY found\n");
- return -EIO;
+ return PTR_ERR(phydev);
}
} else {
goto return_error;
--
2.34.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v4 3/3] net: lan743x: Return PTR_ERR() for fixed_phy_register()
2023-08-21 2:50 ` [PATCH net-next v4 3/3] net: lan743x: " Jinjie Ruan
@ 2023-08-23 0:03 ` Jakub Kicinski
2023-08-23 7:43 ` Ruan Jinjie
0 siblings, 1 reply; 7+ messages in thread
From: Jakub Kicinski @ 2023-08-23 0:03 UTC (permalink / raw)
To: Jinjie Ruan
Cc: rafal, bcm-kernel-feedback-list, davem, edumazet, pabeni, opendmb,
florian.fainelli, bryan.whitehead, UNGLinuxDriver, netdev, andrew
On Mon, 21 Aug 2023 10:50:20 +0800 Jinjie Ruan wrote:
> fixed_phy_register() returns -EPROBE_DEFER, -EINVAL and -EBUSY,
> etc, in addition to -EIO. The Best practice is to return these
> error codes with PTR_ERR().
EPROBE_DEFER is not a unix error code. We can't return it to user
space, so propagating it from ndo_open is not correct.
> diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
> index a36f6369f132..c81cdeb4d4e7 100644
> --- a/drivers/net/ethernet/microchip/lan743x_main.c
> +++ b/drivers/net/ethernet/microchip/lan743x_main.c
> @@ -1515,7 +1515,7 @@ static int lan743x_phy_open(struct lan743x_adapter *adapter)
> &fphy_status, NULL);
> if (IS_ERR(phydev)) {
> netdev_err(netdev, "No PHY/fixed_PHY found\n");
> - return -EIO;
> + return PTR_ERR(phydev);
> }
> } else {
> goto return_error;
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v4 3/3] net: lan743x: Return PTR_ERR() for fixed_phy_register()
2023-08-23 0:03 ` Jakub Kicinski
@ 2023-08-23 7:43 ` Ruan Jinjie
2023-08-23 14:37 ` Jakub Kicinski
0 siblings, 1 reply; 7+ messages in thread
From: Ruan Jinjie @ 2023-08-23 7:43 UTC (permalink / raw)
To: Jakub Kicinski
Cc: rafal, bcm-kernel-feedback-list, davem, edumazet, pabeni, opendmb,
florian.fainelli, bryan.whitehead, UNGLinuxDriver, netdev, andrew
On 2023/8/23 8:03, Jakub Kicinski wrote:
> On Mon, 21 Aug 2023 10:50:20 +0800 Jinjie Ruan wrote:
>> fixed_phy_register() returns -c, -EINVAL and -EBUSY,
>> etc, in addition to -EIO. The Best practice is to return these
>> error codes with PTR_ERR().
>
> EPROBE_DEFER is not a unix error code. We can't return it to user
> space, so propagating it from ndo_open is not correct.
When the error is EPROBE_DEFER, Whether print the netdev_err is ok? And
what should it return?
How about this?
if (IS_ERR(phydev)) {
......
if (PTR_ERR(phydev) != -EPROBE_DEFER)
return PTR_ERR(phydev);
else
return -EIO;
}
>
>> diff --git a/drivers/net/ethernet/microchip/lan743x_main.c b/drivers/net/ethernet/microchip/lan743x_main.c
>> index a36f6369f132..c81cdeb4d4e7 100644
>> --- a/drivers/net/ethernet/microchip/lan743x_main.c
>> +++ b/drivers/net/ethernet/microchip/lan743x_main.c
>> @@ -1515,7 +1515,7 @@ static int lan743x_phy_open(struct lan743x_adapter *adapter)
>> &fphy_status, NULL);
>> if (IS_ERR(phydev)) {
>> netdev_err(netdev, "No PHY/fixed_PHY found\n");
>> - return -EIO;
>> + return PTR_ERR(phydev);
>> }
>> } else {
>> goto return_error;
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH net-next v4 3/3] net: lan743x: Return PTR_ERR() for fixed_phy_register()
2023-08-23 7:43 ` Ruan Jinjie
@ 2023-08-23 14:37 ` Jakub Kicinski
0 siblings, 0 replies; 7+ messages in thread
From: Jakub Kicinski @ 2023-08-23 14:37 UTC (permalink / raw)
To: Ruan Jinjie
Cc: rafal, bcm-kernel-feedback-list, davem, edumazet, pabeni, opendmb,
florian.fainelli, bryan.whitehead, UNGLinuxDriver, netdev, andrew
On Wed, 23 Aug 2023 15:43:58 +0800 Ruan Jinjie wrote:
> > EPROBE_DEFER is not a unix error code. We can't return it to user
> > space, so propagating it from ndo_open is not correct.
>
> When the error is EPROBE_DEFER, Whether print the netdev_err is ok? And
> what should it return?
>
> How about this?
>
> if (IS_ERR(phydev)) {
> ......
> if (PTR_ERR(phydev) != -EPROBE_DEFER)
> return PTR_ERR(phydev);
> else
> return -EIO;
> }
That's too much code to copy & paste into every driver.
Someone who understands the code flow very well should tackle this.
Please leave the cases where fixed_phy_register() is called outside
of probe alone.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-08-23 14:37 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-08-21 2:50 [PATCH net-next v4 0/3] net: Return PTR_ERR() for fixed_phy_register() Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 1/3] net: bgmac: " Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 2/3] net: bcmgenet: " Jinjie Ruan
2023-08-21 2:50 ` [PATCH net-next v4 3/3] net: lan743x: " Jinjie Ruan
2023-08-23 0:03 ` Jakub Kicinski
2023-08-23 7:43 ` Ruan Jinjie
2023-08-23 14:37 ` Jakub Kicinski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).