appletalk: Use frag list abstraction interfaces.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
		
							parent
							
								
									a5bd8a13e9
								
							
						
					
					
						commit
						c32ba3f9b8
					
				| @ -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,26 +978,22 @@ 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; | ||||
| 	skb_walk_frags(skb, frag_iter) { | ||||
| 		int end; | ||||
| 
 | ||||
| 		for (; list; list = list->next) { | ||||
| 			int end; | ||||
| 		WARN_ON(start > offset + len); | ||||
| 
 | ||||
| 			WARN_ON(start > offset + len); | ||||
| 
 | ||||
| 			end = start + list->len; | ||||
| 			if ((copy = end - offset) > 0) { | ||||
| 				if (copy > len) | ||||
| 					copy = len; | ||||
| 				sum = atalk_sum_skb(list, offset - start, | ||||
| 						    copy, sum); | ||||
| 				if ((len -= copy) == 0) | ||||
| 					return sum; | ||||
| 				offset += copy; | ||||
| 			} | ||||
| 			start = end; | ||||
| 		end = start + frag_iter->len; | ||||
| 		if ((copy = end - offset) > 0) { | ||||
| 			if (copy > len) | ||||
| 				copy = len; | ||||
| 			sum = atalk_sum_skb(frag_iter, offset - start, | ||||
| 					    copy, sum); | ||||
| 			if ((len -= copy) == 0) | ||||
| 				return sum; | ||||
| 			offset += copy; | ||||
| 		} | ||||
| 		start = end; | ||||
| 	} | ||||
| 
 | ||||
| 	BUG_ON(len > 0); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user