[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20120501202640.GB16209@phenom.dumpdata.com>
Date: Tue, 1 May 2012 16:26:40 -0400
From: Konrad Rzeszutek Wilk <konrad.wilk@...cle.com>
To: Josh Boyer <jwboyer@...il.com>
Cc: linux-kernel@...r.kernel.org, xen-devel@...ts.xensource.com,
mingo@...nel.org, suresh.b.siddha@...el.com, mlin@...pku.edu.cn
Subject: Re: [GIT PULL] stable/for-ingo-v3.5 of IOAPIC abstraction (and then
some users) for v3.5
On Tue, May 01, 2012 at 04:08:19PM -0400, Josh Boyer wrote:
> On Tue, May 1, 2012 at 3:42 PM, Konrad Rzeszutek Wilk
> <konrad.wilk@...cle.com> wrote:
> > -static void __init __ioapic_init_mappings(void)
> > +void __init native_io_apic_init_mappings(void)
> > {
> > unsigned long ioapic_phys, idx = FIX_IO_APIC_BASE_0;
> > struct resource *ioapic_res;
> > diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> > index 1a29015..8526317 100644
> > --- a/arch/x86/kernel/setup.c
> > +++ b/arch/x86/kernel/setup.c
> > @@ -1012,7 +1012,7 @@ void __init setup_arch(char **cmdline_p)
> > init_cpu_to_node();
> >
> > init_apic_mappings();
> > - ioapic_and_gsi_init();
> > + x86_io_apic_ops.init();
> >
> > kvm_guest_init();
> >
> > diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
> > index 9cf71d0..35c5e54 100644
> > --- a/arch/x86/kernel/x86_init.c
> > +++ b/arch/x86/kernel/x86_init.c
> > @@ -18,6 +18,7 @@
> > #include <asm/e820.h>
> > #include <asm/time.h>
> > #include <asm/irq.h>
> > +#include <asm/io_apic.h>
> > #include <asm/pat.h>
> > #include <asm/tsc.h>
> > #include <asm/iommu.h>
> > @@ -119,3 +120,10 @@ struct x86_msi_ops x86_msi = {
> > .teardown_msi_irqs = default_teardown_msi_irqs,
> > .restore_msi_irqs = default_restore_msi_irqs,
> > };
> > +
> > +struct x86_io_apic_ops x86_io_apic_ops = {
> > + .init = native_io_apic_init_mappings,
> > + .read = native_io_apic_read,
> > + .write = native_io_apic_write,
> > + .modify = native_io_apic_modify,
> > +};
>
> You'll get a section mismatch warning on this struct. It's not a huge
> deal, but native_io_apic_init_mappings is annotated as __init whereas
> this struct isn't. In practice it doesn't seem to matter as
> x86_io_apic_ops.init is only called in setup_arch, but it's still a
> valid warning.
I think that the mismatch disappears if the structure has the word
_ops in it. At least that is what I saw (when I ran with the MODULE_SECTION=y
with the initial implementation of this and then fixed it up).
However, let me double check - I might have seen that with something
else and misremebered it.
>
> (First noticed in https://bugzilla.redhat.com/show_bug.cgi?id=817645 )
>
> josh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists