--- /dev/null
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Thu, 28 Jan 2016 15:16:35 +0100
+Subject: [PATCH] backports: add skb_free_frag()
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+---
+
+--- a/backport-include/linux/skbuff.h
++++ b/backport-include/linux/skbuff.h
+@@ -300,4 +300,11 @@ int skb_ensure_writable(struct sk_buff *
+
+ #endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0) */
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4,2,0)
++static inline void skb_free_frag(void *data)
++{
++ put_page(virt_to_head_page(data));
++}
++#endif
++
+ #endif /* __BACKPORT_SKBUFF_H */
--- /dev/null
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Thu, 28 Jan 2016 15:19:22 +0100
+Subject: [PATCH] backports: add napi_alloc_frag
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+---
+
+--- a/backport-include/linux/netdevice.h
++++ b/backport-include/linux/netdevice.h
+@@ -232,6 +232,10 @@ static inline void backport_unregister_n
+ #define unregister_netdevice_many LINUX_BACKPORT(unregister_netdevice_many)
+ #endif
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)
++#define napi_alloc_frag netdev_alloc_frag
++#endif
++
+ /*
+ * Complicated way of saying: We only backport netdev_rss_key stuff on kernels
+ * that either already have net_get_random_once() (>= 3.13) or where we've been