Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcc2f9b7 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip

Pull Xen bug-fixes from Konrad Rzeszutek Wilk:
 "Fixes to patches that went in this merge window along with a latent
  bug:
   - Fix lazy flushing in case m2p override fails.
   - Fix module compile issues with ARM/Xen
   - Add missing call to DMA map page for Xen SWIOTLB for ARM"

* tag 'stable/for-linus-3.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
  xen/gnttab: leave lazy MMU mode in the case of a m2p override failure
  xen/arm: p2m_init and p2m_lock should be static
  arm/xen: Export phys_to_mach to fix Xen module link errors
  swiotlb-xen: add missing xen_dma_map_page call
parents aeac8103 14883a75
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -25,8 +25,9 @@ struct xen_p2m_entry {
	struct rb_node rbnode_phys;
};

rwlock_t p2m_lock;
static rwlock_t p2m_lock;
struct rb_root phys_to_mach = RB_ROOT;
EXPORT_SYMBOL_GPL(phys_to_mach);
static struct rb_root mach_to_phys = RB_ROOT;

static int xen_add_phys_to_mach_entry(struct xen_p2m_entry *new)
@@ -200,7 +201,7 @@ bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
}
EXPORT_SYMBOL_GPL(__set_phys_to_machine);

int p2m_init(void)
static int p2m_init(void)
{
	rwlock_init(&p2m_lock);
	return 0;
+4 −2
Original line number Diff line number Diff line
@@ -930,9 +930,10 @@ int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops,
		ret = m2p_add_override(mfn, pages[i], kmap_ops ?
				       &kmap_ops[i] : NULL);
		if (ret)
			return ret;
			goto out;
	}

 out:
	if (lazy)
		arch_leave_lazy_mmu_mode();

@@ -969,9 +970,10 @@ int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops,
		ret = m2p_remove_override(pages[i], kmap_ops ?
				       &kmap_ops[i] : NULL);
		if (ret)
			return ret;
			goto out;
	}

 out:
	if (lazy)
		arch_leave_lazy_mmu_mode();

+5 −0
Original line number Diff line number Diff line
@@ -555,6 +555,11 @@ xen_swiotlb_map_sg_attrs(struct device *hwdev, struct scatterlist *sgl,
				sg_dma_len(sgl) = 0;
				return 0;
			}
			xen_dma_map_page(hwdev, pfn_to_page(map >> PAGE_SHIFT),
						map & ~PAGE_MASK,
						sg->length,
						dir,
						attrs);
			sg->dma_address = xen_phys_to_bus(map);
		} else {
			/* we are not interested in the dma_addr returned by