diff options
| -rw-r--r-- | drivers/xen/xenbus/xenbus_client.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/xen/xenbus/xenbus_client.c b/drivers/xen/xenbus/xenbus_client.c index 9ad327238ba9..e30353575d5d 100644 --- a/drivers/xen/xenbus/xenbus_client.c +++ b/drivers/xen/xenbus/xenbus_client.c | |||
| @@ -814,8 +814,10 @@ static int xenbus_unmap_ring_vfree_hvm(struct xenbus_device *dev, void *vaddr) | |||
| 814 | 814 | ||
| 815 | rv = xenbus_unmap_ring(dev, node->handles, node->nr_handles, | 815 | rv = xenbus_unmap_ring(dev, node->handles, node->nr_handles, |
| 816 | addrs); | 816 | addrs); |
| 817 | if (!rv) | 817 | if (!rv) { |
| 818 | vunmap(vaddr); | 818 | vunmap(vaddr); |
| 819 | free_xenballooned_pages(node->nr_handles, node->hvm.pages); | ||
| 820 | } | ||
| 819 | else | 821 | else |
| 820 | WARN(1, "Leaking %p, size %u page(s)\n", vaddr, | 822 | WARN(1, "Leaking %p, size %u page(s)\n", vaddr, |
| 821 | node->nr_handles); | 823 | node->nr_handles); |
