Re: [PATCH] z3fold: use %z modifier for format string

From: Vitaly Wool
Date: Fri Nov 25 2016 - 02:38:45 EST


Hi Joe,

On Thu, Nov 24, 2016 at 6:08 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> On Thu, 2016-11-24 at 17:31 +0100, Arnd Bergmann wrote:
>> Printing a size_t requires the %zd format rather than %d:
>>
>> mm/z3fold.c: In function âinit_z3foldâ:
>> include/linux/kern_levels.h:4:18: error: format â%dâ expects argument of type âintâ, but argument 2 has type âlong unsigned intâ [-Werror=format=]
>>
>> Fixes: 50a50d2676c4 ("z3fold: don't fail kernel build if z3fold_header is too big")
>> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
>> ---
>> mm/z3fold.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/mm/z3fold.c b/mm/z3fold.c
>> index e282ba073e77..66ac7a7dc934 100644
>> --- a/mm/z3fold.c
>> +++ b/mm/z3fold.c
>> @@ -884,7 +884,7 @@ static int __init init_z3fold(void)
>> {
>> /* Fail the initialization if z3fold header won't fit in one chunk */
>> if (sizeof(struct z3fold_header) > ZHDR_SIZE_ALIGNED) {
>> - pr_err("z3fold: z3fold_header size (%d) is bigger than "
>> + pr_err("z3fold: z3fold_header size (%zd) is bigger than "
>> "the chunk size (%d), can't proceed\n",
>> sizeof(struct z3fold_header) , ZHDR_SIZE_ALIGNED);
>> return -E2BIG;
>
> The embedded "z3fold: " prefix here should be removed
> as there's a pr_fmt that also adds it.
>
> The test looks like it should be a BUILD_BUG_ON rather
> than any runtime test too.

It used to be BUILD_BUG_ON but we deliberately changed that because
sizeof(spinlock_t) gets bloated in debug builds, so it just won't
build with default CHUNK_SIZE.

~vitaly