|
@@ -1263,6 +1263,29 @@ free_skb:
|
|
|
}
|
|
|
EXPORT_SYMBOL(skb_pad);
|
|
|
|
|
|
+/**
|
|
|
+ * pskb_put - add data to the tail of a potentially fragmented buffer
|
|
|
+ * @skb: start of the buffer to use
|
|
|
+ * @tail: tail fragment of the buffer to use
|
|
|
+ * @len: amount of data to add
|
|
|
+ *
|
|
|
+ * This function extends the used data area of the potentially
|
|
|
+ * fragmented buffer. @tail must be the last fragment of @skb -- or
|
|
|
+ * @skb itself. If this would exceed the total buffer size the kernel
|
|
|
+ * will panic. A pointer to the first byte of the extra data is
|
|
|
+ * returned.
|
|
|
+ */
|
|
|
+
|
|
|
+unsigned char *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len)
|
|
|
+{
|
|
|
+ if (tail != skb) {
|
|
|
+ skb->data_len += len;
|
|
|
+ skb->len += len;
|
|
|
+ }
|
|
|
+ return skb_put(tail, len);
|
|
|
+}
|
|
|
+EXPORT_SYMBOL_GPL(pskb_put);
|
|
|
+
|
|
|
/**
|
|
|
* skb_put - add data to a buffer
|
|
|
* @skb: buffer to use
|