From 1f991bb365b1ee66846e0785dc36dd5914f83398 Mon Sep 17 00:00:00 2001 From: Hauke Mehrtens Date: Sun, 2 Jul 2017 14:12:45 +0200 Subject: brcm47xx: Add support for kernel 4.9 I tested this on a WRT54GS and a WRT610N V1. The WRT610N does not boot when the kernel is too big, so I deactivated KALLSYMS Signed-off-by: Hauke Mehrtens --- .../brcm47xx/patches-4.9/300-fork_cacheflush.patch | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 target/linux/brcm47xx/patches-4.9/300-fork_cacheflush.patch (limited to 'target/linux/brcm47xx/patches-4.9/300-fork_cacheflush.patch') diff --git a/target/linux/brcm47xx/patches-4.9/300-fork_cacheflush.patch b/target/linux/brcm47xx/patches-4.9/300-fork_cacheflush.patch new file mode 100644 index 0000000..b5efaaf --- /dev/null +++ b/target/linux/brcm47xx/patches-4.9/300-fork_cacheflush.patch @@ -0,0 +1,21 @@ +From: Wolfram Joost +Subject: [PATCH] fork_cacheflush + +On ASUS WL-500gP there are many unexpected "Segmentation fault"s that +seem to be caused by a kernel. They can be avoided by: +1) Disabling highpage +2) Using flush_cache_mm in flush_cache_dup_mm + +For details see OpenWrt ticket #2035 https://dev.openwrt.org/ticket/2035 +--- +--- a/arch/mips/include/asm/cacheflush.h ++++ b/arch/mips/include/asm/cacheflush.h +@@ -47,7 +47,7 @@ + extern void (*flush_cache_all)(void); + extern void (*__flush_cache_all)(void); + extern void (*flush_cache_mm)(struct mm_struct *mm); +-#define flush_cache_dup_mm(mm) do { (void) (mm); } while (0) ++#define flush_cache_dup_mm(mm) flush_cache_mm(mm) + extern void (*flush_cache_range)(struct vm_area_struct *vma, + unsigned long start, unsigned long end); + extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn); -- cgit v1.1