Merge branches 'upstream/core', 'upstream/xenfs' and 'upstream/evtchn' into upstream...
authorJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Mon, 22 Nov 2010 20:22:42 +0000 (12:22 -0800)
committerJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Mon, 22 Nov 2010 20:22:42 +0000 (12:22 -0800)
* upstream/core:
  xen/events: Use PIRQ instead of GSI value when unmapping MSI/MSI-X irqs.
  xen: set IO permission early (before early_cpu_init())
  xen: re-enable boot-time ballooning
  xen/balloon: make sure we only include remaining extra ram
  xen/balloon: the balloon_lock is useless
  xen: add extra pages to balloon
  xen/events: use locked set|clear_bit() for cpu_evtchn_mask
  xen/evtchn: clear secondary CPUs' cpu_evtchn_mask[] after restore
  xen: implement XENMEM_machphys_mapping

* upstream/xenfs:
  Revert "xen/privcmd: create address space to allow writable mmaps"
  xen/xenfs: update xenfs_mount for new prototype
  xen: fix header export to userspace
  xen: set vma flag VM_PFNMAP in the privcmd mmap file_op
  xen: xenfs: privcmd: check put_user() return code

* upstream/evtchn:
  xen: make evtchn's name less generic
  xen/evtchn: the evtchn device is non-seekable
  xen/evtchn: add missing static
  xen/evtchn: Fix name of Xen event-channel device
  xen/evtchn: don't do unbind_from_irqhandler under spinlock
  xen/evtchn: remove spurious barrier
  xen/evtchn: ports start enabled
  xen/evtchn: dynamically allocate port_user array
  xen/evtchn: track enabled state for each port

1  2  3 
arch/x86/xen/mmu.c

diff --combined arch/x86/xen/mmu.c
@@@@ -2034,20 -2034,6 -2034,6 +2034,20 @@@@ static __init void xen_map_identity_ear
        set_page_prot(pmd, PAGE_KERNEL_RO);
   }
   
 ++void __init xen_setup_machphys_mapping(void)
 ++{
 ++     struct xen_machphys_mapping mapping;
 ++     unsigned long machine_to_phys_nr_ents;
 ++
 ++     if (HYPERVISOR_memory_op(XENMEM_machphys_mapping, &mapping) == 0) {
 ++             machine_to_phys_mapping = (unsigned long *)mapping.v_start;
 ++             machine_to_phys_nr_ents = mapping.max_mfn + 1;
 ++     } else {
 ++             machine_to_phys_nr_ents = MACH2PHYS_NR_ENTRIES;
 ++     }
 ++     machine_to_phys_order = fls(machine_to_phys_nr_ents - 1);
 ++}
 ++
   #ifdef CONFIG_X86_64
   static void convert_pfn_mfn(void *v)
   {
@@@@ -2641,7 -2627,8 -2627,7 +2641,8 @@@@ int xen_remap_domain_mfn_range(struct v
   
        prot = __pgprot(pgprot_val(prot) | _PAGE_IOMAP);
   
- -     vma->vm_flags |= VM_IO | VM_RESERVED | VM_PFNMAP;
+ +     BUG_ON(!((vma->vm_flags & (VM_PFNMAP | VM_RESERVED | VM_IO)) ==
+ +                             (VM_PFNMAP | VM_RESERVED | VM_IO)));
   
        rmd.mfn = mfn;
        rmd.prot = prot;