The "tsd->irq" variable is unsigned so this error handling
code will not work.
Fix this by adding error handling statement
Fixes: 8528547bcc33 ("spi: tegra: add spi driver for sflash controller")
Signed-off-by: Zhang Shurong <[email protected]>
---
drivers/spi/spi-tegra20-sflash.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sflash.c
index 4286310628a2..4c18337de813 100644
--- a/drivers/spi/spi-tegra20-sflash.c
+++ b/drivers/spi/spi-tegra20-sflash.c
@@ -455,7 +455,11 @@ static int tegra_sflash_probe(struct platform_device *pdev)
goto exit_free_master;
}
- tsd->irq = platform_get_irq(pdev, 0);
+ ret = platform_get_irq(pdev, 0);
+ if (ret < 0)
+ goto exit_free_master;
+
+ tsd->irq = ret;
ret = request_irq(tsd->irq, tegra_sflash_isr, 0,
dev_name(&pdev->dev), tsd);
if (ret < 0) {
--
2.30.2
On Sat, Jul 15, 2023 at 05:53:56PM +0800, Zhang Shurong wrote:
> The "tsd->irq" variable is unsigned so this error handling
> code will not work.
>
> Fix this by adding error handling statement
This doesn't really make sense. First you say that the error handling
will not work and then you say you fix that by adding error handling.
So the bug here is that there is no error checking in the first place,
so you should probably reword that commit message.
Thierry
>
> Fixes: 8528547bcc33 ("spi: tegra: add spi driver for sflash controller")
> Signed-off-by: Zhang Shurong <[email protected]>
> ---
> drivers/spi/spi-tegra20-sflash.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/spi/spi-tegra20-sflash.c b/drivers/spi/spi-tegra20-sflash.c
> index 4286310628a2..4c18337de813 100644
> --- a/drivers/spi/spi-tegra20-sflash.c
> +++ b/drivers/spi/spi-tegra20-sflash.c
> @@ -455,7 +455,11 @@ static int tegra_sflash_probe(struct platform_device *pdev)
> goto exit_free_master;
> }
>
> - tsd->irq = platform_get_irq(pdev, 0);
> + ret = platform_get_irq(pdev, 0);
> + if (ret < 0)
> + goto exit_free_master;
> +
> + tsd->irq = ret;
> ret = request_irq(tsd->irq, tegra_sflash_isr, 0,
> dev_name(&pdev->dev), tsd);
> if (ret < 0) {
> --
> 2.30.2
>