Commit 345b4e77 authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by Andrei Vagin

uffdd: Read pages directly into destination buffer

This avoids excessive memcpy() one instruction below.

travis-ci: success for uffd: A set of improvements over criu/uffd.c
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
Acked-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
parent 82c82291
...@@ -380,7 +380,6 @@ out: ...@@ -380,7 +380,6 @@ out:
static int get_page(struct lazy_pages_info *lpi, unsigned long addr, void *dest) static int get_page(struct lazy_pages_info *lpi, unsigned long addr, void *dest)
{ {
int ret; int ret;
unsigned char buf[PAGE_SIZE];
lpi->pr.reset(&lpi->pr); lpi->pr.reset(&lpi->pr);
...@@ -392,13 +391,11 @@ static int get_page(struct lazy_pages_info *lpi, unsigned long addr, void *dest) ...@@ -392,13 +391,11 @@ static int get_page(struct lazy_pages_info *lpi, unsigned long addr, void *dest)
if (pagemap_zero(lpi->pr.pe)) if (pagemap_zero(lpi->pr.pe))
return 0; return 0;
ret = lpi->pr.read_pages(&lpi->pr, addr, 1, buf, 0); ret = lpi->pr.read_pages(&lpi->pr, addr, 1, dest, 0);
pr_debug("read_pages ret %d\n", ret); pr_debug("read_pages ret %d\n", ret);
if (ret <= 0) if (ret <= 0)
return ret; return ret;
memcpy(dest, buf, PAGE_SIZE);
return 1; return 1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment