Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 285e4280 authored by David S. Miller's avatar David S. Miller
Browse files

net/core/user_dma.c: Use frag list abstraction interfaces.

parent fbb398a8
Loading
Loading
Loading
Loading
+22 −24
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ int dma_skb_copy_datagram_iovec(struct dma_chan *chan,
{
	int start = skb_headlen(skb);
	int i, copy = start - offset;
	struct sk_buff *frag_iter;
	dma_cookie_t cookie = 0;

	/* Copy header. */
@@ -94,21 +95,19 @@ int dma_skb_copy_datagram_iovec(struct dma_chan *chan,
		start = end;
	}

	if (skb_shinfo(skb)->frag_list) {
		struct sk_buff *list = skb_shinfo(skb)->frag_list;

		for (; list; list = list->next) {
	skb_walk_frags(skb, frag_iter) {
		int end;

		WARN_ON(start > offset + len);

			end = start + list->len;
		end = start + frag_iter->len;
		copy = end - offset;
		if (copy > 0) {
			if (copy > len)
				copy = len;
				cookie = dma_skb_copy_datagram_iovec(chan, list,
						offset - start, to, copy,
			cookie = dma_skb_copy_datagram_iovec(chan, frag_iter,
							     offset - start,
							     to, copy,
							     pinned_list);
			if (cookie < 0)
				goto fault;
@@ -119,7 +118,6 @@ int dma_skb_copy_datagram_iovec(struct dma_chan *chan,
		}
		start = end;
	}
	}

end:
	if (!len) {