mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
SG: Change sg_set_page() to take length and offset argument
Most drivers need to set length and offset as well, so may as well fold those three lines into one. Add sg_assign_page() for those two locations that only needed to set the page, where the offset/length is set outside of the function context. Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
parent
bd6dee6f30
commit
642f149031
31 changed files with 99 additions and 162 deletions
|
@ -2045,9 +2045,7 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len)
|
|||
if (copy > 0) {
|
||||
if (copy > len)
|
||||
copy = len;
|
||||
sg_set_page(&sg[elt], virt_to_page(skb->data + offset));
|
||||
sg[elt].offset = (unsigned long)(skb->data + offset) % PAGE_SIZE;
|
||||
sg[elt].length = copy;
|
||||
sg_set_buf(sg, skb->data + offset, copy);
|
||||
elt++;
|
||||
if ((len -= copy) == 0)
|
||||
return elt;
|
||||
|
@ -2065,9 +2063,8 @@ skb_to_sgvec(struct sk_buff *skb, struct scatterlist *sg, int offset, int len)
|
|||
|
||||
if (copy > len)
|
||||
copy = len;
|
||||
sg_set_page(&sg[elt], frag->page);
|
||||
sg[elt].offset = frag->page_offset+offset-start;
|
||||
sg[elt].length = copy;
|
||||
sg_set_page(&sg[elt], frag->page, copy,
|
||||
frag->page_offset+offset-start);
|
||||
elt++;
|
||||
if (!(len -= copy))
|
||||
return elt;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue