Unverified Commit f131767e authored by zpershuai's avatar zpershuai Committed by Mark Brown
Browse files

spi: spi-zynq-qspi: Fix some wrong goto jumps & missing error code



In zynq_qspi_probe function, when enable the device clock is done,
the return of all the functions should goto the clk_dis_all label.

If num_cs is not right then this should return a negative error
code but currently it returns success.

Signed-off-by: default avatarzpershuai <zpershuai@gmail.com>
Link: https://lore.kernel.org/r/1622110857-21812-1-git-send-email-zpershuai@gmail.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent 2ec6f20b
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -678,14 +678,14 @@ static int zynq_qspi_probe(struct platform_device *pdev)
	xqspi->irq = platform_get_irq(pdev, 0);
	if (xqspi->irq <= 0) {
		ret = -ENXIO;
		goto remove_master;
		goto clk_dis_all;
	}
	ret = devm_request_irq(&pdev->dev, xqspi->irq, zynq_qspi_irq,
			       0, pdev->name, xqspi);
	if (ret != 0) {
		ret = -ENXIO;
		dev_err(&pdev->dev, "request_irq failed\n");
		goto remove_master;
		goto clk_dis_all;
	}

	ret = of_property_read_u32(np, "num-cs",
@@ -693,8 +693,9 @@ static int zynq_qspi_probe(struct platform_device *pdev)
	if (ret < 0) {
		ctlr->num_chipselect = 1;
	} else if (num_cs > ZYNQ_QSPI_MAX_NUM_CS) {
		ret = -EINVAL;
		dev_err(&pdev->dev, "only 2 chip selects are available\n");
		goto remove_master;
		goto clk_dis_all;
	} else {
		ctlr->num_chipselect = num_cs;
	}