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);
|
||||
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)
|
||||
|
||||
@ -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);
|
||||
|
||||
Reference in New Issue
Block a user