net: move pskb_put() to core code
authorMathias Krause <mathias.krause@secunet.com>
Thu, 7 Nov 2013 13:18:24 +0000 (14:18 +0100)
committerDavid S. Miller <davem@davemloft.net>
Fri, 8 Nov 2013 00:28:58 +0000 (19:28 -0500)
This function has usage beside IPsec so move it to the core skbuff code.
While doing so, give it some documentation and change its return type to
'unsigned char *' to be in line with skb_put().

Signed-off-by: Mathias Krause <mathias.krause@secunet.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h
include/net/esp.h
net/core/skbuff.c
net/xfrm/xfrm_algo.c

index 2e153b69d3189b2772e70ee3de682f699d004c08..491dd6c2c6cc9ec2e413c0e87a858037739356bd 100644 (file)
@@ -1417,6 +1417,7 @@ static inline void skb_set_tail_pointer(struct sk_buff *skb, const int offset)
 /*
  *     Add data to an sk_buff
  */
+unsigned char *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len);
 unsigned char *skb_put(struct sk_buff *skb, unsigned int len);
 static inline unsigned char *__skb_put(struct sk_buff *skb, unsigned int len)
 {
index c92213c383129bae01070d2d3a10f5eca54dd757..a43be85aedc44594265695e98452ae491b852d83 100644 (file)
@@ -3,8 +3,6 @@
 
 #include <linux/skbuff.h>
 
-void *pskb_put(struct sk_buff *skb, struct sk_buff *tail, int len);
-
 struct ip_esp_hdr;
 
 static inline struct ip_esp_hdr *ip_esp_hdr(const struct sk_buff *skb)
index 3735fad5616ef23eaadb14e1d2104511cb6dea7a..2fbea08c4f505fce87253c765a57cc38f61a7a41 100644 (file)
@@ -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
index ab4ef72f0b1daefd4b46765d9009975cd9330676..debe733386f859b9456db893c78b8a44e9fce14c 100644 (file)
@@ -802,17 +802,4 @@ int xfrm_count_pfkey_enc_supported(void)
 }
 EXPORT_SYMBOL_GPL(xfrm_count_pfkey_enc_supported);
 
-#if defined(CONFIG_INET_ESP) || defined(CONFIG_INET_ESP_MODULE) || defined(CONFIG_INET6_ESP) || defined(CONFIG_INET6_ESP_MODULE)
-
-void *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);
-#endif
-
 MODULE_LICENSE("GPL");