Messages in this thread | | | Date | Mon, 03 Jul 2017 06:59:05 -0500 | From | "Gustavo A. R. Silva" <> | Subject | Re: [PATCH] devfreq: tegra: fix error code in tegra_devfreq_probe() |
| |
Hi Jon,
Quoting Jon Hunter <jonathanh@nvidia.com>:
> On 30/06/17 08:22, Gustavo A. R. Silva wrote: >> Print and propagate the return value of platform_get_irq on failure. >> >> Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> >> --- >> drivers/devfreq/tegra-devfreq.c | 6 +++--- >> 1 file changed, 3 insertions(+), 3 deletions(-) >> >> diff --git a/drivers/devfreq/tegra-devfreq.c >> b/drivers/devfreq/tegra-devfreq.c >> index 214fff9..ae71215 100644 >> --- a/drivers/devfreq/tegra-devfreq.c >> +++ b/drivers/devfreq/tegra-devfreq.c >> @@ -688,9 +688,9 @@ static int tegra_devfreq_probe(struct >> platform_device *pdev) >> } >> >> irq = platform_get_irq(pdev, 0); >> - if (irq <= 0) { >> - dev_err(&pdev->dev, "Failed to get IRQ\n"); >> - return -ENODEV; >> + if (irq < 0) { > > The changelog does not describe the above change and if/why this is ok. > However, the original test looks fine to me and so I don't see a need to > change this. >
You are right about the changelog. I think this one is much better:
platform_get_irq() returns an error code, but the tegra-devfreq driver ignores it and always returns -ENODEV. This is not correct, and prevents -EPROBE_DEFER from being propagated properly.
Notice that platform_get_irq() no longer returns 0 on error: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e330b9a6bb35dc7097a4f02cb1ae7b6f96df92af
Print error message and propagate the return value of platform_get_irq on failure.
What do you think?
Thank you! -- Gustavo A. R. Silva
| |