On Tue, Dec 18, 2018 at 2:35 AM Kevin 'ldir' Darbyshire-Bryant <[email protected]> wrote: > > Signed-off-by: Kevin Darbyshire-Bryant <[email protected]> > --- > > This patch, in a variety of forms, has been around since beginning 2016 > as e756c2bb07, ending up in present form 0aa6c7df60 (kernel 4.4.13 bump) > and carried forward ever since. > > There have been a number of MIPS kernel memory handling changes since, > including VDSO fixes that meant openwrt patches have been dropped with > no apparent fallout. > > I'm basically wondering if this patch needs to still exist in the kernel > 4.14.88 world? I have been running without this patch for 3+ months on > Archer C7 v2 with no obvious ill effects (I'd expect to see "nasty > segfaults and kernel crashes") > > If it does still need to exist, should it go upstream? > > Thoughts, comments, more testers? I've tested removing the patch on a 512MB mt7621 device where HIGHMEM is used for the second 256MB. No issues. > > > ...fix-cache-flushing-for-highmem-pages.patch | 30 ------------------- > 1 file changed, 30 deletions(-) > delete mode 100644 > target/linux/generic/pending-4.14/100-MIPS-fix-cache-flushing-for-highmem-pages.patch > > diff --git > a/target/linux/generic/pending-4.14/100-MIPS-fix-cache-flushing-for-highmem-pages.patch > > b/target/linux/generic/pending-4.14/100-MIPS-fix-cache-flushing-for-highmem-pages.patch > deleted file mode 100644 > index b1c65f7cd8..0000000000 > --- > a/target/linux/generic/pending-4.14/100-MIPS-fix-cache-flushing-for-highmem-pages.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -From: Felix Fietkau <[email protected]> > -Subject: MIPS: fix cache flushing for highmem pages > - > -Most cache flush ops were no-op for highmem pages. This led to nasty > -segfaults and (in the case of page_address(page) == NULL) kernel > -crashes. > - > -Fix this by always flushing highmem pages using kmap/kunmap_atomic > -around the actual cache flush. This might be a bit inefficient, but at > -least it's stable. > - > -Signed-off-by: Felix Fietkau <[email protected]> > ---- > - > ---- a/arch/mips/mm/cache.c > -+++ b/arch/mips/mm/cache.c > -@@ -116,6 +116,13 @@ void __flush_anon_page(struct page *page > - { > - unsigned long addr = (unsigned long) page_address(page); > - > -+ if (PageHighMem(page)) { > -+ addr = (unsigned long)kmap_atomic(page); > -+ flush_data_cache_page(addr); > -+ __kunmap_atomic((void *)addr); > -+ return; > -+ } > -+ > - if (pages_do_alias(addr, vmaddr)) { > - if (page_mapcount(page) && !Page_dcache_dirty(page)) { > - void *kaddr; > -- > 2.17.2 (Apple Git-113) > > > _______________________________________________ > openwrt-devel mailing list > [email protected] > https://lists.openwrt.org/mailman/listinfo/openwrt-devel
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
