On (20/06/12 14:36), Herbert Xu wrote: > As it stands if you include printk.h by itself it will fail to > compile because it requires definitions from ratelimit.h. However, > simply including ratelimit.h from printk.h does not work due to > inclusion loops involving sched.h and kernel.h. > > This patch solves this by moving bits from ratelimit.h into a new > header file which can then be included by printk.h without any > worries about header loops. > > The build bot then revealed some intriguing failures arising out > of this patch. On s390 there is an inclusion loop with asm/bug.h > and linux/kernel.h that triggers a compile failure, because kernel.h > will cause asm-generic/bug.h to be included before s390's own > asm/bug.h has finished processing. This has been fixed by not > including kernel.h in arch/s390/include/asm/bug.h. > > A related failure was seen on powerpc where asm/bug.h leads to > the inclusion of linux/kernel.h via asm-generic/bug.h which then > prematurely tries to use the very macros defined in asm/bug.h. > The particular inclusion path which led to this involves lockdep.h. > I have fixed this moving the type definitions lockdep.h into the > new lockdep_types.h. > > Signed-off-by: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> FWIW, Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@xxxxxxxxx> -ss