Messages in this thread | | | Subject | Re: [PATCH 04/14] mm/hmm: hmm_pfns_bad() was accessing wrong struct | From | John Hubbard <> | Date | Fri, 16 Mar 2018 19:04:08 -0700 |
| |
On 03/16/2018 12:14 PM, jglisse@redhat.com wrote: > From: Jérôme Glisse <jglisse@redhat.com> > > 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@redhat.com> > Cc: stable@vger.kernel.org > Cc: Evgeny Baskakov <ebaskakov@nvidia.com> > Cc: Ralph Campbell <rcampbell@nvidia.com> > Cc: Mark Hairgrove <mhairgrove@nvidia.com> > Cc: John Hubbard <jhubbard@nvidia.com> > --- > 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@nvidia.com>
thanks, -- John Hubbard NVIDIA
| |