]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
Merge branch 'stable/for-linus-3.5.rebased' into uek2-merge
authorKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 11 May 2012 18:40:21 +0000 (14:40 -0400)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Fri, 11 May 2012 18:40:21 +0000 (14:40 -0400)
* stable/for-linus-3.5.rebased: (22 commits)
  x86/apic: Fix UP boot crash
  xen/apic: implement io apic read with hypercall
  xen/x86: Implement x86_apic_ops
  x86/apic: Replace io_apic_ops with x86_io_apic_ops.
  x86/ioapic: Add io_apic_ops driver layer to allow interception
  xen: implement IRQ_WORK_VECTOR handler
  xen: implement apic ipi interface
  xen/gnttab: add deferred freeing logic
  xen: enter/exit lazy_mmu_mode around m2p_override calls
  xen/setup: update VA mapping when releasing memory during setup
  xen/setup: Combine the two hypercall functions - since they are quite similar.
  xen/setup: Populate freed MFNs from non-RAM E820 entries and gaps to E820 RAM
  xen/setup: Only print "Freeing XXX-YYY pfn range: Z pages freed" if Z > 0
  xen/p2m: An early bootup variant of set_phys_to_machine
  xen/p2m: Collapse early_alloc_p2m_middle redundant checks.
  xen/p2m: Allow alloc_p2m_middle to call reserve_brk depending on argument
  xen/p2m: Move code around to allow for better re-usage.
  xen: only limit memory map to maximum reservation for domain 0.
  xen: release all pages within 1-1 p2m mappings
  xen: allow extra memory to be in multiple regions
  ...

Conflicts:
arch/x86/xen/Makefile
arch/x86/xen/enlighten.c
arch/x86/xen/setup.c
arch/x86/xen/xen-ops.h
include/xen/page.h

1  2 
arch/x86/include/asm/x86_init.h
arch/x86/kernel/x86_init.c
arch/x86/xen/Makefile
arch/x86/xen/enlighten.c
arch/x86/xen/setup.c
arch/x86/xen/smp.c
arch/x86/xen/xen-ops.h

index 7af18bea97e78ca93b99462a165b6728db4d0b26,2806b487b14821d42a1651e4be3069ca95dcb639..94997b5a54f69db6d493a960d77dade9466c503d
@@@ -174,9 -174,15 +174,16 @@@ struct x86_msi_ops 
        int (*setup_msi_irqs)(struct pci_dev *dev, int nvec, int type);
        void (*teardown_msi_irq)(unsigned int irq);
        void (*teardown_msi_irqs)(struct pci_dev *dev);
 +      void (*restore_msi_irqs)(struct pci_dev *dev, int irq);
  };
  
+ struct x86_io_apic_ops {
+       void            (*init)  (void);
+       unsigned int    (*read)  (unsigned int apic, unsigned int reg);
+       void            (*write) (unsigned int apic, unsigned int reg, unsigned int value);
+       void            (*modify)(unsigned int apic, unsigned int reg, unsigned int value);
+ };
  extern struct x86_init_ops x86_init;
  extern struct x86_cpuinit_ops x86_cpuinit;
  extern struct x86_platform_ops x86_platform;
index bd1fe10b174ff3b43edf5c295e8e1d9564ac4292,7d2eb7cb4616602918c8f4adee60719a6729cbb5..9b108581dae6799b11be0c8c7612002c3b9a9fbf
@@@ -110,5 -111,11 +111,12 @@@ struct x86_msi_ops x86_msi = 
        .setup_msi_irqs = native_setup_msi_irqs,
        .teardown_msi_irq = native_teardown_msi_irq,
        .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,
+ };
index add2c2d729cef9a0bc804a0cafd6477f142c4df3,43e1708b7067cfc7aa01394576c68ebc0f502fd4..ab517ee88f9ad88b69396363e59c6224f061acfc
@@@ -20,5 -20,5 +20,5 @@@ obj-$(CONFIG_EVENT_TRACING) += trace.
  obj-$(CONFIG_SMP)             += smp.o
  obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
  obj-$(CONFIG_XEN_DEBUG_FS)    += debugfs.o
- obj-$(CONFIG_XEN_DOM0)                += vga.o
 -obj-$(CONFIG_XEN_DOM0)                += apic.o
++obj-$(CONFIG_XEN_DOM0)                += vga.o apic.o
  obj-$(CONFIG_SWIOTLB_XEN)     += pci-swiotlb-xen.o
index bf28d69672c5cf1c0300a5f26e0fa74e67030106,fdbd5871ee71f1516f0986d6cd31a0d99c1c1569..67fc3ba8b23cfbd804e1e530ce492f78f7f3ee0e
  #include <asm/reboot.h>
  #include <asm/stackprotector.h>
  #include <asm/hypervisor.h>
 +#include <asm/mwait.h>
  #include <asm/pci_x86.h>
  
 +#ifdef CONFIG_ACPI
 +#include <asm/acpi.h>
 +#include <acpi/pdc_intel.h>
 +#include <acpi/processor.h>
 +#include <xen/interface/platform.h>
 +#endif
 +
  #include "xen-ops.h"
  #include "mmu.h"
+ #include "smp.h"
  #include "multicalls.h"
  
  EXPORT_SYMBOL_GPL(hypercall_page);
@@@ -1401,8 -1309,6 +1409,9 @@@ asmlinkage void __init xen_start_kernel
  
                /* Make sure ACS will be enabled */
                pci_request_acs();
++              
++              xen_init_apic();
 +              xen_acpi_sleep_register();
        }
  #ifdef CONFIG_PCI
        /* PCI BIOS service won't work from a PV guest. */
index 701b464590ca60000c0fff59f3b8e635a7dee046,9703e3dd3339c033aa6df87cd7f891715be988a5..1131adaec5307efc1ff908b7c6e1b85c87df7b7f
@@@ -245,7 -347,7 +352,6 @@@ char * __init xen_memory_setup(void
  
        /* Make sure the Xen-supplied memory map is well-ordered. */
        sanitize_e820_map(map, memmap.nr_entries, &memmap.nr_entries);
--
        max_pages = xen_get_max_pages();
        if (max_pages > max_pfn)
                extra_pages += max_pages - max_pfn;
Simple merge
index b095739ccd4c6f531847bcaef276d9272cd4196a,75e779ccad5b6899ab65bc3ce79e794785a647e2..202d4c150154fb31ddb03da8f8144a45f21c02a7
@@@ -88,17 -87,10 +87,21 @@@ static inline void xen_uninit_lock_cpu(
  }
  #endif
  
 +struct dom0_vga_console_info;
 +
 +#ifdef CONFIG_XEN_DOM0
 +void __init xen_init_vga(const struct dom0_vga_console_info *, size_t size);
+ void __init xen_init_apic(void);
 +#else
 +static inline void __init xen_init_vga(const struct dom0_vga_console_info *info,
 +                                     size_t size)
  {
  }
+ static inline void __init xen_init_apic(void)
++{
++}
 +#endif
 +
  /* Declare an asm function, along with symbols needed to make it
     inlineable */
  #define DECL_ASM(ret, name, ...)              \