Re: linux-next: build failure after merge of the final tree (Linus' tree related - powerpc)
On Thu, Nov 21, 2013 at 02:33:34PM +1100, Anton Blanchard wrote: > > Hi, > > > After merging the final tree, today's linux-next build (powerpc > > allyesconfig) failed like this: > > > > :1:0: error: -mcall-aixdesc must be big endian > > Urgh, allyesconfig is building an LE kernel. Ian: do we need to reverse > the polarity of the option, and call it CONFIG_CPU_BIG_ENDIAN? More or less. See what we did with PPC_WERROR, for the same reasons, so that it was off for an allyesconfig. config PPC_DISABLE_WERROR bool "Don't build arch/powerpc code with -Werror" default n config PPC_WERROR bool depends on !PPC_DISABLE_WERROR default y cheers ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (Linus' tree related - powerpc)
Hi, > After merging the final tree, today's linux-next build (powerpc > allyesconfig) failed like this: > > :1:0: error: -mcall-aixdesc must be big endian Urgh, allyesconfig is building an LE kernel. Ian: do we need to reverse the polarity of the option, and call it CONFIG_CPU_BIG_ENDIAN? Anton ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (Linus' tree related - powerpc)
Hi all, After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: :1:0: error: -mcall-aixdesc must be big endian :1:0: error: -mcall-aixdesc must be big endian scripts/gcc-version.sh: line 31: printf: #: invalid number scripts/gcc-version.sh: line 31: printf: #: invalid number :1:0: error: -mcall-aixdesc must be big endian :1:0: error: -mcall-aixdesc must be big endian scripts/gcc-version.sh: line 31: printf: #: invalid number scripts/gcc-version.sh: line 31: printf: #: invalid number :1:0: error: -mcall-aixdesc must be big endian :1:0: error: -mcall-aixdesc must be big endian :1:0: error: -mcall-aixdesc must be big endian scripts/gcc-version.sh: line 29: printf: #: invalid number scripts/gcc-version.sh: line 29: printf: #: invalid number scripts/gcc-version.sh: line 29: printf: #: invalid number /bin/sh: line 0: test: 0001 6000 0160: integer expression expected scripts/mod/empty.c:1:0: error: -mcall-aixdesc must be big endian /* empty file to figure out endianness / word size */ ^ scripts/mod/devicetable-offsets.c:1:0: error: -mcall-aixdesc must be big endian #include ^ kernel/bounds.c:1:0: error: -mcall-aixdesc must be big endian /* ^ Caused by commit 7c105b63bd98 ("powerpc: Add CONFIG_CPU_LITTLE_ENDIAN kernel config option"). I have reverted that commit for today. -- Cheers, Stephen Rothwells...@canb.auug.org.au pgpBlULjp0d08.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (linus' tree related)
Hi all, After merging the final tree, today's linux-next build (powerpc64 allnoconfig) failed like this: In file included from arch/powerpc/include/asm/kvm_ppc.h:33:0, from arch/powerpc/kernel/setup_64.c:67: arch/powerpc/include/asm/kvm_book3s.h:65:20: error: field 'pte' has incomplete type arch/powerpc/include/asm/kvm_book3s.h:69:18: error: field 'vcpu' has incomplete type arch/powerpc/include/asm/kvm_book3s.h:98:34: error: 'HPTEG_HASH_NUM_PTE' undeclared here (not in a function) arch/powerpc/include/asm/kvm_book3s.h:99:39: error: 'HPTEG_HASH_NUM_PTE_LONG' undeclared here (not in a function) arch/powerpc/include/asm/kvm_book3s.h:100:35: error: 'HPTEG_HASH_NUM_VPTE' undeclared here (not in a function) arch/powerpc/include/asm/kvm_book3s.h:101:40: error: 'HPTEG_HASH_NUM_VPTE_LONG' undeclared here (not in a function) arch/powerpc/include/asm/kvm_book3s.h:129:4: error: 'struct kvm_run' declared inside parameter list [-Werror] arch/powerpc/include/asm/kvm_book3s.h:129:4: error: its scope is only this definition or declaration, which is probably not what you want [-Werror] And it went downhill form there. This build does not have CONFIG_KVM defined. Caused by commit f445f11eb2cc ("KVM: allow host header to be included even for !CONFIG_KVM") which clearly never saw the light of day in linux-next :-( It would have been nice if the "compile failure when KVM is not enabled" was included in the commit log so that we could figure out exactly what needed to be protected instead of just effectively removing the whole file. I just reverted that commit for today. Can someone please supply a better solution or even just more information about what that commit was solving. -- Cheers, Stephen Rothwells...@canb.auug.org.au pgpgr1EPTSjiM.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (Linus' tree related)
On Fri, 17 Jun 2011 15:38:09 +1000 Stephen Rothwell wrote: > Hi all, > > After merging the final tree, today's linux-next build (powerpc > allyesconfig) failed like this: > > mm/page_cgroup.c: In function 'page_cgroup_init': > mm/page_cgroup.c:309:13: error: 'pg_data_t' has no member named 'node_end_pfn' > > Caused by commit 37573e8c7182 ("memcg: fix init_page_cgroup nid with > sparsemem"). On powerpc, node_end_pfn() is defined to be (NODE_DATA > (nid)->node_end_pfn) where NODE_DATA(nid) is (node_data[nid]) and > node_data is struct pglist_data *node_data[]. As far as I can see, > struct pglist_data has never had a member called node_end_pfn. > > This commit introduces the only use of node_end_pfn() in the generic > kernel code. Presumably the powerpc definition needs to be fixed (to > maybe something like the x86 version). It looks like the sparc version > is broken as well. > Sorry, here is a fix I posted today. but no ack yet. == >From 507cc95c5ba2351bff16c5421255d1395a3b555b Mon Sep 17 00:00:00 2001 From: KAMEZAWA Hiroyuki Date: Thu, 16 Jun 2011 17:28:07 +0900 Subject: [PATCH] Fix node_start/end_pfn() definition for mm/page_cgroup.c commit 21a3c96 uses node_start/end_pfn(nid) for detection start/end of nodes. But, it's not defined in linux/mmzone.h but defined in /arch/???/include/mmzone.h which is included only under CONFIG_NEED_MULTIPLE_NODES=y. Then, we see mm/page_cgroup.c: In function 'page_cgroup_init': mm/page_cgroup.c:308: error: implicit declaration of function 'node_start_pfn' mm/page_cgroup.c:309: error: implicit declaration of function 'node_end_pfn' So, fixiing page_cgroup.c is an idea... But node_start_pfn()/node_end_pfn() is a very generic macro and should be implemented in the same manner for all archs. (m32r has different implementation...) This patch removes definitions of node_start/end_pfn() in each archs and defines a unified one in linux/mmzone.h. It's not under CONFIG_NEED_MULTIPLE_NODES, now. A result of macro expansion is here (mm/page_cgroup.c) for !NUMA start_pfn = ((&contig_page_data)->node_start_pfn); end_pfn = ({ pg_data_t *__pgdat = (&contig_page_data); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;}); for NUMA (x86-64) start_pfn = ((node_data[nid])->node_start_pfn); end_pfn = ({ pg_data_t *__pgdat = (node_data[nid]); __pgdat->node_start_pfn + __pgdat->node_spanned_pages;}); Signed-off-by: KAMEZAWA Hiroyuki Changelog: - fixed to avoid using "nid" twice in node_end_pfn() macro. --- arch/alpha/include/asm/mmzone.h |1 - arch/m32r/include/asm/mmzone.h|8 +--- arch/parisc/include/asm/mmzone.h |7 --- arch/powerpc/include/asm/mmzone.h |7 --- arch/sh/include/asm/mmzone.h |4 arch/sparc/include/asm/mmzone.h |2 -- arch/tile/include/asm/mmzone.h| 11 --- arch/x86/include/asm/mmzone_32.h | 11 --- arch/x86/include/asm/mmzone_64.h |3 --- include/linux/mmzone.h|7 +++ 10 files changed, 8 insertions(+), 53 deletions(-) diff --git a/arch/alpha/include/asm/mmzone.h b/arch/alpha/include/asm/mmzone.h index 8af56ce..445dc42 100644 --- a/arch/alpha/include/asm/mmzone.h +++ b/arch/alpha/include/asm/mmzone.h @@ -56,7 +56,6 @@ PLAT_NODE_DATA_LOCALNR(unsigned long p, int n) * Given a kernel address, find the home node of the underlying memory. */ #define kvaddr_to_nid(kaddr) pa_to_nid(__pa(kaddr)) -#define node_start_pfn(nid)(NODE_DATA(nid)->node_start_pfn) /* * Given a kaddr, LOCAL_BASE_ADDR finds the owning node of the memory diff --git a/arch/m32r/include/asm/mmzone.h b/arch/m32r/include/asm/mmzone.h index 9f3b5ac..115ced3 100644 --- a/arch/m32r/include/asm/mmzone.h +++ b/arch/m32r/include/asm/mmzone.h @@ -14,12 +14,6 @@ extern struct pglist_data *node_data[]; #define NODE_DATA(nid) (node_data[nid]) #define node_localnr(pfn, nid) ((pfn) - NODE_DATA(nid)->node_start_pfn) -#define node_start_pfn(nid)(NODE_DATA(nid)->node_start_pfn) -#define node_end_pfn(nid) \ -({ \ - pg_data_t *__pgdat = NODE_DATA(nid);\ - __pgdat->node_start_pfn + __pgdat->node_spanned_pages - 1; \ -}) #define pmd_page(pmd) (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT)) /* @@ -44,7 +38,7 @@ static __inline__ int pfn_to_nid(unsigned long pfn) int node; for (node = 0 ; node < MAX_NUMNODES ; node++) - if (pfn >= node_start_pfn(node) && pfn <= node_end_pfn(node)) + if (pfn >= node_start_pfn(node) && pfn < node_end_pfn(node)) break; return node; diff --git a/arch/parisc/include/asm/mmzone.h b/arch/parisc/include/asm/mmzone.h index 9608d2c..e67eb9c 100644 --- a/arch/parisc/include/asm/mmzone.h +++ b/arch/parisc/include/asm/mmzone.h @@ -14,13 +14,6 @@ extern struct node_map_data node_data[]; #define NODE_DA
linux-next: build failure after merge of the final tree (Linus' tree related)
Hi all, After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: mm/page_cgroup.c: In function 'page_cgroup_init': mm/page_cgroup.c:309:13: error: 'pg_data_t' has no member named 'node_end_pfn' Caused by commit 37573e8c7182 ("memcg: fix init_page_cgroup nid with sparsemem"). On powerpc, node_end_pfn() is defined to be (NODE_DATA (nid)->node_end_pfn) where NODE_DATA(nid) is (node_data[nid]) and node_data is struct pglist_data *node_data[]. As far as I can see, struct pglist_data has never had a member called node_end_pfn. This commit introduces the only use of node_end_pfn() in the generic kernel code. Presumably the powerpc definition needs to be fixed (to maybe something like the x86 version). It looks like the sparc version is broken as well. I have left the powerpc allyesconfig build broken for today (as it is also broken by other changes). -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ pgpWMWvqCdiQy.pgp Description: PGP signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: linux-next: build failure after merge of the final tree (linus' tree related)
On Fri, 2010-05-28 at 15:08 +1000, Stephen Rothwell wrote: > Hi Steven, > > After merging the final tree, today's linux-next build (powerpc allyesconfig) > failed like this: > > arch/powerpc/platforms/pseries/hvCall_inst.c: In function 'hcall_inst_init': > arch/powerpc/platforms/pseries/hvCall_inst.c:143: warning: passing argument 1 > of 'register_trace_hcall_entry' from incompatible pointer type > arch/powerpc/include/asm/trace.h:100: note: expected 'void (*)(void *, long > unsigned int, long unsigned int *)' but argument is of type 'void (*)(long > unsigned int, long unsigned int *)' > arch/powerpc/platforms/pseries/hvCall_inst.c:143: error: too few arguments to > function 'register_trace_hcall_entry' > arch/powerpc/platforms/pseries/hvCall_inst.c:146: warning: passing argument 1 > of 'register_trace_hcall_exit' from incompatible pointer type > arch/powerpc/include/asm/trace.h:122: note: expected 'void (*)(void *, long > unsigned int, long unsigned int, long unsigned int *)' but argument is of > type 'void (*)(long unsigned int, long unsigned int, long unsigned int *)' > arch/powerpc/platforms/pseries/hvCall_inst.c:146: error: too few arguments to > function 'register_trace_hcall_exit' > arch/powerpc/platforms/pseries/hvCall_inst.c:147: warning: passing argument 1 > of 'unregister_trace_hcall_entry' from incompatible pointer type > arch/powerpc/include/asm/trace.h:100: note: expected 'void (*)(void *, long > unsigned int, long unsigned int *)' but argument is of type 'void (*)(long > unsigned int, long unsigned int *)' > arch/powerpc/platforms/pseries/hvCall_inst.c:147: error: too few arguments to > function 'unregister_trace_hcall_entry' > > Probably caused by commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e > ("tracing: Let tracepoints have data passed to tracepoint callbacks"). > > I applied this patch which builds (but may be incorrect). > Looks good to me. Acked-by: Steven Rostedt -- Steve > From: Stephen Rothwell > Date: Fri, 28 May 2010 15:05:00 +1000 > Subject: [PATCH] tracing: fix for tracepoint API change > > Commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e "tracing: Let tracepoints > have data passed to tracepoint callbacks" requires this fixup to the > powerpc code. > > Signed-off-by: Stephen Rothwell > --- > arch/powerpc/platforms/pseries/hvCall_inst.c | 10 +- > 1 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/arch/powerpc/platforms/pseries/hvCall_inst.c > b/arch/powerpc/platforms/pseries/hvCall_inst.c > index 1fefae7..e19ff02 100644 > --- a/arch/powerpc/platforms/pseries/hvCall_inst.c > +++ b/arch/powerpc/platforms/pseries/hvCall_inst.c > @@ -102,7 +102,7 @@ static const struct file_operations hcall_inst_seq_fops = > { > #define CPU_NAME_BUF_SIZE32 > > > -static void probe_hcall_entry(unsigned long opcode, unsigned long *args) > +static void probe_hcall_entry(void *ignored, unsigned long opcode, unsigned > long *args) > { > struct hcall_stats *h; > > @@ -114,7 +114,7 @@ static void probe_hcall_entry(unsigned long opcode, > unsigned long *args) > h->purr_start = mfspr(SPRN_PURR); > } > > -static void probe_hcall_exit(unsigned long opcode, unsigned long retval, > +static void probe_hcall_exit(void *ignored, unsigned long opcode, unsigned > long retval, >unsigned long *retbuf) > { > struct hcall_stats *h; > @@ -140,11 +140,11 @@ static int __init hcall_inst_init(void) > if (!firmware_has_feature(FW_FEATURE_LPAR)) > return 0; > > - if (register_trace_hcall_entry(probe_hcall_entry)) > + if (register_trace_hcall_entry(probe_hcall_entry, NULL)) > return -EINVAL; > > - if (register_trace_hcall_exit(probe_hcall_exit)) { > - unregister_trace_hcall_entry(probe_hcall_entry); > + if (register_trace_hcall_exit(probe_hcall_exit, NULL)) { > + unregister_trace_hcall_entry(probe_hcall_entry, NULL); > return -EINVAL; > } > > -- > 1.7.1 > > ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
linux-next: build failure after merge of the final tree (linus' tree related)
Hi Steven, After merging the final tree, today's linux-next build (powerpc allyesconfig) failed like this: arch/powerpc/platforms/pseries/hvCall_inst.c: In function 'hcall_inst_init': arch/powerpc/platforms/pseries/hvCall_inst.c:143: warning: passing argument 1 of 'register_trace_hcall_entry' from incompatible pointer type arch/powerpc/include/asm/trace.h:100: note: expected 'void (*)(void *, long unsigned int, long unsigned int *)' but argument is of type 'void (*)(long unsigned int, long unsigned int *)' arch/powerpc/platforms/pseries/hvCall_inst.c:143: error: too few arguments to function 'register_trace_hcall_entry' arch/powerpc/platforms/pseries/hvCall_inst.c:146: warning: passing argument 1 of 'register_trace_hcall_exit' from incompatible pointer type arch/powerpc/include/asm/trace.h:122: note: expected 'void (*)(void *, long unsigned int, long unsigned int, long unsigned int *)' but argument is of type 'void (*)(long unsigned int, long unsigned int, long unsigned int *)' arch/powerpc/platforms/pseries/hvCall_inst.c:146: error: too few arguments to function 'register_trace_hcall_exit' arch/powerpc/platforms/pseries/hvCall_inst.c:147: warning: passing argument 1 of 'unregister_trace_hcall_entry' from incompatible pointer type arch/powerpc/include/asm/trace.h:100: note: expected 'void (*)(void *, long unsigned int, long unsigned int *)' but argument is of type 'void (*)(long unsigned int, long unsigned int *)' arch/powerpc/platforms/pseries/hvCall_inst.c:147: error: too few arguments to function 'unregister_trace_hcall_entry' Probably caused by commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e ("tracing: Let tracepoints have data passed to tracepoint callbacks"). I applied this patch which builds (but may be incorrect). From: Stephen Rothwell Date: Fri, 28 May 2010 15:05:00 +1000 Subject: [PATCH] tracing: fix for tracepoint API change Commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e "tracing: Let tracepoints have data passed to tracepoint callbacks" requires this fixup to the powerpc code. Signed-off-by: Stephen Rothwell --- arch/powerpc/platforms/pseries/hvCall_inst.c | 10 +- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/arch/powerpc/platforms/pseries/hvCall_inst.c b/arch/powerpc/platforms/pseries/hvCall_inst.c index 1fefae7..e19ff02 100644 --- a/arch/powerpc/platforms/pseries/hvCall_inst.c +++ b/arch/powerpc/platforms/pseries/hvCall_inst.c @@ -102,7 +102,7 @@ static const struct file_operations hcall_inst_seq_fops = { #define CPU_NAME_BUF_SIZE 32 -static void probe_hcall_entry(unsigned long opcode, unsigned long *args) +static void probe_hcall_entry(void *ignored, unsigned long opcode, unsigned long *args) { struct hcall_stats *h; @@ -114,7 +114,7 @@ static void probe_hcall_entry(unsigned long opcode, unsigned long *args) h->purr_start = mfspr(SPRN_PURR); } -static void probe_hcall_exit(unsigned long opcode, unsigned long retval, +static void probe_hcall_exit(void *ignored, unsigned long opcode, unsigned long retval, unsigned long *retbuf) { struct hcall_stats *h; @@ -140,11 +140,11 @@ static int __init hcall_inst_init(void) if (!firmware_has_feature(FW_FEATURE_LPAR)) return 0; - if (register_trace_hcall_entry(probe_hcall_entry)) + if (register_trace_hcall_entry(probe_hcall_entry, NULL)) return -EINVAL; - if (register_trace_hcall_exit(probe_hcall_exit)) { - unregister_trace_hcall_entry(probe_hcall_entry); + if (register_trace_hcall_exit(probe_hcall_exit, NULL)) { + unregister_trace_hcall_entry(probe_hcall_entry, NULL); return -EINVAL; } -- 1.7.1 -- Cheers, Stephen Rothwells...@canb.auug.org.au http://www.canb.auug.org.au/~sfr/ ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev