From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dan Carpenter Subject: Re: [PATCH 3/4] DRBG: Fix format string for debugging statements Date: Fri, 4 Jul 2014 14:21:16 +0300 Message-ID: <20140704112116.GC25934@mwanda> References: <4927386.WYHrRe3NJm@myon.chronox.de> <10901956.0EDQunEZJL@myon.chronox.de> <20140629122402.0fd014d8@canb.auug.org.au> <4311965.FMe9YfRAnU@myon.chronox.de> <1404013999.9064.50.camel@joe-AO725> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: Content-Disposition: inline In-Reply-To: <1404013999.9064.50.camel@joe-AO725> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kbuild-bounces@lists.01.org Sender: "kbuild" To: Joe Perches Cc: Stephen Rothwell , Herbert Xu , Stephan Mueller , Randy Dunlap , linux-kernel@vger.kernel.org, linux-next@vger.kernel.org, kbuild@01.org, linux-crypto@vger.kernel.org List-Id: linux-next.vger.kernel.org On Sat, Jun 28, 2014 at 08:53:19PM -0700, Joe Perches wrote: > On Sun, 2014-06-29 at 05:46 +0200, Stephan Mueller wrote: > > Am Sonntag, 29. Juni 2014, 12:24:02 schrieb Stephen Rothwell: > > > > Hi Stephen, > > > > > Hi Stephan, > > > > > > On Sat, 28 Jun 2014 22:01:46 +0200 Stephan Mueller > > wrote: > > > > @@ -1987,8 +1987,9 @@ static int __init drbg_init(void) > > > > > > > > if (ARRAY_SIZE(drbg_cores) * 2 > ARRAY_SIZE(drbg_algs)) { > > > > > > > > pr_info("DRBG: Cannot register all DRBG types" > > > > > > > > - "(slots needed: %lu, slots available: %lu)\n", > > > > - ARRAY_SIZE(drbg_cores) * 2, ARRAY_SIZE(drbg_algs)); > > > > + "(slots needed: %u, slots available: %u)\n", > > > > + (unsigned int)ARRAY_SIZE(drbg_cores) * 2, > > > > + (unsigned int)ARRAY_SIZE(drbg_algs)); > > > > > > Doesn't ARRAY_SIZE() always return a size_t? In which case surely we > > > need no casts, but need to us %zu in the format string. > > > > Unfortunately not at all. On my x86_64, I get the compiler warning that > > ARRAY_SIZE is a long unsigned int without the cast. > > This should fix that. > --- > include/linux/kernel.h | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/include/linux/kernel.h b/include/linux/kernel.h > index 6e3d497..58bc57d 100644 > --- a/include/linux/kernel.h > +++ b/include/linux/kernel.h > @@ -51,7 +51,8 @@ > #define PTR_ALIGN(p, a) ((typeof(p))ALIGN((unsigned long)(p), (a))) > #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0) > > -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr)) > +#define ARRAY_SIZE(arr) \ > + (sizeof(arr) / sizeof((arr)[0]) + (size_t)__must_be_array(arr)) This change is a no-op isn't it? I think Stephen Rothwell's suggestion is correct. In linux-next this was changed to %lu which also works... Are there arches %zu and %lu are different? regards, dan carpenter