On Wed, Jan 02, 2019 at 01:25:31PM -0800, Matthew Wilcox wrote: > On Thu, Jan 03, 2019 at 08:13:32AM +1100, Dave Chinner wrote: > > Hi folks, > > > > An overnight test run on a current TOT kernel failed generic/413 > > with the following dmesg output: > > > > [ 9487.276402] RIP: 0010:__follow_pte_pmd+0x22d/0x340 > > [ 9487.305065] Call Trace: > > [ 9487.307310] dax_entry_mkclean+0xbb/0x1f0 > > We've only got one commit touching dax_entry_mkclean and it's Jerome's. > Looking through ac46d4f3c43241ffa23d5bf36153a0830c0e02cc, I'd say > it's missing a call to mmu_notifier_range_init(). Could I persuade you to give this a try? diff --git a/mm/memory.c b/mm/memory.c index 2dd2f9ab57f4..21a650368be0 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4078,8 +4078,8 @@ static int __follow_pte_pmd(struct mm_struct *mm, unsigned long address, goto out; if (range) { - range->start = address & PAGE_MASK; - range->end = range->start + PAGE_SIZE; + mmu_notifier_range_init(range, mm, address & PAGE_MASK, + (address & PAGE_MASK) + PAGE_SIZE); mmu_notifier_invalidate_range_start(range); } ptep = pte_offset_map_lock(mm, pmd, address, ptlp);