diff mbox series

[v3] spi: ppc4xx: handle irq_of_parse_and_map() errors

Message ID 20240722141822.1052370-1-make24@iscas.ac.cn
State Accepted
Commit f1011ba20b83da3ee70dcb4a6d9d282a718916fa
Headers show
Series [v3] spi: ppc4xx: handle irq_of_parse_and_map() errors | expand

Commit Message

Ma Ke July 22, 2024, 2:18 p.m. UTC
Zero and negative number is not a valid IRQ for in-kernel code and the
irq_of_parse_and_map() function returns zero on error.  So this check for
valid IRQs should only accept values > 0.

Fixes: 44dab88e7cc9 ("spi: add spi_ppc4xx driver")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
---
Changes in v3:
- removed Cc stable line as suggestions.
Changes in v2:
- added Cc stable line;
- added Fixes line.
---
 drivers/spi/spi-ppc4xx.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Markus Elfring July 22, 2024, 6:24 p.m. UTC | #1
>> …
>>> Signed-off-by: Ma Ke <make24@iscas.ac.cn>
>>
>> Will any contributors care more for rules also according to such information?
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10#n398
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/researcher-guidelines.rst?h=v6.10#n5
>
> Feel free to ignore Markus,

Form letter …?


> he has a long history of sending unhelpful review comments

The offered information can occasionally be handled in more constructive ways,
can't it?


> and continues to ignore repeated requests to stop.

I hope that circumstances will evolve somehow so that additional views
will trigger further positive effects.

Regards,
Markus
Markus Elfring July 23, 2024, 7:45 a.m. UTC | #2
>> …
>>> Signed-off-by: Ma Ke <make24@iscas.ac.cn>
>>
>> Will any contributors care more for rules also according to such information?
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.10#n398
>> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/researcher-guidelines.rst?h=v6.10#n5
>
> Feel free to ignore Markus,

May any contributors feel free also to reconsider such a hint?


> he has a long history of sending unhelpful review comments

Will the chances ever grow to clarify the concrete items
which you found questionable anyhow?


> and continues to ignore repeated requests to stop.

I would like to improve developments for selected software areas.
Will communication challenges be adjusted accordingly?

Regards,
Markus
Mark Brown Aug. 15, 2024, 1:32 p.m. UTC | #3
On Mon, 22 Jul 2024 22:18:22 +0800, Ma Ke wrote:
> Zero and negative number is not a valid IRQ for in-kernel code and the
> irq_of_parse_and_map() function returns zero on error.  So this check for
> valid IRQs should only accept values > 0.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git for-next

Thanks!

[1/1] spi: ppc4xx: handle irq_of_parse_and_map() errors
      commit: f1011ba20b83da3ee70dcb4a6d9d282a718916fa

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
lee.lockhey Aug. 18, 2024, 10:02 p.m. UTC | #4
Hello, Mark

On Mon, 22 Jul 2024 at 22:19, Ma Ke <make24@iscas.ac.cn> wrote:
>
> Zero and negative number is not a valid IRQ for in-kernel code and the
> irq_of_parse_and_map() function returns zero on error.  So this check for
> valid IRQs should only accept values > 0.
>
> Fixes: 44dab88e7cc9 ("spi: add spi_ppc4xx driver")
> Signed-off-by: Ma Ke <make24@iscas.ac.cn>
> ---
> Changes in v3:
> - removed Cc stable line as suggestions.
> Changes in v2:
> - added Cc stable line;
> - added Fixes line.
> ---
>  drivers/spi/spi-ppc4xx.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/spi/spi-ppc4xx.c b/drivers/spi/spi-ppc4xx.c
> index 01fdecbf132d..599c29a31269 100644
> --- a/drivers/spi/spi-ppc4xx.c
> +++ b/drivers/spi/spi-ppc4xx.c
> @@ -416,6 +416,9 @@ static int spi_ppc4xx_of_probe(struct platform_device *op)
>         if (hw->irqnum <= 0)
>                 goto free_host;
>

The repeated addition of code here is indeed confusing. :-)

> +       if (hw->irqnum <= 0)
> +               goto free_host;
> +

I noticed that this patch has been merged into the spi repository for-next tree:
  https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git/commit/?id=f1011ba20b83da3ee70dcb4a6d9d282a718916fa
and there is also a related patch:
  https://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi.git/commit/?id=7781f1d120fec8624fc654eda900fc8748262082

The return type of the 'irq_of_parse_and_map' function is 'unsigned
int', here we use an 'int' type variable 'irq' to receive the interrupt number,
this might not be very accurate.

Would it be better to change the type of the 'irqnum' variable? and do
not need to check if 'irqnum' is negative, like this:

           if (!hw->irqnum) {
                    dev_err(dev, "no IRQ resource\n");
                    ret = -EINVAL;
                    goto free_host;
           }

>         ret = request_irq(hw->irqnum, spi_ppc4xx_int,
>                           0, "spi_ppc4xx_of", (void *)hw);
>         if (ret) {
> --
> 2.25.1
>
>

Regards,
Luoxi
diff mbox series

Patch

diff --git a/drivers/spi/spi-ppc4xx.c b/drivers/spi/spi-ppc4xx.c
index 01fdecbf132d..599c29a31269 100644
--- a/drivers/spi/spi-ppc4xx.c
+++ b/drivers/spi/spi-ppc4xx.c
@@ -416,6 +416,9 @@  static int spi_ppc4xx_of_probe(struct platform_device *op)
 	if (hw->irqnum <= 0)
 		goto free_host;
 
+	if (hw->irqnum <= 0)
+		goto free_host;
+
 	ret = request_irq(hw->irqnum, spi_ppc4xx_int,
 			  0, "spi_ppc4xx_of", (void *)hw);
 	if (ret) {