All of lore.kernel.org
 help / color / mirror / Atom feed
From: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
To: linux@treblig.org
Cc: linux-kernel@vger.kernel.org
Subject: Re: sparse build breakage with 903c0c7cdc21f2ccb7562a7bbc70289c0c2b16ad
Date: Mon, 30 May 2011 10:58:18 +0900	[thread overview]
Message-ID: <4DE2F9BA.5030802@jp.fujitsu.com> (raw)
In-Reply-To: <20110529003857.GA9898@gallifrey>

(2011/05/29 9:38), Dr. David Alan Gilbert wrote:
> Hi Kosaki,
>   I'm getting a problem when running the current (5dbe0af47f8a8f968bac2991c3ec974c6e3eaabc)
> kernel tree through sparse, and I think it's down to an
> interaction between your commit
> 
> 903c0c7cdc21f2ccb7562a7bbc70289c0c2b16ad sparse: define dummy BUILD_BUG_ON definition for sparse
> 
> and the __module_param_call code in moduleparam.h
> 
> The error is:
> init/main.c:643:1: error: Syntax error in unary expression
> 
> core_param(initcall_debug, initcall_debug, bool, 0644);
> 
> this calls __module_param_call which is defined as:
> 
> 
> #define __module_param_call(prefix, name, ops, arg, isbool, perm)       \
>         /* Default value instead of permissions? */                     \
>         static int __param_perm_check_##name __attribute__((unused)) =  \
>         BUILD_BUG_ON_ZERO((perm) < 0 || (perm) > 0777 || ((perm) & 2))  \
>         + BUILD_BUG_ON_ZERO(sizeof(""prefix) > MAX_PARAM_PREFIX_LEN);   \
>         static const char __param_str_##name[] = prefix #name;          \
>         static struct kernel_param __moduleparam_const __param_##name   \
>         __used                                                          \
>     __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) \
>         = { __param_str_##name, ops, perm, isbool ? KPARAM_ISBOOL : 0,  \
>             { arg } }
> 
> which ends up with a postprocessed line of:
> 
> static inline void __check_initcall_debug(void) {; }; static int __param_perm_check_initcall_debug __attribute__((unused)) = +; static const char __param_str_initcall_debug[] = "" "initcall_debug"; static struct kernel_param const __param_initcall_debug __attribute__((__used__)) __attribute__ ((unused,__section__ ("__param"),aligned(sizeof(void *)))) = { __param_str_initcall_debug, &param_ops_bool, 0644, __builtin_types_compatible_p(typeof(initcall_debug), typeof(bool)) ? 2 : 0, { &initcall_debug } };
> 
> Note the '+;' being assigned to __param_perm_check_initcall_debug
> 
> So I think your dummy BUILD_BUG_ON_ZERO's needs to have a value:
> 
> The following diff seems to fix it, but I've not let
> a fuller sparse run complete yet:
> 
> diff --git a/include/linux/kernel.h b/include/linux/kernel.h
> index fb0e732..953352a 100644
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -671,8 +671,8 @@ struct sysinfo {
>  
>  #ifdef __CHECKER__
>  #define BUILD_BUG_ON_NOT_POWER_OF_2(n)
> -#define BUILD_BUG_ON_ZERO(e)
> -#define BUILD_BUG_ON_NULL(e)
> +#define BUILD_BUG_ON_ZERO(e) (0)
> +#define BUILD_BUG_ON_NULL(e) ((void*)0)
>  #define BUILD_BUG_ON(condition)
>  #else /* __CHECKER__ */
>  

Hi David,

Right you are. Can you please send a formal patch and append following line?
	Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>

Thanks.








  reply	other threads:[~2011-05-30  1:58 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-29  0:38 sparse build breakage with 903c0c7cdc21f2ccb7562a7bbc70289c0c2b16ad Dr. David Alan Gilbert
2011-05-30  1:58 ` KOSAKI Motohiro [this message]
2011-05-30 16:03   ` [PATCH] Fix BUILD_BUG_ON_ZERO sparse breakage Dr. David Alan Gilbert

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DE2F9BA.5030802@jp.fujitsu.com \
    --to=kosaki.motohiro@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@treblig.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.