diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-05 19:01:11 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-05 19:01:11 -0500 |
commit | 1cd731df09decfc7e9b4b86190efa262851f68e9 (patch) | |
tree | 2ce721ab61a4234820a3d33c08f3d868a484ef65 /drivers/block | |
parent | 251aa0fddd6149e730737c8619862a0160b00a5a (diff) | |
parent | afca50132cfa7bfc5646676d8c67dc18454f38f8 (diff) |
Merge tag 'stable/for-linus-3.14-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip
Pull Xen fixes from Konrad Rzeszutek Wilk:
"Bug-fixes:
- Revert "xen/grant-table: Avoid m2p_override during mapping" as it
broke Xen ARM build.
- Fix CR4 not being set on AP processors in Xen PVH mode"
* tag 'stable/for-linus-3.14-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
xen/pvh: set CR4 flags for APs
Revert "xen/grant-table: Avoid m2p_override during mapping"
Diffstat (limited to 'drivers/block')
-rw-r--r-- | drivers/block/xen-blkback/blkback.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c index da18046d0e07..4b97b86da926 100644 --- a/drivers/block/xen-blkback/blkback.c +++ b/drivers/block/xen-blkback/blkback.c | |||
@@ -285,7 +285,8 @@ static void free_persistent_gnts(struct xen_blkif *blkif, struct rb_root *root, | |||
285 | 285 | ||
286 | if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST || | 286 | if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST || |
287 | !rb_next(&persistent_gnt->node)) { | 287 | !rb_next(&persistent_gnt->node)) { |
288 | ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap); | 288 | ret = gnttab_unmap_refs(unmap, NULL, pages, |
289 | segs_to_unmap); | ||
289 | BUG_ON(ret); | 290 | BUG_ON(ret); |
290 | put_free_pages(blkif, pages, segs_to_unmap); | 291 | put_free_pages(blkif, pages, segs_to_unmap); |
291 | segs_to_unmap = 0; | 292 | segs_to_unmap = 0; |
@@ -320,7 +321,8 @@ static void unmap_purged_grants(struct work_struct *work) | |||
320 | pages[segs_to_unmap] = persistent_gnt->page; | 321 | pages[segs_to_unmap] = persistent_gnt->page; |
321 | 322 | ||
322 | if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST) { | 323 | if (++segs_to_unmap == BLKIF_MAX_SEGMENTS_PER_REQUEST) { |
323 | ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap); | 324 | ret = gnttab_unmap_refs(unmap, NULL, pages, |
325 | segs_to_unmap); | ||
324 | BUG_ON(ret); | 326 | BUG_ON(ret); |
325 | put_free_pages(blkif, pages, segs_to_unmap); | 327 | put_free_pages(blkif, pages, segs_to_unmap); |
326 | segs_to_unmap = 0; | 328 | segs_to_unmap = 0; |
@@ -328,7 +330,7 @@ static void unmap_purged_grants(struct work_struct *work) | |||
328 | kfree(persistent_gnt); | 330 | kfree(persistent_gnt); |
329 | } | 331 | } |
330 | if (segs_to_unmap > 0) { | 332 | if (segs_to_unmap > 0) { |
331 | ret = gnttab_unmap_refs(unmap, pages, segs_to_unmap); | 333 | ret = gnttab_unmap_refs(unmap, NULL, pages, segs_to_unmap); |
332 | BUG_ON(ret); | 334 | BUG_ON(ret); |
333 | put_free_pages(blkif, pages, segs_to_unmap); | 335 | put_free_pages(blkif, pages, segs_to_unmap); |
334 | } | 336 | } |
@@ -668,14 +670,15 @@ static void xen_blkbk_unmap(struct xen_blkif *blkif, | |||
668 | GNTMAP_host_map, pages[i]->handle); | 670 | GNTMAP_host_map, pages[i]->handle); |
669 | pages[i]->handle = BLKBACK_INVALID_HANDLE; | 671 | pages[i]->handle = BLKBACK_INVALID_HANDLE; |
670 | if (++invcount == BLKIF_MAX_SEGMENTS_PER_REQUEST) { | 672 | if (++invcount == BLKIF_MAX_SEGMENTS_PER_REQUEST) { |
671 | ret = gnttab_unmap_refs(unmap, unmap_pages, invcount); | 673 | ret = gnttab_unmap_refs(unmap, NULL, unmap_pages, |
674 | invcount); | ||
672 | BUG_ON(ret); | 675 | BUG_ON(ret); |
673 | put_free_pages(blkif, unmap_pages, invcount); | 676 | put_free_pages(blkif, unmap_pages, invcount); |
674 | invcount = 0; | 677 | invcount = 0; |
675 | } | 678 | } |
676 | } | 679 | } |
677 | if (invcount) { | 680 | if (invcount) { |
678 | ret = gnttab_unmap_refs(unmap, unmap_pages, invcount); | 681 | ret = gnttab_unmap_refs(unmap, NULL, unmap_pages, invcount); |
679 | BUG_ON(ret); | 682 | BUG_ON(ret); |
680 | put_free_pages(blkif, unmap_pages, invcount); | 683 | put_free_pages(blkif, unmap_pages, invcount); |
681 | } | 684 | } |
@@ -737,7 +740,7 @@ again: | |||
737 | } | 740 | } |
738 | 741 | ||
739 | if (segs_to_map) { | 742 | if (segs_to_map) { |
740 | ret = gnttab_map_refs(map, pages_to_gnt, segs_to_map); | 743 | ret = gnttab_map_refs(map, NULL, pages_to_gnt, segs_to_map); |
741 | BUG_ON(ret); | 744 | BUG_ON(ret); |
742 | } | 745 | } |
743 | 746 | ||