Message ID | 20170630072211.GA21867@embeddedgus (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Hi, On 2017년 06월 30일 16: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) { > + dev_err(&pdev->dev, "Failed to get IRQ: %d\n", irq); > + return irq; > } > > platform_set_drvdata(pdev, tegra); > Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
On Fri, Jun 30, 2017 at 5:02 PM, Chanwoo Choi <cw00.choi@samsung.com> wrote: > Hi, > > On 2017년 06월 30일 16: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) { >> + dev_err(&pdev->dev, "Failed to get IRQ: %d\n", irq); >> + return irq; >> } >> >> platform_set_drvdata(pdev, tegra); >> > > Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> Acked-by: MyungJoo Ham <myungjoo.ham@samsung.com> > > -- > Best Regards, > Chanwoo Choi > Samsung Electronics
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. > + dev_err(&pdev->dev, "Failed to get IRQ: %d\n", irq); > + return irq; Why not have ... return irq ? irq : -ENODEV; Cheers Jon
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
On 03/07/17 12:59, Gustavo A. R. Silva wrote: > 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 Yes the above should be added to the changelog. Looks like someone should update the following for consistency too ... 141 int platform_irq_count(struct platform_device *dev) 142 { 143 int ret, nr = 0; 144 145 while ((ret = platform_get_irq(dev, nr)) >= 0) 146 nr++; > > Print error message and propagate the return value of > platform_get_irq on failure. > > What do you think? Fine with me. Thanks! Jon
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) { + dev_err(&pdev->dev, "Failed to get IRQ: %d\n", irq); + return irq; } platform_set_drvdata(pdev, tegra);
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(-)