diff --git a/README b/README
index 2316fb99..01961249 100644
--- a/README
+++ b/README
@@ -8,7 +8,7 @@ down to older kernels. It currently backports the following subsystems:
   * WWAN
 
 This package provides the latest Linux kernel subsystem enhancements
-for kernels 4.1 and above.
+for kernels 4.2 and above.
 
 # Documentation
 
diff --git a/backport/backport-include/crypto/aead.h b/backport/backport-include/crypto/aead.h
deleted file mode 100644
index 26b13551..00000000
--- a/backport/backport-include/crypto/aead.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef __BACKPORT_CRYPTO_AEAD_H
-#define __BACKPORT_CRYPTO_AEAD_H
-#include_next <crypto/aead.h>
-#include <linux/version.h>
-
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define aead_request_set_ad LINUX_BACKPORT(aead_request_set_ad)
-static inline void aead_request_set_ad(struct aead_request *req,
-				       unsigned int assoclen)
-{
-	req->assoclen = assoclen;
-}
-
-#define crypto_aead_reqsize LINUX_BACKPORT(crypto_aead_reqsize)
-unsigned int crypto_aead_reqsize(struct crypto_aead *tfm);
-
-struct aead_request *crypto_backport_convert(struct aead_request *req);
-
-static inline int backport_crypto_aead_encrypt(struct aead_request *req)
-{
-	return crypto_aead_encrypt(crypto_backport_convert(req));
-}
-#define crypto_aead_encrypt LINUX_BACKPORT(crypto_aead_encrypt)
-
-static inline int backport_crypto_aead_decrypt(struct aead_request *req)
-{
-	return crypto_aead_decrypt(crypto_backport_convert(req));
-}
-#define crypto_aead_decrypt LINUX_BACKPORT(crypto_aead_decrypt)
-
-#endif /* LINUX_VERSION_IS_LESS(4,2,0) */
-
-#endif /* __BACKPORT_CRYPTO_AEAD_H */
diff --git a/backport/backport-include/linux/bcm47xx_nvram.h b/backport/backport-include/linux/bcm47xx_nvram.h
deleted file mode 100644
index d79f7c52..00000000
--- a/backport/backport-include/linux/bcm47xx_nvram.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef __BACKPORTS_BCM47XX_NVRAM_H
-#define __BACKPORTS_BCM47XX_NVRAM_H
-#include <linux/version.h>
-
-#include_next <linux/bcm47xx_nvram.h>
-
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define bcm47xx_nvram_get_contents LINUX_BACKPORT(bcm47xx_nvram_get_contents)
-static inline char *bcm47xx_nvram_get_contents(size_t *val_len)
-{
-	return NULL;
-}
-
-#define bcm47xx_nvram_release_contents LINUX_BACKPORT(bcm47xx_nvram_release_contents)
-static inline void bcm47xx_nvram_release_contents(char *nvram)
-{
-}
-#endif /* LINUX_VERSION_IS_GEQ(4,1,0) */
-
-#endif /* __BACKPORTS_BCM47XX_NVRAM_H */
diff --git a/backport/backport-include/linux/gfp.h b/backport/backport-include/linux/gfp.h
index d41d4277..bfc8cbca 100644
--- a/backport/backport-include/linux/gfp.h
+++ b/backport/backport-include/linux/gfp.h
@@ -10,7 +10,7 @@
 #define __GFP_KSWAPD_RECLAIM	((__force gfp_t)___GFP_KSWAPD_RECLAIM) /* kswapd can wake */
 #endif
 
-#if LINUX_VERSION_IS_LESS(4,10,0) && LINUX_VERSION_IS_GEQ(4,2,0)
+#if LINUX_VERSION_IS_LESS(4,10,0)
 #define page_frag_alloc LINUX_BACKPORT(page_frag_alloc)
 static inline void *page_frag_alloc(struct page_frag_cache *nc,
 				    unsigned int fragsz, gfp_t gfp_mask)
@@ -20,6 +20,6 @@ static inline void *page_frag_alloc(struct page_frag_cache *nc,
 
 #define __page_frag_cache_drain LINUX_BACKPORT(__page_frag_cache_drain)
 void __page_frag_cache_drain(struct page *page, unsigned int count);
-#endif /* < 4.10 && >= 4.2 */
+#endif /* < 4.10*/
 
 #endif /* __BACKPORT_LINUX_GFP_H */
diff --git a/backport/backport-include/linux/leds.h b/backport/backport-include/linux/leds.h
index afd6c550..dbafd413 100644
--- a/backport/backport-include/linux/leds.h
+++ b/backport/backport-include/linux/leds.h
@@ -3,18 +3,6 @@
 #include_next <linux/leds.h>
 #include <linux/version.h>
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-/*
- * There is no LINUX_BACKPORT() guard here because we want it to point to
- * the original function which is exported normally.
- */
-#ifdef CONFIG_LEDS_TRIGGERS
-extern void led_trigger_remove(struct led_classdev *led_cdev);
-#else
-static inline void led_trigger_remove(struct led_classdev *led_cdev) {}
-#endif
-#endif
-
 #if LINUX_VERSION_IS_LESS(4,5,0)
 #define led_set_brightness_sync LINUX_BACKPORT(led_set_brightness_sync)
 /**
diff --git a/backport/backport-include/linux/moduleparam.h b/backport/backport-include/linux/moduleparam.h
index 0c358609..c9306486 100644
--- a/backport/backport-include/linux/moduleparam.h
+++ b/backport/backport-include/linux/moduleparam.h
@@ -2,19 +2,6 @@
 #define __BACKPORT_LINUX_MODULEPARAM_H
 #include_next <linux/moduleparam.h>
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define kernel_param_lock LINUX_BACKPORT(kernel_param_lock)
-static inline void kernel_param_lock(struct module *mod)
-{
-	__kernel_param_lock();
-}
-#define kernel_param_unlock LINUX_BACKPORT(kernel_param_unlock)
-static inline void kernel_param_unlock(struct module *mod)
-{
-	__kernel_param_unlock();
-}
-#endif
-
 #ifndef module_param_hw_array
 #define module_param_hw_array(name, type, hwtype, nump, perm) \
 	module_param_array(name, type, nump, perm)
diff --git a/backport/backport-include/linux/net.h b/backport/backport-include/linux/net.h
index 3107a938..04953286 100644
--- a/backport/backport-include/linux/net.h
+++ b/backport/backport-include/linux/net.h
@@ -4,11 +4,6 @@
 #include <linux/static_key.h>
 
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define sock_create_kern(net, family, type, proto, res) \
-	__sock_create(net, family, type, proto, res, 1)
-#endif
-
 #ifndef SOCKWQ_ASYNC_NOSPACE
 #define SOCKWQ_ASYNC_NOSPACE   SOCK_ASYNC_NOSPACE
 #endif
diff --git a/backport/backport-include/linux/netdevice.h b/backport/backport-include/linux/netdevice.h
index b653e0e9..a271c37a 100644
--- a/backport/backport-include/linux/netdevice.h
+++ b/backport/backport-include/linux/netdevice.h
@@ -5,16 +5,6 @@
 #include <backport/magic.h>
 
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#undef u64_stats_init
-static inline void u64_stats_init(struct u64_stats_sync *syncp)
-{
-#if BITS_PER_LONG == 32 && defined(CONFIG_SMP)
-	seqcount_init(&syncp->seq);
-#endif
-}
-#endif /* LINUX_VERSION_IS_LESS(4,2,0) */
-
 #if LINUX_VERSION_IS_LESS(4,10,0)
 static inline bool backport_napi_complete_done(struct napi_struct *n, int work_done)
 {
diff --git a/backport/backport-include/linux/skbuff.h b/backport/backport-include/linux/skbuff.h
index c039e810..6b02c857 100644
--- a/backport/backport-include/linux/skbuff.h
+++ b/backport/backport-include/linux/skbuff.h
@@ -4,27 +4,6 @@
 #include <linux/version.h>
 
 
-
-#if LINUX_VERSION_IS_LESS(4,2,0)
-static inline void skb_free_frag(void *data)
-{
-	put_page(virt_to_head_page(data));
-}
-
-#include <net/flow_keys.h>
-#include <linux/jhash.h>
-
-static inline u32 skb_get_hash_perturb(struct sk_buff *skb, u32 key)
-{
-	struct flow_keys keys;
-
-	skb_flow_dissect(skb, &keys);
-	return jhash_3words((__force u32)keys.dst,
-			    (__force u32)keys.src ^ keys.ip_proto,
-			    (__force u32)keys.ports, key);
-}
-#endif /* LINUX_VERSION_IS_LESS(4,2,0) */
-
 #if LINUX_VERSION_IS_LESS(4,13,0)
 static inline void *backport_skb_put(struct sk_buff *skb, unsigned int len)
 {
diff --git a/backport/backport-include/linux/string.h b/backport/backport-include/linux/string.h
index f8efd9ed..9a6b420e 100644
--- a/backport/backport-include/linux/string.h
+++ b/backport/backport-include/linux/string.h
@@ -12,10 +12,6 @@ extern void *memdup_user_nul(const void __user *, size_t);
 ssize_t strscpy(char *dest, const char *src, size_t count);
 #endif
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-char *strreplace(char *s, char old, char new);
-#endif
-
 #if LINUX_VERSION_IS_LESS(4,6,0)
 int match_string(const char * const *array, size_t n, const char *string);
 #endif /* LINUX_VERSION_IS_LESS(4,5,0) */
diff --git a/backport/backport-include/net/addrconf.h b/backport/backport-include/net/addrconf.h
index daf79a4b..abc15d76 100644
--- a/backport/backport-include/net/addrconf.h
+++ b/backport/backport-include/net/addrconf.h
@@ -5,14 +5,7 @@
 
 #include <linux/version.h>
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-static inline int ipv6_mc_check_mld(struct sk_buff *skb)
-{
-	WARN_ON(1);
-
-	return -1;
-}
-#elif LINUX_VERSION_IS_LESS(5,1,0)
+#if LINUX_VERSION_IS_LESS(5,1,0)
 static inline int backport_ipv6_mc_check_mld(struct sk_buff *skb)
 {
 	return ipv6_mc_check_mld(skb, NULL);
diff --git a/backport/backport-include/net/genetlink.h b/backport/backport-include/net/genetlink.h
index 75f1eced..3b75b47d 100644
--- a/backport/backport-include/net/genetlink.h
+++ b/backport/backport-include/net/genetlink.h
@@ -92,8 +92,7 @@ struct backport_genl_ops {
 	int		       (*doit)(struct sk_buff *skb,
 				       struct genl_info *info);
 #if LINUX_VERSION_IS_GEQ(4,5,0) || \
-    LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0) || \
-    LINUX_VERSION_IN_RANGE(4,1,48, 4,2,0)
+    LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0)
 	int		       (*start)(struct netlink_callback *cb);
 #endif
 	int		       (*dumpit)(struct sk_buff *skb,
@@ -113,8 +112,7 @@ __real_backport_genl_register_family(struct genl_family *family)
 		     offsetof(struct backport_genl_ops, f))
 	OPS_VALIDATE(doit);
 #if LINUX_VERSION_IS_GEQ(4,5,0) || \
-    LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0) || \
-    LINUX_VERSION_IN_RANGE(4,1,48, 4,2,0)
+    LINUX_VERSION_IN_RANGE(4,4,104, 4,5,0)
 	OPS_VALIDATE(start);
 #endif
 	OPS_VALIDATE(dumpit);
diff --git a/backport/backport-include/net/ip6_fib.h b/backport/backport-include/net/ip6_fib.h
deleted file mode 100644
index 2f21163d..00000000
--- a/backport/backport-include/net/ip6_fib.h
+++ /dev/null
@@ -1,26 +0,0 @@
-#ifndef __BACKPORT_NET_IP6_ROUTE_H
-#define __BACKPORT_NET_IP6_ROUTE_H
-#include_next <net/ip6_fib.h>
-#include <net/ip6_route.h>
-#include <linux/route.h>
-#include <linux/version.h>
-
-/*
- * This function is avaliable with one argument since kernel 3.10, but the
- * secound one was added in 4.2.
- */
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define rt6_nexthop LINUX_BACKPORT(rt6_nexthop)
-static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt,
-					   struct in6_addr *daddr)
-{
-	if (rt->rt6i_flags & RTF_GATEWAY)
-		return &rt->rt6i_gateway;
-	else if (rt->rt6i_flags & RTF_CACHE)
-		return &rt->rt6i_dst.addr;
-	else
-		return daddr;
-}
-#endif /* LINUX_VERSION_IS_LESS(4,2,0) */
-
-#endif /* __BACKPORT_NET_IP6_ROUTE_H */
diff --git a/backport/backport-include/net/iw_handler.h b/backport/backport-include/net/iw_handler.h
index e0076d2c..7deca730 100644
--- a/backport/backport-include/net/iw_handler.h
+++ b/backport/backport-include/net/iw_handler.h
@@ -4,9 +4,7 @@
 
 
 /* this was added in v3.2.79, v3.18.30, v4.1.21, v4.4.6 and 4.5 */
-#if !(LINUX_VERSION_IS_GEQ(4,4,6) || \
-      (LINUX_VERSION_IS_GEQ(4,1,21) && \
-       LINUX_VERSION_IS_LESS(4,2,0)))
+#if !LINUX_VERSION_IS_GEQ(4,4,6)
 #define wireless_nlevent_flush LINUX_BACKPORT(wireless_nlevent_flush)
 static inline void wireless_nlevent_flush(void) {}
 #endif
diff --git a/backport/backport-include/net/sock.h b/backport/backport-include/net/sock.h
index 10c978fb..d99ef794 100644
--- a/backport/backport-include/net/sock.h
+++ b/backport/backport-include/net/sock.h
@@ -4,10 +4,6 @@
 #include <linux/version.h>
 
 
-#if LINUX_VERSION_IS_LESS(4,2,0)
-#define sk_alloc(net, family, priority, prot, kern) sk_alloc(net, family, priority, prot)
-#endif
-
 #if LINUX_VERSION_IS_LESS(4,5,0)
 #define sk_set_bit LINUX_BACKPORT(sk_set_bit)
 static inline void sk_set_bit(int nr, struct sock *sk)
diff --git a/backport/compat/Makefile b/backport/compat/Makefile
index bc0d080d..45edb8da 100644
--- a/backport/compat/Makefile
+++ b/backport/compat/Makefile
@@ -7,7 +7,6 @@ endif
 compat-y += main.o
 
 # Kernel backport compatibility code
-compat-$(CPTCFG_KERNEL_4_2) += backport-4.2.o
 compat-$(CPTCFG_KERNEL_4_3) += backport-4.3.o
 compat-$(CPTCFG_KERNEL_4_4) += backport-4.4.o
 compat-$(CPTCFG_KERNEL_4_5) += backport-4.5.o
diff --git a/backport/compat/backport-4.10.c b/backport/compat/backport-4.10.c
index a35c699e..d1d69115 100644
--- a/backport/compat/backport-4.10.c
+++ b/backport/compat/backport-4.10.c
@@ -255,7 +255,6 @@ int mii_ethtool_get_link_ksettings(struct mii_if_info *mii,
 EXPORT_SYMBOL(mii_ethtool_get_link_ksettings);
 #endif /* LINUX_VERSION_IS_GEQ(4,6,0) */
 
-#if LINUX_VERSION_IS_GEQ(4,2,0)
 void __page_frag_cache_drain(struct page *page, unsigned int count)
 {
 	VM_BUG_ON_PAGE(page_ref_count(page) == 0, page);
@@ -273,4 +272,3 @@ void __page_frag_cache_drain(struct page *page, unsigned int count)
 	}
 }
 EXPORT_SYMBOL_GPL(__page_frag_cache_drain);
-#endif
diff --git a/backport/compat/backport-4.2.c b/backport/compat/backport-4.2.c
deleted file mode 100644
index b275d349..00000000
--- a/backport/compat/backport-4.2.c
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (c) 2015  Hauke Mehrtens <hauke@hauke-m.de>
- *
- * Backport functionality introduced in Linux 4.2.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#include <crypto/scatterwalk.h>
-#include <crypto/aead.h>
-
-static struct scatterlist *scatterwalk_ffwd(struct scatterlist dst[2],
-					    struct scatterlist *src,
-					    unsigned int len)
-{
-	for (;;) {
-		if (!len)
-			return src;
-
-		if (src->length > len)
-			break;
-
-		len -= src->length;
-		src = sg_next(src);
-	}
-
-	sg_init_table(dst, 2);
-	sg_set_page(dst, sg_page(src), src->length - len, src->offset + len);
-	scatterwalk_crypto_chain(dst, sg_next(src), 0, 2);
-
-	return dst;
-}
-
-struct aead_old_request {
-	struct scatterlist srcbuf[2];
-	struct scatterlist dstbuf[2];
-	struct aead_request subreq;
-};
-
-unsigned int crypto_aead_reqsize(struct crypto_aead *tfm)
-{
-	return crypto_aead_crt(tfm)->reqsize + sizeof(struct aead_old_request);
-}
-EXPORT_SYMBOL_GPL(crypto_aead_reqsize);
-
-struct aead_request *crypto_backport_convert(struct aead_request *req)
-{
-	struct aead_old_request *nreq = aead_request_ctx(req);
-	struct crypto_aead *aead = crypto_aead_reqtfm(req);
-	struct scatterlist *src, *dst;
-
-	src = scatterwalk_ffwd(nreq->srcbuf, req->src, req->assoclen);
-	dst = req->src == req->dst ?
-	      src : scatterwalk_ffwd(nreq->dstbuf, req->dst, req->assoclen);
-
-	aead_request_set_tfm(&nreq->subreq, aead);
-	aead_request_set_callback(&nreq->subreq, aead_request_flags(req),
-				  req->base.complete, req->base.data);
-	aead_request_set_crypt(&nreq->subreq, src, dst, req->cryptlen,
-			       req->iv);
-	aead_request_set_assoc(&nreq->subreq, req->src, req->assoclen);
-
-	return &nreq->subreq;
-}
-EXPORT_SYMBOL_GPL(crypto_backport_convert);
-
-char *strreplace(char *s, char old, char new)
-{
-	for (; *s; ++s)
-		if (*s == old)
-			*s = new;
-	return s;
-}
-EXPORT_SYMBOL_GPL(strreplace);
diff --git a/dependencies b/dependencies
index 20c9666f..fed4a3b8 100644
--- a/dependencies
+++ b/dependencies
@@ -3,11 +3,6 @@
 
 WL1251_SDIO kconfig: CONFIG_WILINK_PLATFORM_DATA
 
-# This needs linux/pm_wakeirq.h
-WLCORE 4.2
-WL12XX 4.2
-WL18XX 4.2
-
 # hostapd uses proc_create_single_data()
 HOSTAP 4.18
 ATMEL 4.18
@@ -29,19 +24,6 @@ USB_NET_RNDIS_WLAN 4.6
 # For Coexsitence the BT driver has to export rsi_bt_ops
 RSI_COEX 4.17
 
-# depends on devm_led_classdev_register() and struct page_frag_cache
-# (can't use MT76_CORE for this as it's selected)
-MT76x0U 4.2
-MT76x0E 4.2
-MT76x2E 4.2
-MT76x2U 4.2
-MT7603E 4.2
-MT7615E 4.2
-MT7663U 4.2
-MT7663S 4.2
-MT7915E 4.2
-MT7622_WMAC 4.2
-
 # depends on crypto_sync_skcipher()
 AIRO 4.20
 AIRO_CS 4.20
