From 60f6862db21531e11fd22ba10bb62eb1fa2908f0 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Thu, 17 Aug 2017 11:40:09 +0900 Subject: [PATCH] HFI1: use local write if private data is present; fix lenght alignment --- kernel/syscall.c | 9 ++++++--- kernel/user_sdma.c | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index b677ca72..aa303df5 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -3096,9 +3096,12 @@ SYSCALL_DECLARE(writev) struct iovec *iovec = (struct iovec *)ihk_mc_syscall_arg1(ctx); int iovcnt = ihk_mc_syscall_arg2(ctx); void *private_data = proc->fd_priv_table[fd]; - //if (private_data) hfi1_aio_write(private_data, iovec, iovcnt); - //return 1; - return syscall_generic_forwarding(__NR_writev, ctx); + if (private_data) { + return hfi1_aio_write(private_data, iovec, iovcnt); + } + else { + return syscall_generic_forwarding(__NR_writev, ctx); + } } SYSCALL_DECLARE(read) diff --git a/kernel/user_sdma.c b/kernel/user_sdma.c index ed0b3a20..e456a029 100644 --- a/kernel/user_sdma.c +++ b/kernel/user_sdma.c @@ -1301,7 +1301,7 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts) WARN_ON(iovec->iov.iov_len < iovec->offset); unsigned len = (unsigned)iovec->iov.iov_len - iovec->offset; len = min(((unsigned long)virt & PAGE_MASK) - + PAGE_SIZE - (unsigned long)virt, PAGE_SIZE); + + PAGE_SIZE - (unsigned long)virt, len); len = min(req->info.fragsize, len); len = min(txreq->tlen, len); len = min((datalen - queued), len);