diff options
author | Gustavo A. R. Silva <gustavo@embeddedor.com> | 2017-08-09 11:46:48 -0400 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2017-08-09 12:18:06 -0400 |
commit | 345fef75d7c55e63f7a109f7a26ff35718c5f028 (patch) | |
tree | 65fabb89fea4800e75a502988c8fcf244b8330e9 | |
parent | 5771a8c08880cdca3bfb4a3fc6d309d6bba20877 (diff) |
spi: spi-sh: fix error return code in spi_sh_probe()
platform_get_irq() returns an error code, but the spi-sh driver
ignores it and always returns -ENODEV. This is not correct and,
prevents -EPROBE_DEFER from being propagated properly.
Print and propagate the return value of platform_get_irq on failure.
This issue was detected with the help of Coccinelle.
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | drivers/spi/spi-sh.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/spi/spi-sh.c b/drivers/spi/spi-sh.c index 2bf53f0e27d9..50e0ea9acf8b 100644 --- a/drivers/spi/spi-sh.c +++ b/drivers/spi/spi-sh.c | |||
@@ -446,8 +446,8 @@ static int spi_sh_probe(struct platform_device *pdev) | |||
446 | 446 | ||
447 | irq = platform_get_irq(pdev, 0); | 447 | irq = platform_get_irq(pdev, 0); |
448 | if (irq < 0) { | 448 | if (irq < 0) { |
449 | dev_err(&pdev->dev, "platform_get_irq error\n"); | 449 | dev_err(&pdev->dev, "platform_get_irq error: %d\n", irq); |
450 | return -ENODEV; | 450 | return irq; |
451 | } | 451 | } |
452 | 452 | ||
453 | master = spi_alloc_master(&pdev->dev, sizeof(struct spi_sh_data)); | 453 | master = spi_alloc_master(&pdev->dev, sizeof(struct spi_sh_data)); |