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

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

xfrm: Use frag list abstraction interfaces.

parent 1b003be3
Loading
Loading
Loading
Loading
+19 −22
Original line number Diff line number Diff line
@@ -696,8 +696,9 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc,
{
	int start = skb_headlen(skb);
	int i, copy = start - offset;
	int err;
	struct sk_buff *frag_iter;
	struct scatterlist sg;
	int err;

	/* Checksum header. */
	if (copy > 0) {
@@ -742,19 +743,16 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc,
		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;
				err = skb_icv_walk(list, desc, offset-start,
			err = skb_icv_walk(frag_iter, desc, offset-start,
					   copy, icv_update);
			if (unlikely(err))
				return err;
@@ -764,7 +762,6 @@ int skb_icv_walk(const struct sk_buff *skb, struct hash_desc *desc,
		}
		start = end;
	}
	}
	BUG_ON(len);
	return 0;
}