+diff --git a/net/batman-adv/hard-interface.c b/net/batman-adv/hard-interface.c
+index 730cfa8..39e5694 100644
+--- a/net/batman-adv/hard-interface.c
++++ b/net/batman-adv/hard-interface.c
+@@ -47,6 +47,24 @@
+ #include "sysfs.h"
+ #include "translation-table.h"
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 1, 0)
++
++#define dev_get_iflink(_net_dev) ((_net_dev)->iflink)
++
++#endif /* < KERNEL_VERSION(4, 1, 0) */
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 9, 0)
++
++#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info) \
++ netdev_set_master(dev, upper_dev)
++
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0)
++
++#define netdev_master_upper_dev_link(dev, upper_dev, upper_priv, upper_info) \
++ netdev_master_upper_dev_link(dev, upper_dev)
++
++#endif /* < KERNEL_VERSION(4, 5, 0) */
++
+ /**
+ * batadv_hardif_release - release hard interface from lists and queue for
+ * free after rcu grace period
+diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
+index 6c65de9..06d0330 100644
+--- a/net/batman-adv/soft-interface.c
++++ b/net/batman-adv/soft-interface.c
+@@ -60,6 +60,12 @@
+ #include "sysfs.h"
+ #include "translation-table.h"
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
++
++#define IFF_NO_QUEUE 0; dev->tx_queue_len = 0
++
++#endif /* < KERNEL_VERSION(4, 3, 0) */
++
+ static int batadv_get_settings(struct net_device *dev, struct ethtool_cmd *cmd);
+ static void batadv_get_drvinfo(struct net_device *dev,
+ struct ethtool_drvinfo *info);