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

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

appletalk: Use frag list abstraction interfaces.

parent a5bd8a13
Loading
Loading
Loading
Loading
+14 −17
Original line number Diff line number Diff line
@@ -939,6 +939,7 @@ static unsigned long atalk_sum_skb(const struct sk_buff *skb, int offset,
				   int len, unsigned long sum)
{
	int start = skb_headlen(skb);
	struct sk_buff *frag_iter;
	int i, copy;

	/* checksum stuff in header space */
@@ -977,19 +978,16 @@ static unsigned long atalk_sum_skb(const struct sk_buff *skb, int offset,
		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;
		if ((copy = end - offset) > 0) {
			if (copy > len)
				copy = len;
				sum = atalk_sum_skb(list, offset - start,
			sum = atalk_sum_skb(frag_iter, offset - start,
					    copy, sum);
			if ((len -= copy) == 0)
				return sum;
@@ -997,7 +995,6 @@ static unsigned long atalk_sum_skb(const struct sk_buff *skb, int offset,
		}
		start = end;
	}
	}

	BUG_ON(len > 0);