On Fri, May 10, 2019 at 07:53:23PM +0000, Kuehling, Felix wrote: > From: Philip Yang <Philip.Yang@xxxxxxx> > > While the page is migrating by NUMA balancing, HMM failed to detect this > condition and still return the old page. Application will use the new > page migrated, but driver pass the old page physical address to GPU, > this crash the application later. > > Use pte_protnone(pte) to return this condition and then hmm_vma_do_fault > will allocate new page. > > Signed-off-by: Philip Yang <Philip.Yang@xxxxxxx> Reviewed-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > --- > mm/hmm.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/hmm.c b/mm/hmm.c > index 75d2ea906efb..b65c27d5c119 100644 > --- a/mm/hmm.c > +++ b/mm/hmm.c > @@ -554,7 +554,7 @@ static int hmm_vma_handle_pmd(struct mm_walk *walk, > > static inline uint64_t pte_to_hmm_pfn_flags(struct hmm_range *range, pte_t pte) > { > - if (pte_none(pte) || !pte_present(pte)) > + if (pte_none(pte) || !pte_present(pte) || pte_protnone(pte)) > return 0; > return pte_write(pte) ? range->flags[HMM_PFN_VALID] | > range->flags[HMM_PFN_WRITE] : > -- > 2.17.1 >