Re: [PATCH V3] printk/cache: Mark printk_once test variable__read_mostly

From: Joe Perches
Date: Wed Nov 13 2013 - 20:16:28 EST


On Wed, 2013-11-13 at 11:31 -0800, Tony Luck wrote:
> On Tue, Nov 12, 2013 at 4:29 PM, Joe Perches <joe@xxxxxxxxxxx> wrote:
> > try this:
> >
> > https://lkml.org/lkml/2013/10/30/604
> >
> >
>
> How is that any different from what is in linux-next? It still
> has the same change to cache.h that reduces the nested
> #includes that currently make the build work.
>
> -#include <linux/kernel.h>
> +#include <uapi/linux/kernel.h>
>
> -Tony

I believe you were cc'd on this email as
a reply to a kbuild test robot report:

I don't have an ia64 cross compiler here but
my presumption is this fixes the problem.

I believe Andrew has picked it up for his mm
series which is haphazardly merged into -next.

-----------

On Thu, 2013-11-07 at 10:54 +0800, kbuild test robot wrote:
> tree: git://git.cmpxchg.org/linux-mmotm.git master
> head: 7610384ab26340452f06d673c46624927c3901b6
> commit: 7231446cc53d71e126acf3d0230239a6b3ad52bf [169/450] printk/cache: Mark printk_once test variable __read_mostly
> config: make ARCH=ia64 alldefconfig
>
> All error/warnings:

Hello Fengguang.

> In file included from arch/ia64/kernel/patch.c:12:0:
> arch/ia64/include/asm/processor.h: In function 'ia64_get_irr':
> >> arch/ia64/include/asm/processor.h:565:2: error: implicit declaration of function 'test_bit' [-Werror=implicit-function-declaration]

I'm a bit confused how the change I made could cause this error.

Is this an existing warning that's now an error because
bitops.h isn't explicitly #included in processor.h?

(possible fix below)

> In file included from include/linux/bitops.h:22:0,
> from include/linux/kernel.h:10,
> from include/asm-generic/bug.h:13,
> from arch/ia64/include/asm/bug.h:12,
> from include/linux/bug.h:4,
> from include/linux/thread_info.h:11,
> from include/linux/preempt.h:9,
> from include/linux/uaccess.h:4,
> from arch/ia64/include/asm/sections.h:10,
> from arch/ia64/kernel/patch.c:13:
> arch/ia64/include/asm/bitops.h: At top level:
> >> arch/ia64/include/asm/bitops.h:339:1: error: static declaration of 'test_bit' follows non-static declaration
> arch/ia64/include/asm/processor.h:565:9: note: previous implicit declaration of 'test_bit' was here
> cc1: some warnings being treated as errors
>
> vim +/test_bit +565 arch/ia64/include/asm/processor.h
>
> 549 #define cpu_relax() ia64_hint(ia64_hint_pause)
> 550
> 551 static inline int
> 552 ia64_get_irr(unsigned int vector)
> 553 {
> 554 unsigned int reg = vector / 64;
> 555 unsigned int bit = vector % 64;
> 556 u64 irr;
> 557
> 558 switch (reg) {
> 559 case 0: irr = ia64_getreg(_IA64_REG_CR_IRR0); break;
> 560 case 1: irr = ia64_getreg(_IA64_REG_CR_IRR1); break;
> 561 case 2: irr = ia64_getreg(_IA64_REG_CR_IRR2); break;
> 562 case 3: irr = ia64_getreg(_IA64_REG_CR_IRR3); break;
> 563 }
> 564
> > 565 return test_bit(bit, &irr);
> 566 }
> 567
> 568 static inline void
> 569 ia64_set_lrr0 (unsigned long val)
> 570 {
> 571 ia64_setreg(_IA64_REG_CR_LRR0, val);
> 572 ia64_srlz_d();
> 573 }
>
> ---
> 0-DAY kernel build testing backend Open Source Technology Center
> http://lists.01.org/mailman/listinfo/kbuild Intel Corporation

Maybe this fixes it?
---
arch/ia64/include/asm/processor.h | 1 +
1 file changed, 1 insertion(+)

diff --git a/arch/ia64/include/asm/processor.h b/arch/ia64/include/asm/processor.h
index 5a84b3a..efd1b92 100644
--- a/arch/ia64/include/asm/processor.h
+++ b/arch/ia64/include/asm/processor.h
@@ -71,6 +71,7 @@
#include <linux/compiler.h>
#include <linux/threads.h>
#include <linux/types.h>
+#include <linux/bitops.h>

#include <asm/fpu.h>
#include <asm/page.h>


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/