Re: [PATCH 4.19 070/276] media: stm32-dcmi: return appropriate error codes during probe

From: Pavel Machek
Date: Fri May 31 2019 - 04:23:09 EST


Hi!

> [ Upstream commit b5b5a27bee5884860798ffd0f08e611a3942064b ]
>
> During probe, return the provided errors value instead of -ENODEV.
> This allows the driver to be deferred probed if needed.

This is not correct AFAICT.


> --- a/drivers/media/platform/stm32/stm32-dcmi.c
> +++ b/drivers/media/platform/stm32/stm32-dcmi.c
> @@ -1673,8 +1673,9 @@ static int dcmi_probe(struct platform_device *pdev)
>
> irq = platform_get_irq(pdev, 0);
> if (irq <= 0) {
> - dev_err(&pdev->dev, "Could not get irq\n");
> - return -ENODEV;
> + if (irq != -EPROBE_DEFER)
> + dev_err(&pdev->dev, "Could not get irq\n");
> + return irq;
> }
>
> dcmi->res = platform_get_resource(pdev, IORESOURCE_MEM, 0);

irq == 0 is clearly means error here, but will be interpretted as
success when returned to the caller.

As device is not initialized at that point, I'd expect some kind of
crash later.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature