Commit adea705b authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by Andrei Vagin

uffd: Unify local and remote PF handlers

Finally, page_fault_local and page_fault_remote are
absolutely identical, so we can just merge them.
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
Acked-by: 's avatarMike Rapoport <rppt@linux.vnet.ibm.com>
parent 76bf7d45
...@@ -686,8 +686,7 @@ static int handle_remaining_pages(struct lazy_pages_info *lpi) ...@@ -686,8 +686,7 @@ static int handle_remaining_pages(struct lazy_pages_info *lpi)
return 0; return 0;
} }
static int page_fault_common(struct lazy_pages_info *lpi, __u64 address, int nr, static int handle_page_fault(struct lazy_pages_info *lpi, __u64 address, int nr)
int pr_flags)
{ {
int ret; int ret;
...@@ -695,7 +694,7 @@ static int page_fault_common(struct lazy_pages_info *lpi, __u64 address, int nr, ...@@ -695,7 +694,7 @@ static int page_fault_common(struct lazy_pages_info *lpi, __u64 address, int nr,
if (ret <= 0) if (ret <= 0)
return ret; return ret;
ret = lpi->pr.read_pages(&lpi->pr, address, nr, lpi->buf, pr_flags); ret = lpi->pr.read_pages(&lpi->pr, address, nr, lpi->buf, PR_ASYNC | PR_ASAP);
if (ret <= 0) { if (ret <= 0) {
pr_err("%d: failed reading pages at %llx\n", lpi->pid, address); pr_err("%d: failed reading pages at %llx\n", lpi->pid, address);
return ret; return ret;
...@@ -704,18 +703,6 @@ static int page_fault_common(struct lazy_pages_info *lpi, __u64 address, int nr, ...@@ -704,18 +703,6 @@ static int page_fault_common(struct lazy_pages_info *lpi, __u64 address, int nr,
return 0; return 0;
} }
static int page_fault_local(struct lazy_pages_info *lpi, __u64 address, int nr)
{
return page_fault_common(lpi, address, nr, PR_ASYNC | PR_ASAP);
}
static int page_fault_remote(struct lazy_pages_info *lpi, __u64 address, int nr)
{
return page_fault_common(lpi, address, nr, PR_ASYNC | PR_ASAP);
}
static int (*pf_handler)(struct lazy_pages_info *lpi, __u64 address, int nr);
static int handle_user_fault(struct lazy_pages_fd *lpfd) static int handle_user_fault(struct lazy_pages_fd *lpfd)
{ {
struct lazy_pages_info *lpi; struct lazy_pages_info *lpi;
...@@ -752,7 +739,7 @@ static int handle_user_fault(struct lazy_pages_fd *lpfd) ...@@ -752,7 +739,7 @@ static int handle_user_fault(struct lazy_pages_fd *lpfd)
flags = msg.arg.pagefault.flags; flags = msg.arg.pagefault.flags;
pr_debug("msg.arg.pagefault.flags 0x%llx\n", flags); pr_debug("msg.arg.pagefault.flags 0x%llx\n", flags);
ret = pf_handler(lpi, address, 1); ret = handle_page_fault(lpi, address, 1);
if (ret < 0) { if (ret < 0) {
pr_err("Error during regular page copy\n"); pr_err("Error during regular page copy\n");
return -1; return -1;
...@@ -1050,9 +1037,6 @@ int cr_lazy_pages(bool daemon) ...@@ -1050,9 +1037,6 @@ int cr_lazy_pages(bool daemon)
if (opts.use_page_server) { if (opts.use_page_server) {
if (prepare_page_server_socket(epollfd)) if (prepare_page_server_socket(epollfd))
return -1; return -1;
pf_handler = page_fault_remote;
} else {
pf_handler = page_fault_local;
} }
ret = handle_requests(epollfd, events); ret = handle_requests(epollfd, events);
......
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