.get = sock_pipe_buf_get,
 };
 
-/*
- *     Keep out-of-line to prevent kernel bloat.
- *     __builtin_return_address is not used because it is not always
- *     reliable.
- */
-
 /**
- *     skb_over_panic  -       private function
- *     @skb: buffer
- *     @sz: size
- *     @here: address
- *
- *     Out of line support code for skb_put(). Not user callable.
+ *     skb_panic - private function for out-of-line support
+ *     @skb:   buffer
+ *     @sz:    size
+ *     @addr:  address
+ *     @panic: skb_over_panic or skb_under_panic
+ *
+ *     Out-of-line support for skb_put() and skb_push().
+ *     Called via the wrapper skb_over_panic() or skb_under_panic().
+ *     Keep out of line to prevent kernel bloat.
+ *     __builtin_return_address is not used because it is not always reliable.
  */
-static void skb_over_panic(struct sk_buff *skb, int sz, void *here)
+static void skb_panic(struct sk_buff *skb, unsigned int sz, void *addr,
+                     const char panic[])
 {
        pr_emerg("%s: text:%p len:%d put:%d head:%p data:%p tail:%#lx end:%#lx dev:%s\n",
-                __func__, here, skb->len, sz, skb->head, skb->data,
+                panic, addr, skb->len, sz, skb->head, skb->data,
                 (unsigned long)skb->tail, (unsigned long)skb->end,
                 skb->dev ? skb->dev->name : "<NULL>");
        BUG();
 }
 
-/**
- *     skb_under_panic -       private function
- *     @skb: buffer
- *     @sz: size
- *     @here: address
- *
- *     Out of line support code for skb_push(). Not user callable.
- */
-
-static void skb_under_panic(struct sk_buff *skb, int sz, void *here)
+static void skb_over_panic(struct sk_buff *skb, unsigned int sz, void *addr)
 {
-       pr_emerg("%s: text:%p len:%d put:%d head:%p data:%p tail:%#lx end:%#lx dev:%s\n",
-                __func__, here, skb->len, sz, skb->head, skb->data,
-                (unsigned long)skb->tail, (unsigned long)skb->end,
-                skb->dev ? skb->dev->name : "<NULL>");
-       BUG();
+       skb_panic(skb, sz, addr, __func__);
 }
 
+static void skb_under_panic(struct sk_buff *skb, unsigned int sz, void *addr)
+{
+       skb_panic(skb, sz, addr, __func__);
+}
 
 /*
  * kmalloc_reserve is a wrapper around kmalloc_node_track_caller that tells