Messages in this thread | | | Date | Mon, 16 Mar 2009 20:34:26 -0400 | From | Josh Boyer <> | Subject | Re: [PATCH] kernel/irq/handle.c fix kstat_irqs_cpu and irq_to_desc symbols v2 |
| |
On Mon, Mar 16, 2009 at 08:08:59PM -0400, Mathieu Desnoyers wrote: >* Thomas Gleixner (tglx@linutronix.de) wrote: >> Is this a contribution to the "most useless patch of the week" >> contest ? >> >> You have my vote. >> > >Count mine too ! :) Actually, this was not what it should look like. >Here is my version. I am not totally convinced that the struct irq_desc >is absolutely required, but in some include orders, it might matter. >However, the #endif around the EXPORT_SYMBOL is definitely needed. > >Best regards, > >Mathieu > >kernel/irq/handle.c fix kstat_irqs_cpu and irq_to_desc symbols v2 > >On Mon, Mar 16, 2009 at 05:53:37PM -0400, Mathieu Desnoyers wrote: >>* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >>> On Mon, Mar 16, 2009 at 04:25:00PM -0400, Mathieu Desnoyers wrote: >>> >* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >>> >> On Mon, Mar 16, 2009 at 03:44:59PM -0400, Mathieu Desnoyers wrote: >>> >> >* Josh Boyer (jwboyer@linux.vnet.ibm.com) wrote: >>> >> >> Hi All, >>> >> >> >>> >> >> I was attempting to build a simple ppc64_defconfig using >>> >> >> the latest LTTng tag from git. When doing a: >>> >> >> >>> >> >> make ppc64_defconfig >>> >> >> make >>> >> >> >>> >> >> I get the error below. >>> >> >> >>> >> > >>> >> >Hi Josh, >>> >> > >>> >> >Yes, LTTng has been tested with slub, but not for the powerpc64 >>> >> >cross-build. Thanks for the report, this is actually a header circular >>> >> >dependency I caused. It should be fixed in LTTng 0.111. >>> >> >>> >> Bah. Yes, I should have clarified on ppc/ppc64. Sorry for the confusion >>> >> there. >>> >> >>> >> >I'll have to update my powerpc64 cross compiler to test it, because I am >>> >> >stucked with a broken gcc 4.1. Please tell me if 0.111 fixes the problem >>> >> >for you or if you encounter other problems. >>> >> >>> >> Yep, the extern on tb_ticks_per_sec is what I had come up with locally. >>> >> It should work fine, and does indeed get past the error I was seeing. The >>> >> build now dies with: >>> >> >>> >> kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict >>> >> kernel/irq/handle.c:259: error: __ksymtab_irq_to_desc causes a section type conflict >>> >> make[2]: *** [kernel/irq/handle.o] Error 1 >>> >> make[1]: *** [kernel/irq] Error 2 >>> >> make: *** [kernel] Error 2 >>> >> make: *** Waiting for unfinished jobs.... >>> >> >>> > >>> >Can I get your full .config ? >>> >>> Sure, attached. Note, this is just: >>> >>> make ppc64_defconfig >>> make vmlinux >>> >>> josh >> >>Can you try moving this code around ? > >Yep, allows vmlinux and modules to build just fine. Here's a patch for you ;) > >Based on a patch from Josh Boyer <jwboyer@linux.vnet.ibm.com>, updated by >Mathieu Desnoyers.
You don't need to credit me here. All I did was take your "Can you try moving this code around" sequence and actually turn it into patch format.
I do agree the #endif move is needed in the builds I was trying though.
josh
>Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> >--- > include/linux/irqnr.h | 1 + > kernel/irq/handle.c | 2 +- > 2 files changed, 2 insertions(+), 1 deletion(-) > >Index: linux-2.6-lttng/include/linux/irqnr.h >=================================================================== >--- linux-2.6-lttng.orig/include/linux/irqnr.h 2009-03-16 18:45:40.000000000 -0400 >+++ linux-2.6-lttng/include/linux/irqnr.h 2009-03-16 19:45:26.000000000 -0400 >@@ -23,6 +23,7 @@ > #else /* CONFIG_GENERIC_HARDIRQS */ > > extern int nr_irqs; >+struct irq_desc; > extern struct irq_desc *irq_to_desc(unsigned int irq); > > # define for_each_irq_desc(irq, desc) \ >Index: linux-2.6-lttng/kernel/irq/handle.c >=================================================================== >--- linux-2.6-lttng.orig/kernel/irq/handle.c 2009-03-16 18:45:40.000000000 -0400 >+++ linux-2.6-lttng/kernel/irq/handle.c 2009-03-16 19:44:05.000000000 -0400 >@@ -473,6 +473,6 @@ unsigned int kstat_irqs_cpu(unsigned int > struct irq_desc *desc = irq_to_desc(irq); > return desc ? desc->kstat_irqs[cpu] : 0; > } >-#endif > EXPORT_SYMBOL(kstat_irqs_cpu); >+#endif > > >-- >Mathieu Desnoyers >OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68
| |