On 03/16/2018 12:14 PM, jglisse@xxxxxxxxxx wrote: > From: Jérôme Glisse <jglisse@xxxxxxxxxx> > > The private field of mm_walk struct point to an hmm_vma_walk struct and > not to the hmm_range struct desired. Fix to get proper struct pointer. > > Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > Cc: stable@xxxxxxxxxxxxxxx > Cc: Evgeny Baskakov <ebaskakov@xxxxxxxxxx> > Cc: Ralph Campbell <rcampbell@xxxxxxxxxx> > Cc: Mark Hairgrove <mhairgrove@xxxxxxxxxx> > Cc: John Hubbard <jhubbard@xxxxxxxxxx> > --- > mm/hmm.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/hmm.c b/mm/hmm.c > index 6088fa6ed137..64d9e7dae712 100644 > --- a/mm/hmm.c > +++ b/mm/hmm.c > @@ -293,7 +293,8 @@ static int hmm_pfns_bad(unsigned long addr, > unsigned long end, > struct mm_walk *walk) > { > - struct hmm_range *range = walk->private; > + struct hmm_vma_walk *hmm_vma_walk = walk->private; > + struct hmm_range *range = hmm_vma_walk->range; > hmm_pfn_t *pfns = range->pfns; > unsigned long i; > This fix looks good. I also checked the other uses of walk->private, of course, but it was only this one that was wrong. I think this patch also belongs in -stable, because it is a simple bug fix. For the description, well...actually, because ->range is the first element in struct hmm_vma_walk, you probably end up with the same pointer value, both before and after this fix. So maybe there are no symptoms to see. Maybe that's an argument for *not* putting it in -stable, too. I'll leave that question to more experienced people. Either way, you can add: Reviewed by: John Hubbard <jhubbard@xxxxxxxxxx> thanks, -- John Hubbard NVIDIA