Today's linux-next merge of the kvm-arm tree got conflicts in mm/mprotect.c between c3d16e1652 (mm: migration: do not lose soft dirty bit if page is in migration state) from Linus' tree and e920e14c (mm: Do not flush TLB during protection change if !pte_present && !migration_entry) from the tip tree. I've fixed up as below and can carry as required. diff --cc mm/mprotect.c index a3af058,a0302ac..0000000 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@@ -100,12 -89,11 +90,12 @@@ static unsigned long change_pte_range(s * just be safe and disable write */ make_migration_entry_read(&entry); - set_pte_at(mm, addr, pte, - swp_entry_to_pte(entry)); - + newpte = swp_entry_to_pte(entry); + if (pte_swp_soft_dirty(oldpte)) + newpte = pte_swp_mksoft_dirty(newpte); + set_pte_at(mm, addr, pte, newpte); + pages++; } - pages++; } } while (pte++, addr += PAGE_SIZE, addr != end); arch_leave_lazy_mmu_mode();
Attachment:
signature.asc
Description: Digital signature