Subject: Re: error: implicit declarations of BUG/BUG_ON/WARN_ON/WARN_ON_ONCE

From: Fengguang Wu <[email-masked]>
Date: Mon, 25 Jun 2012 12:20:17 +0800

Hi Paul,

The patch builds fine, thank you!

Tested-by: Fengguang Wu <[email-masked]>

Thanks,
Fengguang

> I'm really starting to loathe this header. This should take care of it:
> 
> ---
> 
> diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
> index 506ec19..7d10f96 100644
> --- a/include/asm-generic/bug.h
> +++ b/include/asm-generic/bug.h
> @@ -3,10 +3,18 @@
>  
>  #include <linux/compiler.h>
>  
> +#ifdef CONFIG_GENERIC_BUG
> +#define BUGFLAG_WARNING		(1 << 0)
> +#define BUGFLAG_TAINT(taint)	(BUGFLAG_WARNING | ((taint) << 8))
> +#define BUG_GET_TAINT(bug)	((bug)->flags >> 8)
> +#endif
> +
> +#ifndef __ASSEMBLY__
> +#include <linux/kernel.h>
> +
>  #ifdef CONFIG_BUG
>  
>  #ifdef CONFIG_GENERIC_BUG
> -#ifndef __ASSEMBLY__
>  struct bug_entry {
>  #ifndef CONFIG_GENERIC_BUG_RELATIVE_POINTERS
>  	unsigned long	bug_addr;
> @@ -23,17 +31,8 @@ struct bug_entry {
>  #endif
>  	unsigned short	flags;
>  };
> -#endif		/* __ASSEMBLY__ */
> -
> -#define BUGFLAG_WARNING		(1 << 0)
> -#define BUGFLAG_TAINT(taint)	(BUGFLAG_WARNING | ((taint) << 8))
> -#define BUG_GET_TAINT(bug)	((bug)->flags >> 8)
> -
>  #endif	/* CONFIG_GENERIC_BUG */
>  
> -#ifndef __ASSEMBLY__
> -#include <linux/kernel.h>
> -
>  /*
>   * Don't use BUG() or BUG_ON() unless there's really no way out; one
>   * example might be detecting data structure corruption in the middle