Re: [PATCH 0/3] special_mapping_fault() is broken

Oleg Nesterov
2015-06-21T21:21:13Z

Forgot to add Andy...

And forgot to mention. As for vdso in particular, I'd actually prefer
to make it have ->vm_file != NULL so that uprobe-in-vdso could work.
But this is not that simple, and I think these fixes (if correct) make
sense in any case, whatever we do with vdso.

On 06/21, Oleg Nesterov wrote:
>
> On 06/20, Oleg Nesterov wrote:
> >
> > Let me first send the changes which look "obviously correct" to me.
> > Perhaps I'll send more patches on top of this later.
>
> But lets also fix another unmap/remap bug before the cleanups...
> This series doesn't depend on the previous mremap fixes.
>
> special_mapping_fault() is absolutely broken. It seems it was always
> wrong, but this didn't matter until vdso/vvar started to use more than
> one page.
>
> I am not sure about 1/3. As the changelog says the name is not very
> accurate, and I do not really like the vma->fault != NULL check. But
> I hope this can work, and we can change this helper later if needed.
>
> Please review.
>
> Oleg.
>
> include/linux/mm.h | 5 +++++
> mm/memory.c | 13 ++++++-------
> mm/mmap.c | 14 +++-----------
> 3 files changed, 14 insertions(+), 18 deletions(-)