diff mbox series

[RFC,04/13] mmc: mvsdio: fix deferred probing

Message ID 20211223171202.8224-5-s.shtylyov@omp.ru
State Superseded
Headers show
Series Fix deferred probing in the MMC/SD drivers | expand

Commit Message

Sergey Shtylyov Dec. 23, 2021, 5:11 p.m. UTC
The driver overrides the error codes returned by platform_get_irq() to
-ENXIO, so if it returns -EPROBE_DEFER, the driver will fail the probe
permanently instead of the deferred probing. Switch to propagating the
error codes upstream.

Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
---
 drivers/mmc/host/mvsdio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Nicolas Pitre Dec. 23, 2021, 6:48 p.m. UTC | #1
On Thu, 23 Dec 2021, Sergey Shtylyov wrote:

> The driver overrides the error codes returned by platform_get_irq() to
> -ENXIO, so if it returns -EPROBE_DEFER, the driver will fail the probe
> permanently instead of the deferred probing. Switch to propagating the
> error codes upstream.
> 
> Fixes: 9ec36cafe43b ("of/irq: do irq resolution in platform_get_irq")
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

Acked-by: Nicolas Pitre <nico@fluxnic.net>

> ---
>  drivers/mmc/host/mvsdio.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
> index 629efbe639c4..b4f6a0a2fcb5 100644
> --- a/drivers/mmc/host/mvsdio.c
> +++ b/drivers/mmc/host/mvsdio.c
> @@ -704,7 +704,7 @@ static int mvsd_probe(struct platform_device *pdev)
>  	}
>  	irq = platform_get_irq(pdev, 0);
>  	if (irq < 0)
> -		return -ENXIO;
> +		return irq;
>  
>  	mmc = mmc_alloc_host(sizeof(struct mvsd_host), &pdev->dev);
>  	if (!mmc) {
> -- 
> 2.26.3
> 
>
diff mbox series

Patch

diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c
index 629efbe639c4..b4f6a0a2fcb5 100644
--- a/drivers/mmc/host/mvsdio.c
+++ b/drivers/mmc/host/mvsdio.c
@@ -704,7 +704,7 @@  static int mvsd_probe(struct platform_device *pdev)
 	}
 	irq = platform_get_irq(pdev, 0);
 	if (irq < 0)
-		return -ENXIO;
+		return irq;
 
 	mmc = mmc_alloc_host(sizeof(struct mvsd_host), &pdev->dev);
 	if (!mmc) {