diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 5ba1c72f..f4239459 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -69,6 +69,7 @@
 #include <net/ip6_checksum.h>
 #include <net/xfrm.h>
 #include <net/mpls.h>
+#include <net/ra_nat.h>
 
 #include <linux/uaccess.h>
 #include <trace/events/skb.h>
@@ -1666,6 +1667,9 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
 	       skb_shinfo(skb),
 	       offsetof(struct skb_shared_info, frags[skb_shinfo(skb)->nr_frags]));
 
+	/*headroom copy*/
+	memcpy(data, skb->head, FOE_INFO_LEN);
+
 	/*
 	 * if shinfo is shared we must drop the old head gracefully, but if it
 	 * is not we can just drop the old head and let the existing refcount
