Message ID | 1421973787-3240-1-git-send-email-festevam@gmail.com |
---|---|
State | Accepted |
Commit | e4ca6840837be86b89e77c8402c1e6ab8a36f274 |
Headers | show |
On Thu, Jan 22, 2015 at 6:43 PM, Fabio Estevam <festevam@gmail.com> wrote: > From: Fabio Estevam <fabio.estevam@freescale.com> > > Jumping to 'map_failed' label is not correct at these points, as it misses to > disable the clocks that were previously enabled. > > Jump to 'irq_failed' label instead that will correctly disable the clocks. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> > --- > drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c > index a46bea3..a733bd2 100644 > --- a/drivers/mtd/spi-nor/fsl-quadspi.c > +++ b/drivers/mtd/spi-nor/fsl-quadspi.c > @@ -890,24 +890,24 @@ static int fsl_qspi_probe(struct platform_device *pdev) > > ret = of_modalias_node(np, modalias, sizeof(modalias)); > if (ret < 0) > - goto map_failed; > + goto irq_failed; > > ret = of_property_read_u32(np, "spi-max-frequency", > &q->clk_rate); > if (ret < 0) > - goto map_failed; > + goto irq_failed; > > /* set the chip address for READID */ > fsl_qspi_set_base_addr(q, nor); > > ret = spi_nor_scan(nor, modalias, SPI_NOR_QUAD); > if (ret) > - goto map_failed; > + goto irq_failed; > > ppdata.of_node = np; > ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); > if (ret) > - goto map_failed; > + goto irq_failed; > > /* Set the correct NOR size now. */ > if (q->nor_size == 0) { > -- > 1.9.1 Acked-by: Han Xu <han.xu@freescale.com> > > > ______________________________________________________ > Linux MTD discussion mailing list > http://lists.infradead.org/mailman/listinfo/linux-mtd/
On Thu, Jan 22, 2015 at 10:43:05PM -0200, Fabio Estevam wrote: > From: Fabio Estevam <fabio.estevam@freescale.com> > > Jumping to 'map_failed' label is not correct at these points, as it misses to > disable the clocks that were previously enabled. > > Jump to 'irq_failed' label instead that will correctly disable the clocks. > > Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Applied all 3 to l2-mtd.git, thanks. > --- > drivers/mtd/spi-nor/fsl-quadspi.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c > index a46bea3..a733bd2 100644 > --- a/drivers/mtd/spi-nor/fsl-quadspi.c > +++ b/drivers/mtd/spi-nor/fsl-quadspi.c > @@ -890,24 +890,24 @@ static int fsl_qspi_probe(struct platform_device *pdev) > > ret = of_modalias_node(np, modalias, sizeof(modalias)); > if (ret < 0) > - goto map_failed; > + goto irq_failed; > > ret = of_property_read_u32(np, "spi-max-frequency", > &q->clk_rate); > if (ret < 0) > - goto map_failed; > + goto irq_failed; > > /* set the chip address for READID */ > fsl_qspi_set_base_addr(q, nor); > > ret = spi_nor_scan(nor, modalias, SPI_NOR_QUAD); > if (ret) > - goto map_failed; > + goto irq_failed; > > ppdata.of_node = np; > ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); > if (ret) > - goto map_failed; > + goto irq_failed; > > /* Set the correct NOR size now. */ > if (q->nor_size == 0) { FYI, the error handling is still wrong here (it's just less wrong). If the second device fails to scan for some reason, you aren't unregistering the first. This will leave an MTD around that has no driver backing it. Brian
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c index a46bea3..a733bd2 100644 --- a/drivers/mtd/spi-nor/fsl-quadspi.c +++ b/drivers/mtd/spi-nor/fsl-quadspi.c @@ -890,24 +890,24 @@ static int fsl_qspi_probe(struct platform_device *pdev) ret = of_modalias_node(np, modalias, sizeof(modalias)); if (ret < 0) - goto map_failed; + goto irq_failed; ret = of_property_read_u32(np, "spi-max-frequency", &q->clk_rate); if (ret < 0) - goto map_failed; + goto irq_failed; /* set the chip address for READID */ fsl_qspi_set_base_addr(q, nor); ret = spi_nor_scan(nor, modalias, SPI_NOR_QUAD); if (ret) - goto map_failed; + goto irq_failed; ppdata.of_node = np; ret = mtd_device_parse_register(mtd, NULL, &ppdata, NULL, 0); if (ret) - goto map_failed; + goto irq_failed; /* Set the correct NOR size now. */ if (q->nor_size == 0) {