[PATCH mm-unstable v1 0/3] mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings

David Hildenbrand posted 3 patches 2 years, 8 months ago
drivers/char/mem.c       |  2 +-
drivers/misc/open-dice.c | 14 ++++-----
fs/cramfs/inode.c        |  2 +-
fs/proc/task_nommu.c     |  2 +-
fs/ramfs/file-nommu.c    |  2 +-
fs/romfs/mmap-nommu.c    |  2 +-
include/linux/mm.h       | 20 +++++++++++++
io_uring/io_uring.c      |  2 +-
mm/nommu.c               | 62 +++++++++++++++++++++++-----------------
9 files changed, 68 insertions(+), 40 deletions(-)
[PATCH mm-unstable v1 0/3] mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings
Posted by David Hildenbrand 2 years, 8 months ago
Trying to reduce the confusion around VM_SHARED and VM_MAYSHARE first
requires !CONFIG_MMU to stop using VM_MAYSHARE for MAP_PRIVATE mappings.
CONFIG_MMU only sets VM_MAYSHARE for MAP_SHARED mappings.

This paves the way for further VM_MAYSHARE and VM_SHARED cleanups: for
example, renaming VM_MAYSHARED to VM_MAP_SHARED to make it cleaner what
is actually means.

Let's first get the weird case out of the way and not use VM_MAYSHARE in
MAP_PRIVATE mappings, using a new VM_MAYOVERLAY flag instead.

I am not a NOMMU expert, but my basic testing with risc64-nommu with
buildroot under QEMU revealed no surprises.

Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Nicolas Pitre <nico@fluxnic.net>
Cc: Jens Axboe <axboe@kernel.dk>
Cc: Pavel Begunkov <asml.silence@gmail.com>

RFC -> v1:
* Rebased, retested
* "drivers/misc/open-dice: don't touch VM_MAYSHARE"
 -> Added; as VM_MAYSHARE semantics are now clearer, it makes sense to
    include this change in this series.

David Hildenbrand (3):
  mm/nommu: factor out check for NOMMU shared mappings into
    is_nommu_shared_mapping()
  mm/nommu: don't use VM_MAYSHARE for MAP_PRIVATE mappings
  drivers/misc/open-dice: don't touch VM_MAYSHARE

 drivers/char/mem.c       |  2 +-
 drivers/misc/open-dice.c | 14 ++++-----
 fs/cramfs/inode.c        |  2 +-
 fs/proc/task_nommu.c     |  2 +-
 fs/ramfs/file-nommu.c    |  2 +-
 fs/romfs/mmap-nommu.c    |  2 +-
 include/linux/mm.h       | 20 +++++++++++++
 io_uring/io_uring.c      |  2 +-
 mm/nommu.c               | 62 +++++++++++++++++++++++-----------------
 9 files changed, 68 insertions(+), 40 deletions(-)

-- 
2.39.0