The driver overrides the error code returned by of_irq_to_resource() to
-EINVAL. Switch to propagating the error code upstream so that errors
such as -EPROBE_DEFER are handled.
While at it drop the memset() operation as of_irq_to_resource()
does call memset() before filling in the IRQ resource.
Signed-off-by: Lad Prabhakar <[email protected]>
---
drivers/net/ethernet/marvell/mv643xx_eth.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 105247582684..7a5ff629d158 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -2716,10 +2716,10 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
memset(&ppd, 0, sizeof(ppd));
ppd.shared = pdev;
- memset(&res, 0, sizeof(res));
- if (of_irq_to_resource(pnp, 0, &res) <= 0) {
+ ret = of_irq_to_resource(pnp, 0, &res);
+ if (ret <= 0) {
dev_err(&pdev->dev, "missing interrupt on %pOFn\n", pnp);
- return -EINVAL;
+ return ret ? ret : -ENXIO;
}
if (of_property_read_u32(pnp, "reg", &ppd.port_number)) {
--
2.17.1
Hi All,
On Fri, Dec 17, 2021 at 12:35 AM Lad Prabhakar
<[email protected]> wrote:
>
> The driver overrides the error code returned by of_irq_to_resource() to
> -EINVAL. Switch to propagating the error code upstream so that errors
> such as -EPROBE_DEFER are handled.
>
> While at it drop the memset() operation as of_irq_to_resource()
> does call memset() before filling in the IRQ resource.
>
> Signed-off-by: Lad Prabhakar <[email protected]>
> ---
> drivers/net/ethernet/marvell/mv643xx_eth.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
Please ignore this patch, as the plan is to drop all the users
of_irq_to_resource() (see [0]). I'll send a new patch which uses the
preferred way of platform_get_irq().
[0] https://patchwork.ozlabs.org/project/linux-ide/patch/[email protected]/
Cheers,
Prabhakar
> diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
> index 105247582684..7a5ff629d158 100644
> --- a/drivers/net/ethernet/marvell/mv643xx_eth.c
> +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
> @@ -2716,10 +2716,10 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
> memset(&ppd, 0, sizeof(ppd));
> ppd.shared = pdev;
>
> - memset(&res, 0, sizeof(res));
> - if (of_irq_to_resource(pnp, 0, &res) <= 0) {
> + ret = of_irq_to_resource(pnp, 0, &res);
> + if (ret <= 0) {
> dev_err(&pdev->dev, "missing interrupt on %pOFn\n", pnp);
> - return -EINVAL;
> + return ret ? ret : -ENXIO;
> }
>
> if (of_property_read_u32(pnp, "reg", &ppd.port_number)) {
> --
> 2.17.1
>