HFI1: use local write if private data is present; fix lenght alignment
This commit is contained in:
@@ -3096,9 +3096,12 @@ SYSCALL_DECLARE(writev)
|
|||||||
struct iovec *iovec = (struct iovec *)ihk_mc_syscall_arg1(ctx);
|
struct iovec *iovec = (struct iovec *)ihk_mc_syscall_arg1(ctx);
|
||||||
int iovcnt = ihk_mc_syscall_arg2(ctx);
|
int iovcnt = ihk_mc_syscall_arg2(ctx);
|
||||||
void *private_data = proc->fd_priv_table[fd];
|
void *private_data = proc->fd_priv_table[fd];
|
||||||
//if (private_data) hfi1_aio_write(private_data, iovec, iovcnt);
|
if (private_data) {
|
||||||
//return 1;
|
return hfi1_aio_write(private_data, iovec, iovcnt);
|
||||||
return syscall_generic_forwarding(__NR_writev, ctx);
|
}
|
||||||
|
else {
|
||||||
|
return syscall_generic_forwarding(__NR_writev, ctx);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SYSCALL_DECLARE(read)
|
SYSCALL_DECLARE(read)
|
||||||
|
|||||||
@@ -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);
|
WARN_ON(iovec->iov.iov_len < iovec->offset);
|
||||||
unsigned len = (unsigned)iovec->iov.iov_len - iovec->offset;
|
unsigned len = (unsigned)iovec->iov.iov_len - iovec->offset;
|
||||||
len = min(((unsigned long)virt & PAGE_MASK)
|
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(req->info.fragsize, len);
|
||||||
len = min(txreq->tlen, len);
|
len = min(txreq->tlen, len);
|
||||||
len = min((datalen - queued), len);
|
len = min((datalen - queued), len);
|
||||||
|
|||||||
Reference in New Issue
Block a user