|
@@ -1839,6 +1839,20 @@ done:
|
|
|
}
|
|
|
EXPORT_SYMBOL(___pskb_trim);
|
|
|
|
|
|
+/* Note : use pskb_trim_rcsum() instead of calling this directly
|
|
|
+ */
|
|
|
+int pskb_trim_rcsum_slow(struct sk_buff *skb, unsigned int len)
|
|
|
+{
|
|
|
+ if (skb->ip_summed == CHECKSUM_COMPLETE) {
|
|
|
+ int delta = skb->len - len;
|
|
|
+
|
|
|
+ skb->csum = csum_sub(skb->csum,
|
|
|
+ skb_checksum(skb, len, delta, 0));
|
|
|
+ }
|
|
|
+ return __pskb_trim(skb, len);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL(pskb_trim_rcsum_slow);
|
|
|
+
|
|
|
/**
|
|
|
* __pskb_pull_tail - advance tail of skb header
|
|
|
* @skb: buffer to reallocate
|