On Wed, Jul 08, 2020 at 02:16:39PM +0200, David Hildenbrand wrote: > >>> Hmm.. I really would like to see if there would be only a single page > >>> table walker left in vmem.c, which handles both adding and removing > >>> things. > >>> Now we end up with two different page table walk implementations > >>> within the same file. However not sure if it is worth the effort to > >>> unify them though. > >> > >> I tried to unify vmemmap_populate() and vmem_add_range() already and > >> didn't like the end result ... so, unifying these along with the removal > >> part won't be any better - most probably. Open for suggestions :) > >> > >> (at least arm64 and x86-64 handle it similarly) > >> > > > > I'll play with something like > > > > static void modify_pagetable(unsigned long start, unsigned long end, > > bool direct, bool add) > > > > and see how it turns out. > > > > Did a quick hack. With a single walker (modify_pagetable) I get > > arch/s390/mm/vmem.c | 628 ++++++++++++++++++++++++++++++-------------- > 1 file changed, 434 insertions(+), 194 deletions(-) > > Overall looks cleaner, only modify_pte_table() and modify_pmd_table() > are a little more involved ... Would you mind to resend the series with this integrated?