diff --git a/include/kernel-version.mk b/include/kernel-version.mk
index 97dc5921b7cf8234067ff1172b648dcadb48942c..26b964385b2b7848e6ae7fe3f7471e26e355d6ae 100644
--- a/include/kernel-version.mk
+++ b/include/kernel-version.mk
@@ -5,12 +5,12 @@ LINUX_RELEASE?=1
 LINUX_VERSION-3.18 = .23
 LINUX_VERSION-4.1 = .13
 LINUX_VERSION-4.3 =
-LINUX_VERSION-4.4 = -rc7
+LINUX_VERSION-4.4 =
 
 LINUX_KERNEL_MD5SUM-3.18.23 = dc6d265ab38716be3676ac294b481ad8
 LINUX_KERNEL_MD5SUM-4.1.13 = af9dd5d8f71185a64a8eccface15fc00
 LINUX_KERNEL_MD5SUM-4.3 = 58b35794eee3b6d52ce7be39357801e7
-LINUX_KERNEL_MD5SUM-4.4-rc7 = 7f4b1d85736a180df73af45adde8937b
+LINUX_KERNEL_MD5SUM-4.4 = 9a78fa2eb6c68ca5a40ed5af08142599
 
 ifdef KERNEL_PATCHVER
   LINUX_VERSION:=$(KERNEL_PATCHVER)$(strip $(LINUX_VERSION-$(KERNEL_PATCHVER)))
diff --git a/target/linux/generic/patches-4.4/141-Revert-mtd-spi-nor-disable-protection-for-Winbond-fl.patch b/target/linux/generic/patches-4.4/141-Revert-mtd-spi-nor-disable-protection-for-Winbond-fl.patch
deleted file mode 100644
index 10b43d51bc187b158c474c5c5706506f4427c455..0000000000000000000000000000000000000000
--- a/target/linux/generic/patches-4.4/141-Revert-mtd-spi-nor-disable-protection-for-Winbond-fl.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Felix Fietkau <nbd@openwrt.org>
-Date: Thu, 26 Nov 2015 17:03:46 +0100
-Subject: [PATCH] Revert "mtd: spi-nor: disable protection for Winbond flash at
- startup"
-
-This reverts commit c6fc2171b249e73745c497b578b417a2946f1b2f.
-
-This commit is breaking read access on at least s25fl064k, but also
-possibly other Spansion flash chips.
-
-Any mtd read seems to succeed, but simply returns a zero-filled buffer.
-
-Signed-off-by: Felix Fietkau <nbd@openwrt.org>
----
-
---- a/drivers/mtd/spi-nor/spi-nor.c
-+++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1194,14 +1194,13 @@ int spi_nor_scan(struct spi_nor *nor, co
- 	mutex_init(&nor->lock);
- 
- 	/*
--	 * Atmel, SST, Intel/Numonyx, and others serial NOR tend to power up
--	 * with the software protection bits set
-+	 * Atmel, SST and Intel/Numonyx serial nor tend to power
-+	 * up with the software protection bits set
- 	 */
- 
- 	if (JEDEC_MFR(info) == SNOR_MFR_ATMEL ||
- 	    JEDEC_MFR(info) == SNOR_MFR_INTEL ||
--	    JEDEC_MFR(info) == SNOR_MFR_SST ||
--	    JEDEC_MFR(info) == SNOR_MFR_WINBOND) {
-+	    JEDEC_MFR(info) == SNOR_MFR_SST) {
- 		write_enable(nor);
- 		write_sr(nor, 0);
- 	}
diff --git a/target/linux/generic/patches-4.4/480-mtd-set-rootfs-to-be-root-dev.patch b/target/linux/generic/patches-4.4/480-mtd-set-rootfs-to-be-root-dev.patch
index b565b520451958b7bba6004d82cadb2e0aeba71d..d20bd8d4eca95c4b0d3b11fce6a70423adc74e70 100644
--- a/target/linux/generic/patches-4.4/480-mtd-set-rootfs-to-be-root-dev.patch
+++ b/target/linux/generic/patches-4.4/480-mtd-set-rootfs-to-be-root-dev.patch
@@ -8,7 +8,7 @@
  
  #include <linux/mtd/mtd.h>
  #include <linux/mtd/partitions.h>
-@@ -473,6 +474,15 @@ int add_mtd_device(struct mtd_info *mtd)
+@@ -464,6 +465,15 @@ int add_mtd_device(struct mtd_info *mtd)
  	   of this try_ nonsense, and no bitching about it
  	   either. :) */
  	__module_get(THIS_MODULE);
diff --git a/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch b/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
index 4ba20be3537031b0f99ab5ae4867bef60a017f1b..d3aeb9256fcbe343a58e6f4d556a40581b991b5e 100644
--- a/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
+++ b/target/linux/generic/patches-4.4/662-use_fq_codel_by_default.patch
@@ -42,7 +42,7 @@
  struct Qdisc_class_common {
 --- a/net/sched/sch_generic.c
 +++ b/net/sched/sch_generic.c
-@@ -726,7 +726,7 @@ static void attach_one_default_qdisc(str
+@@ -728,7 +728,7 @@ static void attach_one_default_qdisc(str
  				     void *_unused)
  {
  	struct Qdisc *qdisc;
diff --git a/target/linux/generic/patches-4.4/902-debloat_proc.patch b/target/linux/generic/patches-4.4/902-debloat_proc.patch
index 9f77858c5506c3bc2b3982e30facbf5e0c63787d..6568836b2c4376759acca7d0821309eb5246bebe 100644
--- a/target/linux/generic/patches-4.4/902-debloat_proc.patch
+++ b/target/linux/generic/patches-4.4/902-debloat_proc.patch
@@ -134,7 +134,7 @@
 --- a/mm/vmstat.c
 +++ b/mm/vmstat.c
 @@ -1553,10 +1553,12 @@ static int __init setup_vmstat(void)
- 	vmstat_wq = alloc_workqueue("vmstat", WQ_FREEZABLE|WQ_MEM_RECLAIM, 0);
+ 	cpu_notifier_register_done();
  #endif
  #ifdef CONFIG_PROC_FS
 -	proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);