lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAPDyKFr-Y+pnhkTLYO2k-XHieA1rOEX9Ov129fFtZac8MksooQ@mail.gmail.com>
Date:	Thu, 14 Jan 2016 11:02:33 +0100
From:	Ulf Hansson <ulf.hansson@...aro.org>
To:	Arnd Bergmann <arnd@...db.de>
Cc:	Ian Molton <ian@...menth.co.uk>,
	linux-mmc <linux-mmc@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-arm-kernel@...ts.infradead.org" 
	<linux-arm-kernel@...ts.infradead.org>,
	Linux-sh list <linux-sh@...r.kernel.org>,
	Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
Subject: Re: [PATCH] mmc: tmio_mmc_dma: don't print invalid DMA cookie

On 13 January 2016 at 22:25, Arnd Bergmann <arnd@...db.de> 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@...db.de>

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,
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ