On Wed, Jul 11, 2012 at 5:10 AM, Kevin Hilman <khilman@xxxxxx> wrote: > If platform_get_resource_by_name() fails, driver probe is aborted an > should return an error so the driver is not bound to the device. > > However, in the current error path of platform_get_resource_by_name(), > probe returns zero since the return value (ret) is not properly set. > With a zero return value, the driver core assumes probe was successful > and will bind the driver to the device. > > Fix this by ensuring that probe returns an error code in this failure > path. > > Signed-off-by: Kevin Hilman <khilman@xxxxxx> Good catch. Acked-by: Venkatraman S <svenkatr@xxxxxx> > --- > drivers/mmc/host/omap_hsmmc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c > index 389a3ee..19e60e9 100644 > --- a/drivers/mmc/host/omap_hsmmc.c > +++ b/drivers/mmc/host/omap_hsmmc.c > @@ -1931,6 +1931,7 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) > res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "tx"); > if (!res) { > dev_err(mmc_dev(host->mmc), "cannot get DMA TX channel\n"); > + ret = -ENXIO; > goto err_irq; > } > host->dma_line_tx = res->start; > @@ -1938,6 +1939,7 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) > res = platform_get_resource_byname(pdev, IORESOURCE_DMA, "rx"); > if (!res) { > dev_err(mmc_dev(host->mmc), "cannot get DMA RX channel\n"); > + ret = -ENXIO; > goto err_irq; > } > host->dma_line_rx = res->start; > -- > 1.7.9.2 > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html