diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-31 11:38:18 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-31 11:38:18 -0500 |
commit | 14164b46fc994bcf82963ace00372cf808a31af1 (patch) | |
tree | e2a26a3a42a55bc3d2887cf9793d03843e1fa272 /include/xen | |
parent | e2a0f813e0d53014b78aae76f0359c8a41f05eeb (diff) | |
parent | f93576e1ac34fd7a93d6f3432e71295bbe6a27ce (diff) |
Merge tag 'stable/for-linus-3.14-rc0-late-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull Xen bugfixes from Konrad Rzeszutek Wilk:
"Bug-fixes for the new features that were added during this cycle.
There are also two fixes for long-standing issues for which we have a
solution: grant-table operations extra work that was not needed
causing performance issues and the self balloon code was too
aggressive causing OOMs.
Details:
- Xen ARM couldn't use the new FIFO events
- Xen ARM couldn't use the SWIOTLB if compiled as 32-bit with 64-bit PCIe devices.
- Grant table were doing needless M2P operations.
- Ratchet down the self-balloon code so it won't OOM.
- Fix misplaced kfree in Xen PVH error code paths"
* tag 'stable/for-linus-3.14-rc0-late-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/pvh: Fix misplaced kfree from xlated_setup_gnttab_pages
drivers: xen: deaggressive selfballoon driver
xen/grant-table: Avoid m2p_override during mapping
xen/gnttab: Use phys_addr_t to describe the grant frame base address
xen: swiotlb: handle sizeof(dma_addr_t) != sizeof(phys_addr_t)
arm/xen: Initialize event channels earlier
Diffstat (limited to 'include/xen')
-rw-r--r-- | include/xen/grant_table.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/xen/grant_table.h b/include/xen/grant_table.h index 5acb1e4ac0d3..7ad033dbc845 100644 --- a/include/xen/grant_table.h +++ b/include/xen/grant_table.h | |||
@@ -185,17 +185,21 @@ struct grant_frames { | |||
185 | }; | 185 | }; |
186 | extern struct grant_frames xen_auto_xlat_grant_frames; | 186 | extern struct grant_frames xen_auto_xlat_grant_frames; |
187 | unsigned int gnttab_max_grant_frames(void); | 187 | unsigned int gnttab_max_grant_frames(void); |
188 | int gnttab_setup_auto_xlat_frames(unsigned long addr); | 188 | int gnttab_setup_auto_xlat_frames(phys_addr_t addr); |
189 | void gnttab_free_auto_xlat_frames(void); | 189 | void gnttab_free_auto_xlat_frames(void); |
190 | 190 | ||
191 | #define gnttab_map_vaddr(map) ((void *)(map.host_virt_addr)) | 191 | #define gnttab_map_vaddr(map) ((void *)(map.host_virt_addr)) |
192 | 192 | ||
193 | int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops, | 193 | int gnttab_map_refs(struct gnttab_map_grant_ref *map_ops, |
194 | struct gnttab_map_grant_ref *kmap_ops, | ||
195 | struct page **pages, unsigned int count); | 194 | struct page **pages, unsigned int count); |
195 | int gnttab_map_refs_userspace(struct gnttab_map_grant_ref *map_ops, | ||
196 | struct gnttab_map_grant_ref *kmap_ops, | ||
197 | struct page **pages, unsigned int count); | ||
196 | int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops, | 198 | int gnttab_unmap_refs(struct gnttab_unmap_grant_ref *unmap_ops, |
197 | struct gnttab_map_grant_ref *kunmap_ops, | ||
198 | struct page **pages, unsigned int count); | 199 | struct page **pages, unsigned int count); |
200 | int gnttab_unmap_refs_userspace(struct gnttab_unmap_grant_ref *unmap_ops, | ||
201 | struct gnttab_map_grant_ref *kunmap_ops, | ||
202 | struct page **pages, unsigned int count); | ||
199 | 203 | ||
200 | /* Perform a batch of grant map/copy operations. Retry every batch slot | 204 | /* Perform a batch of grant map/copy operations. Retry every batch slot |
201 | * for which the hypervisor returns GNTST_eagain. This is typically due | 205 | * for which the hypervisor returns GNTST_eagain. This is typically due |