[PATCH net] can: mcp251xfd: fix an error pointer dereference in probe

Subsystems: can network drivers, mcp251xfd spi-can network driver, the rest

STALE1922d LANDED

Landed in mainline as 4cc7faa40697 on 2021-05-06.

3 messages, 3 authors, 2021-05-03 · open the first message on its own page

[PATCH net] can: mcp251xfd: fix an error pointer dereference in probe

From: Dan Carpenter <hidden>
Date: 2021-05-03 14:49:42

When we converted this code to use dev_err_probe() we accidentally
removed a return.  It means that if devm_clk_get() it will lead to
an Oops when we call clk_get_rate() on the next line.

Fixes: cf8ee6de2543 ("can: mcp251xfd: mcp251xfd_probe(): use dev_err_probe() to simplify error handling")
Signed-off-by: Dan Carpenter <redacted>
---
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 970dc570e7a5..f122976e90da 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -2885,8 +2885,8 @@ static int mcp251xfd_probe(struct spi_device *spi)
 
 	clk = devm_clk_get(&spi->dev, NULL);
 	if (IS_ERR(clk))
-		dev_err_probe(&spi->dev, PTR_ERR(clk),
-			      "Failed to get Oscillator (clock)!\n");
+		return dev_err_probe(&spi->dev, PTR_ERR(clk),
+				     "Failed to get Oscillator (clock)!\n");
 	freq = clk_get_rate(clk);
 
 	/* Sanity check */
-- 
2.30.2

Re: [PATCH net] can: mcp251xfd: fix an error pointer dereference in probe

From: Marc Kleine-Budde <mkl@pengutronix.de>
Date: 2021-05-03 14:53:31

On 03.05.2021 17:49:09, Dan Carpenter wrote:
When we converted this code to use dev_err_probe() we accidentally
removed a return.  It means that if devm_clk_get() it will lead to
an Oops when we call clk_get_rate() on the next line.

Fixes: cf8ee6de2543 ("can: mcp251xfd: mcp251xfd_probe(): use dev_err_probe() to simplify error handling")
Signed-off-by: Dan Carpenter <redacted>
Good catch, found that yesterday, too, but haven't posted it here.

Marc
-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Re: [PATCH net] can: mcp251xfd: fix an error pointer dereference in probe

From: Manivannan Sadhasivam <mani@kernel.org>
Date: 2021-05-03 17:00:47

On Mon, May 03, 2021 at 05:49:09PM +0300, Dan Carpenter wrote:
When we converted this code to use dev_err_probe() we accidentally
removed a return.  It means that if devm_clk_get() it will lead to
an Oops when we call clk_get_rate() on the next line.

Fixes: cf8ee6de2543 ("can: mcp251xfd: mcp251xfd_probe(): use dev_err_probe() to simplify error handling")
Signed-off-by: Dan Carpenter <redacted>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>

Thanks,
Mani
quoted hunk
---
 drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
index 970dc570e7a5..f122976e90da 100644
--- a/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
+++ b/drivers/net/can/spi/mcp251xfd/mcp251xfd-core.c
@@ -2885,8 +2885,8 @@ static int mcp251xfd_probe(struct spi_device *spi)
 
 	clk = devm_clk_get(&spi->dev, NULL);
 	if (IS_ERR(clk))
-		dev_err_probe(&spi->dev, PTR_ERR(clk),
-			      "Failed to get Oscillator (clock)!\n");
+		return dev_err_probe(&spi->dev, PTR_ERR(clk),
+				     "Failed to get Oscillator (clock)!\n");
 	freq = clk_get_rate(clk);
 
 	/* Sanity check */
-- 
2.30.2
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help