2015-08-19 14:36:21

by Michal Suchanek

[permalink] [raw]
Subject: un4i-ss-cipher.c warning

Hello,

when building a kernel with sunxi crypto driver as merged into the
sinxi-wip branch I get a compiler warning.

I am not sure this is the latest version of the driver. It does not
seem to be in mainline yet.

Thanks

Michal

In file included from /scratch/build/linux/include/linux/printk.h:277:0,
from /scratch/build/linux/include/linux/kernel.h:13,
from /scratch/build/linux/include/linux/clk.h:16,
from
/scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss.h:15,
from
/scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c:17:
/scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c: In
function ‘sun4i_ss_cipher_poll’:
/scratch/build/linux/include/linux/dynamic_debug.h:86:3: warning:
‘todo’ may be used uninitialized in this function
[-Wmaybe-uninitialized]
__dynamic_dev_dbg(&descriptor, dev, fmt, \
^
/scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c:144:15:
note: ‘todo’ was declared here
unsigned int todo;


2015-08-20 05:29:17

by Herbert Xu

[permalink] [raw]
Subject: Re: un4i-ss-cipher.c warning

On Wed, Aug 19, 2015 at 04:35:36PM +0200, Michal Suchanek wrote:
> Hello,
>
> when building a kernel with sunxi crypto driver as merged into the
> sinxi-wip branch I get a compiler warning.
>
> I am not sure this is the latest version of the driver. It does not
> seem to be in mainline yet.

The warning appears to be spurious as the code always ends up
initialising todo before using it.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2015-08-20 06:39:06

by Maxime Ripard

[permalink] [raw]
Subject: Re: un4i-ss-cipher.c warning

On Thu, Aug 20, 2015 at 01:29:03PM +0800, Herbert Xu wrote:
> On Wed, Aug 19, 2015 at 04:35:36PM +0200, Michal Suchanek wrote:
> > Hello,
> >
> > when building a kernel with sunxi crypto driver as merged into the
> > sinxi-wip branch I get a compiler warning.
> >
> > I am not sure this is the latest version of the driver. It does not
> > seem to be in mainline yet.
>
> The warning appears to be spurious as the code always ends up
> initialising todo before using it.

Not in the dev_dbg call line 258. If ileft was negative or null, todo
isn't assigned to anything.

I'm not sure whether initializing todo to 0 is the right thing to do
though. Corentin?

Maxime

--
Maxime Ripard, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com


Attachments:
(No filename) (777.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments

2015-08-20 06:44:37

by Herbert Xu

[permalink] [raw]
Subject: Re: un4i-ss-cipher.c warning

On Thu, Aug 20, 2015 at 08:39:00AM +0200, Maxime Ripard wrote:
>
> Not in the dev_dbg call line 258. If ileft was negative or null, todo
> isn't assigned to anything.

If ileft starts out being <= 0, then oleft == ileft will also be
<= 0, in which case the loop never executes.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2015-08-20 13:56:45

by Corentin Labbe

[permalink] [raw]
Subject: Re: un4i-ss-cipher.c warning

On 19/08/2015 16:35, Michal Suchanek wrote:
> Hello,
>
> when building a kernel with sunxi crypto driver as merged into the
> sinxi-wip branch I get a compiler warning.
>
> I am not sure this is the latest version of the driver. It does not
> seem to be in mainline yet.
>
> Thanks
>
> Michal
>
> In file included from /scratch/build/linux/include/linux/printk.h:277:0,
> from /scratch/build/linux/include/linux/kernel.h:13,
> from /scratch/build/linux/include/linux/clk.h:16,
> from
> /scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss.h:15,
> from
> /scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c:17:
> /scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c: In
> function ‘sun4i_ss_cipher_poll’:
> /scratch/build/linux/include/linux/dynamic_debug.h:86:3: warning:
> ‘todo’ may be used uninitialized in this function
> [-Wmaybe-uninitialized]
> __dynamic_dev_dbg(&descriptor, dev, fmt, \
> ^
> /scratch/build/linux/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c:144:15:
> note: ‘todo’ was declared here
> unsigned int todo;
>

Hello

Thanks for the report, strange that I do not have that warning.
todo is always initialized, since oleft and ileft are always > 0 at start.
But setting todo to 0 is a simple fix.
The following patch will suppress the warning.

Regards

-- >8 --
From 67f2d0749041b08c4c4ad671ab710b3b83f6dfd3 Mon Sep 17 00:00:00 2001
From: LABBE Corentin <[email protected]>
Date: Thu, 20 Aug 2015 12:18:46 +0200
Subject: [PATCH] crypto: sun4i-ss: suppress the todo uninitialized warning

Signed-off-by: LABBE Corentin <[email protected]>
---
drivers/crypto/sunxi-ss/sun4i-ss-cipher.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
index e070c31..9299914 100644
--- a/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
+++ b/drivers/crypto/sunxi-ss/sun4i-ss-cipher.c
@@ -32,7 +32,7 @@ static int sun4i_ss_opti_poll(struct ablkcipher_request *areq)
int i, err = 0;
unsigned int ileft = areq->nbytes;
unsigned int oleft = areq->nbytes;
- unsigned int todo;
+ unsigned int todo = 0;
struct sg_mapping_iter mi, mo;
unsigned int oi, oo; /* offset for in and out */

@@ -141,7 +141,7 @@ static int sun4i_ss_cipher_poll(struct ablkcipher_request *areq)
int i, err = 0;
unsigned int ileft = areq->nbytes;
unsigned int oleft = areq->nbytes;
- unsigned int todo;
+ unsigned int todo = 0;
struct sg_mapping_iter mi, mo;
unsigned int oi, oo; /* offset for in and out */
char buf[4 * SS_RX_MAX];/* buffer for linearize SG src */
--
2.4.6

2015-08-20 22:08:30

by Herbert Xu

[permalink] [raw]
Subject: Re: un4i-ss-cipher.c warning

On Thu, Aug 20, 2015 at 03:56:39PM +0200, Corentin LABBE wrote:
>
> Thanks for the report, strange that I do not have that warning.
> todo is always initialized, since oleft and ileft are always > 0 at start.
> But setting todo to 0 is a simple fix.
> The following patch will suppress the warning.

Nack. Please do not fix spurious uninitialised warnings in this
way. Not only is this pointless but if someone introduced a real
uninitialised bug later on we'd never catch it because of this.

Cheers,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt