diff --git a/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch b/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch
new file mode 100644
index 0000000000000000000000000000000000000000..20c9943231d01138bbc271196576346c4de5abcc
--- /dev/null
+++ b/patches/openwrt/0010-ar71xx-add-flush-reset-register-writes-should-fix-restart-issues-17839.patch
@@ -0,0 +1,24 @@
+From: Matthias Schiffer <mschiffer@universe-factory.net>
+Date: Fri, 9 Jan 2015 09:27:39 +0100
+Subject: ar71xx: add flush reset register writes, should fix restart issues (#17839)
+
+Backport of r43777
+
+diff --git a/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch
+index 0027c59..612078c 100644
+--- a/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch
++++ b/target/linux/ar71xx/patches-3.10/728-MIPS-ath79-fix-restart.patch
+@@ -8,3 +8,13 @@
+  	ath79_device_reset_set(AR71XX_RESET_FULL_CHIP);
+  	for (;;)
+  		if (cpu_wait)
++--- a/arch/mips/include/asm/mach-ath79/ath79.h
+++++ b/arch/mips/include/asm/mach-ath79/ath79.h
++@@ -144,6 +144,7 @@ static inline u32 ath79_pll_rr(unsigned
++ static inline void ath79_reset_wr(unsigned reg, u32 val)
++ {
++ 	__raw_writel(val, ath79_reset_base + reg);
+++	(void) __raw_readl(ath79_reset_base + reg); /* flush */
++ }
++ 
++ static inline u32 ath79_reset_rr(unsigned reg)
diff --git a/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch b/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch
deleted file mode 100644
index a0589145496652260b362cec7c0a8be3428a062e..0000000000000000000000000000000000000000
--- a/patches/openwrt/0010-ar71xx-add-workaround-patch-for-WDR3600-4300-reboot.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From: Matthias Schiffer <mschiffer@universe-factory.net>
-Date: Mon, 15 Dec 2014 00:17:38 +0100
-Subject: ar71xx: add workaround patch for WDR3600/4300 reboot
-
-While it isn't clear why this patch helps, it doesn't seem to have any negative
-effects, so let's include it for now...
-
-diff --git a/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch b/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch
-new file mode 100644
-index 0000000..86f33f3
---- /dev/null
-+++ b/target/linux/ar71xx/patches-3.10/903-MIPS-ath79-fix-restart.patch
-@@ -0,0 +1,11 @@
-+--- a/arch/mips/ath79/common.c
-++++ b/arch/mips/ath79/common.c
-+@@ -83,6 +83,8 @@ void ath79_device_reset_set(u32 mask)
-+ 	spin_lock_irqsave(&ath79_device_reset_lock, flags);
-+ 	t = ath79_reset_rr(reg);
-+ 	ath79_reset_wr(reg, t | mask);
-++	if (mask == AR71XX_RESET_FULL_CHIP)
-++		for(;;);
-+ 	spin_unlock_irqrestore(&ath79_device_reset_lock, flags);
-+ }
-+ EXPORT_SYMBOL_GPL(ath79_device_reset_set);