On 13 January 2016 at 22:25, Arnd Bergmann <arnd@xxxxxxxx> wrote: > The tmio_mmc_start_dma_{rx,tx} function functions contain debug > code that prints the dma cookie among other things. However, > in case we fall back to PIO mode for some reason, the cookie > variable is never initialized, and gcc warns about this: > > In file included from ../include/linux/printk.h:277:0, > from ../include/linux/kernel.h:13, > from ../include/linux/list.h:8, > from ../include/linux/kobject.h:20, > from ../include/linux/device.h:17, > from ../drivers/mmc/host/tmio_mmc_dma.c:13: > ../drivers/mmc/host/tmio_mmc_dma.c: In function 'tmio_mmc_start_dma': > ../include/linux/dynamic_debug.h:86:3: warning: 'cookie' may be used uninitialized in this function [-Wmaybe-uninitialized] > __dynamic_dev_dbg(&descriptor, dev, fmt, \ > ^ > ../drivers/mmc/host/tmio_mmc_dma.c:128:15: note: 'cookie' was declared here > dma_cookie_t cookie; > > This modifies the dev_dbg() statements so we only print the cookie > when we are already in the DMA path. > > Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Thanks, applied for fixes! Kind regards Uffe > --- > This warning has existed for a long time, and it's only in debug code, > so probably nobody cared. > > diff --git a/drivers/mmc/host/tmio_mmc_dma.c b/drivers/mmc/host/tmio_mmc_dma.c > index e4b05dbb9ca8..4a0d6b80eaa3 100644 > --- a/drivers/mmc/host/tmio_mmc_dma.c > +++ b/drivers/mmc/host/tmio_mmc_dma.c > @@ -94,9 +94,9 @@ static void tmio_mmc_start_dma_rx(struct tmio_mmc_host *host) > desc = NULL; > ret = cookie; > } > + dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", > + __func__, host->sg_len, ret, cookie, host->mrq); > } > - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", > - __func__, host->sg_len, ret, cookie, host->mrq); > > pio: > if (!desc) { > @@ -116,8 +116,8 @@ pio: > "DMA failed: %d, falling back to PIO\n", ret); > } > > - dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d, sg[%d]\n", __func__, > - desc, cookie, host->sg_len); > + dev_dbg(&host->pdev->dev, "%s(): desc %p, sg[%d]\n", __func__, > + desc, host->sg_len); > } > > static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) > @@ -174,9 +174,9 @@ static void tmio_mmc_start_dma_tx(struct tmio_mmc_host *host) > desc = NULL; > ret = cookie; > } > + dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", > + __func__, host->sg_len, ret, cookie, host->mrq); > } > - dev_dbg(&host->pdev->dev, "%s(): mapped %d -> %d, cookie %d, rq %p\n", > - __func__, host->sg_len, ret, cookie, host->mrq); > > pio: > if (!desc) { > @@ -196,8 +196,7 @@ pio: > "DMA failed: %d, falling back to PIO\n", ret); > } > > - dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d\n", __func__, > - desc, cookie); > + dev_dbg(&host->pdev->dev, "%s(): desc %p\n", __func__, desc); > } > > void tmio_mmc_start_dma(struct tmio_mmc_host *host, > -- 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