[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [GIT PULL] (xen) for stable/for-ingo-v3.5.v3 for v3.5
On Mon, Apr 16, 2012 at 02:40:13PM -0400, Konrad Rzeszutek Wilk wrote: > Hey Ingo, > > Please git pull the following branch for v3.5: > > git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git > stable/for-ingo-v3.5.v3 > > It has the proper fix for the IO-APIC having 0xfffff... contents when booting > under Xen. > > Compared to the patch you have already in the tree > (136d249ef7dbf0fefa292082cc40be1ea864cbd6 > x86/ioapic: Add io_apic_ops driver layer to allow interception) it does > three things: > > 1) Exposes the io_apic baremetal functions and uses the x86_io_apic_ops > function table > instead of keeping it in the io_apic. This makes the code fit within the > rest of > x86_ops functions. > > 2) Use the x86_io_apic_ops to re-direct the (*read) to the Xen emulated one. > > 3) Removes the work-around. > > Please note, that the existing interface (136d249) can be used to do 2) as > well. But the .. If the __ioapic_init_mappings is made visible (so that we can call it in the Xen's version of io_apic_ops.init() - as we want to re-use as much as possible of the generic code: commit fa45ea06ab785ce82644980befc7e983f884f72a Author: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Date: Mon Apr 16 14:50:02 2012 -0400 x86/io_apic: Make __ioapic_init_mappings visible to other sub-systems. This way, we can re-use as much as possible of the generic code as possible and re-use the generic initialization. Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> diff --git a/arch/x86/include/asm/io_apic.h b/arch/x86/include/asm/io_apic.h index 2c4943d..e75979c 100644 --- a/arch/x86/include/asm/io_apic.h +++ b/arch/x86/include/asm/io_apic.h @@ -157,6 +157,7 @@ extern int io_apic_set_pci_routing(struct device *dev, int irq, struct io_apic_irq_attr *irq_attr); void setup_IO_APIC_irq_extra(u32 gsi); extern void ioapic_and_gsi_init(void); +extern void __ioapic_init_mappings(void); extern void ioapic_insert_resources(void); int io_apic_setup_irq_pin_once(unsigned int irq, int node, struct io_apic_irq_attr *attr); @@ -191,6 +192,7 @@ extern void disable_ioapic_support(void); #define setup_ioapic_ids_from_mpc x86_init_noop static const int timer_through_8259 = 0; static inline void ioapic_and_gsi_init(void) { } +static inline void __ioapic_init_mappings(void) { } static inline void ioapic_insert_resources(void) { } #define gsi_top (NR_IRQS_LEGACY) static inline int mp_find_ioapic(u32 gsi) { return 0; } diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index e88300d..58e6986 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -68,8 +68,6 @@ #define for_each_irq_pin(entry, head) \ for (entry = head; entry; entry = entry->next) -static void __init __ioapic_init_mappings(void); - static unsigned int __io_apic_read (unsigned int apic, unsigned int reg); static void __io_apic_write (unsigned int apic, unsigned int reg, unsigned int val); static void __io_apic_modify(unsigned int apic, unsigned int reg, unsigned int val); @@ -3936,7 +3934,7 @@ void __init ioapic_and_gsi_init(void) io_apic_ops.init(); } -static void __init __ioapic_init_mappings(void) +void __init __ioapic_init_mappings(void) { unsigned long ioapic_phys, idx = FIX_IO_APIC_BASE_0; struct resource *ioapic_res; _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |