From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755030AbcE0NrI (ORCPT ); Fri, 27 May 2016 09:47:08 -0400 Received: from mail-wm0-f46.google.com ([74.125.82.46]:35686 "EHLO mail-wm0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754961AbcE0NrB (ORCPT ); Fri, 27 May 2016 09:47:01 -0400 Subject: Re: [PATCH] hwrng: stm32: fix maybe uninitialized variable warning To: Maxime Coquelin , Matt Mackall , Herbert Xu , Sudip Mukherjee , Arnd Bergmann References: <1464255297-21090-1-git-send-email-mcoquelin.stm32@gmail.com> Cc: linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, linux-arm-kernel@lists.infradead.org From: Daniel Thompson Message-ID: Date: Fri, 27 May 2016 14:46:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.0 MIME-Version: 1.0 In-Reply-To: <1464255297-21090-1-git-send-email-mcoquelin.stm32@gmail.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 26/05/16 10:34, Maxime Coquelin wrote: > This patch fixes the following warning: > drivers/char/hw_random/stm32-rng.c: In function 'stm32_rng_read': > drivers/char/hw_random/stm32-rng.c:82:19: warning: 'sr' may be used > uninitialized in this function > > Reported-by: Sudip Mukherjee > Suggested-by: Arnd Bergmann > Cc: Daniel Thompson Reviewed-by: Daniel Thompson > Signed-off-by: Maxime Coquelin > --- > drivers/char/hw_random/stm32-rng.c | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/char/hw_random/stm32-rng.c b/drivers/char/hw_random/stm32-rng.c > index 92a810648bd0..63d84e6f1891 100644 > --- a/drivers/char/hw_random/stm32-rng.c > +++ b/drivers/char/hw_random/stm32-rng.c > @@ -69,8 +69,12 @@ static int stm32_rng_read(struct hwrng *rng, void *data, size_t max, bool wait) > } > > /* If error detected or data not ready... */ > - if (sr != RNG_SR_DRDY) > + if (sr != RNG_SR_DRDY) { > + if (WARN_ONCE(sr & (RNG_SR_SEIS | RNG_SR_CEIS), > + "bad RNG status - %x\n", sr)) > + writel_relaxed(0, priv->base + RNG_SR); > break; > + } > > *(u32 *)data = readl_relaxed(priv->base + RNG_DR); > > @@ -79,10 +83,6 @@ static int stm32_rng_read(struct hwrng *rng, void *data, size_t max, bool wait) > max -= sizeof(u32); > } > > - if (WARN_ONCE(sr & (RNG_SR_SEIS | RNG_SR_CEIS), > - "bad RNG status - %x\n", sr)) > - writel_relaxed(0, priv->base + RNG_SR); > - > pm_runtime_mark_last_busy((struct device *) priv->rng.priv); > pm_runtime_put_sync_autosuspend((struct device *) priv->rng.priv); > >