HFI1: compute SDMA pkt length taking large pages into account
This commit is contained in:
@@ -1460,20 +1460,10 @@ static int user_sdma_send_pkts(struct user_sdma_request *req, unsigned maxpkts)
|
|||||||
len = offset + req->info.fragsize > PAGE_SIZE ?
|
len = offset + req->info.fragsize > PAGE_SIZE ?
|
||||||
PAGE_SIZE - offset : req->info.fragsize;
|
PAGE_SIZE - offset : req->info.fragsize;
|
||||||
#else
|
#else
|
||||||
/*
|
len = iovec->phys ? req->info.fragsize :
|
||||||
* This doesn't appear to work. Perhaps the card
|
((base_virt + base_pgsize - virt) >
|
||||||
* doesn't like it if the physical range in an SDMA
|
req->info.fragsize) ? req->info.fragsize :
|
||||||
* descriptor crosses page boundaries??
|
(base_virt + base_pgsize - virt);
|
||||||
*/
|
|
||||||
/*
|
|
||||||
len = virt + req->info.fragsize >
|
|
||||||
base_virt + base_pgsize ?
|
|
||||||
base_virt + base_pgsize - virt : req->info.fragsize;
|
|
||||||
*/
|
|
||||||
offset = offset_in_page(base + iovec->offset +
|
|
||||||
iov_offset);
|
|
||||||
len = offset + req->info.fragsize > PAGE_SIZE ?
|
|
||||||
PAGE_SIZE - offset : req->info.fragsize;
|
|
||||||
#endif
|
#endif
|
||||||
len = min((datalen - queued), len);
|
len = min((datalen - queued), len);
|
||||||
SDMA_DBG("%s: dl: %d, qd: %d, len: %d\n",
|
SDMA_DBG("%s: dl: %d, qd: %d, len: %d\n",
|
||||||
|
|||||||
Reference in New Issue
Block a user