Skip to content
Permalink
Melissa-Wen/dr…
Switch branches/tags

Commits on Apr 12, 2021

  1. drm/vkms: add overlay support

    Add support to overlay plane, in addition to primary and cursor
    planes. In this approach, the plane composition still requires an
    active primary plane and planes are composed associatively in the
    order: (primary <- overlay) <- cursor
    
    It enables to run the following IGT tests successfully:
    - kms_plane_cursor:
      - pipe-A-[overlay, primary, viewport]-size-[64, 128, 256]
    - kms_atomic:
      - plane-overlay-legacy
    and preserves the successful execution of kms_cursor_crc,
    kms_writeback and kms_flip
    
    Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
    melissawen authored and intel-lab-lkp committed Apr 12, 2021
  2. drm/vkms: add XRGB planes composition

    Add support for composing XRGB888 planes in addition to the
    ARGB8888 format. In the case of an XRGB plane at the top, the
    composition consists of just copying the RGB values of a
    pixel from src to dst, without the need for alpha blending
    operations for each pixel.
    
    Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
    melissawen authored and intel-lab-lkp committed Apr 12, 2021
  3. drm/vkms: rename cursor to plane on ops of planes composition

    Generalize variables and function names used for planes composition
    (from cursor to plane), since we will reuse the operations for both
    cursor and overlay types.
    
    No functional change.
    
    Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
    melissawen authored and intel-lab-lkp committed Apr 12, 2021
  4. drm/vkms: init plane using drmm_universal_plane_alloc

    By using drmm_universal_plane_alloc instead of
    drm_universal_plane_init, we let the DRM infrastructure handles
    resource allocation and cleanup. We can also get rid of some
    code repetitions for plane cleanup, improving code maintainability
    in vkms.
    
    Signed-off-by: Melissa Wen <melissa.srw@gmail.com>
    melissawen authored and intel-lab-lkp committed Apr 12, 2021
  5. Add linux-next specific files for 20210412

    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    sfrothwell committed Apr 12, 2021
  6. Merge branch 'akpm/master'

    sfrothwell committed Apr 12, 2021
  7. memfd_secret: use unsigned int rather than long as syscall flags type

    Yuri Norov says:
    
      If parameter size is the same for native and compat ABIs, we may
      wire a syscall made by compat client to native handler. This is
      true for unsigned int, but not true for unsigned long or pointer.
    
      That's why I suggest using unsigned int and so avoid creating compat
      entry point.
    
    Use unsigned int as the type of the flags parameter in memfd_secret()
    system call.
    
    Link: https://lkml.kernel.org/r/20210331142345.27532-1-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Yury Norov <yury.norov@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  8. secretmem: test: add basic selftest for memfd_secret(2)

    The test verifies that file descriptor created with memfd_secret does not
    allow read/write operations, that secret memory mappings respect
    RLIMIT_MEMLOCK and that remote accesses with process_vm_read() and
    ptrace() to the secret memory fail.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-10-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  9. memfd_secret: use unsigned int rather than long as syscall flags type

    Yuri Norov says:
    
      If parameter size is the same for native and compat ABIs, we may
      wire a syscall made by compat client to native handler. This is
      true for unsigned int, but not true for unsigned long or pointer.
    
      That's why I suggest using unsigned int and so avoid creating compat
      entry point.
    
    Use unsigned int as the type of the flags parameter in memfd_secret()
    system call.
    
    Link: https://lkml.kernel.org/r/20210331142345.27532-1-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Yury Norov <yury.norov@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  10. arch, mm: wire up memfd_secret system call where relevant

    Wire up memfd_secret system call on architectures that define
    ARCH_HAS_SET_DIRECT_MAP, namely arm64, risc-v and x86.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-9-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: Palmer Dabbelt <palmerdabbelt@google.com>
    Acked-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  11. PM: hibernate: disable when there are active secretmem users

    It is unsafe to allow saving of secretmem areas to the hibernation
    snapshot as they would be visible after the resume and this essentially
    will defeat the purpose of secret memory mappings.
    
    Prevent hibernation whenever there are active secret memory users.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-8-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  12. memfd_secret: use unsigned int rather than long as syscall flags type

    Yuri Norov says:
    
      If parameter size is the same for native and compat ABIs, we may
      wire a syscall made by compat client to native handler. This is
      true for unsigned int, but not true for unsigned long or pointer.
    
      That's why I suggest using unsigned int and so avoid creating compat
      entry point.
    
    Use unsigned int as the type of the flags parameter in memfd_secret()
    system call.
    
    Link: https://lkml.kernel.org/r/20210331142345.27532-1-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: David Hildenbrand <david@redhat.com>
    Acked-by: Yury Norov <yury.norov@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  13. mm: introduce memfd_secret system call to create "secret" memory areas

    Introduce "memfd_secret" system call with the ability to create memory
    areas visible only in the context of the owning process and not mapped not
    only to other processes but in the kernel page tables as well.
    
    The secretmem feature is off by default and the user must explicitly
    enable it at the boot time.
    
    Once secretmem is enabled, the user will be able to create a file
    descriptor using the memfd_secret() system call.  The memory areas created
    by mmap() calls from this file descriptor will be unmapped from the kernel
    direct map and they will be only mapped in the page table of the processes
    that have access to the file descriptor.
    
    The file descriptor based memory has several advantages over the
    "traditional" mm interfaces, such as mlock(), mprotect(), madvise().  File
    descriptor approach allows explict and controlled sharing of the memory
    areas, it allows to seal the operations.  Besides, file descriptor based
    memory paves the way for VMMs to remove the secret memory range from the
    userpace hipervisor process, for instance QEMU.  Andy Lutomirski says:
    
      "Getting fd-backed memory into a guest will take some possibly major
      work in the kernel, but getting vma-backed memory into a guest without
      mapping it in the host user address space seems much, much worse."
    
    memfd_secret() is made a dedicated system call rather than an extention to
    memfd_create() because it's purpose is to allow the user to create more
    secure memory mappings rather than to simply allow file based access to
    the memory.  Nowadays a new system call cost is negligible while it is way
    simpler for userspace to deal with a clear-cut system calls than with a
    multiplexer or an overloaded syscall.  Moreover, the initial
    implementation of memfd_secret() is completely distinct from
    memfd_create() so there is no much sense in overloading memfd_create()
    to begin with.  If there will be a need for code sharing between these
    implementation it can be easily achieved without a need to adjust user
    visible APIs.
    
    The secret memory remains accessible in the process context using uaccess
    primitives, but it is not exposed to the kernel otherwise; secret memory
    areas are removed from the direct map and functions in the
    follow_page()/get_user_page() family will refuse to return a page that
    belongs to the secret memory area.
    
    Once there will be a use case that will require exposing secretmem to the
    kernel it will be an opt-in request in the system call flags so that user
    would have to decide what data can be exposed to the kernel.
    
    Removing of the pages from the direct map may cause its fragmentation on
    architectures that use large pages to map the physical memory which
    affects the system performance.  However, the original Kconfig text for
    CONFIG_DIRECT_GBPAGES said that gigabyte pages in the direct map "...  can
    improve the kernel's performance a tiny bit ..." (commit 00d1c5e
    ("x86: add gbpages switches")) and the recent report [1] showed that "...
    although 1G mappings are a good default choice, there is no compelling
    evidence that it must be the only choice".  Hence, it is sufficient to
    have secretmem disabled by default with the ability of a system
    administrator to enable it at boot time.
    
    Pages in the secretmem regions are unevictable and unmovable to avoid
    accidental exposure of the sensitive data via swap or during page
    migration.
    
    Since the secretmem mappings are locked in memory they cannot exceed
    RLIMIT_MEMLOCK.  Since these mappings are already locked independently
    from mlock(), an attempt to mlock()/munlock() secretmem range would fail
    and mlockall()/munlockall() will ignore secretmem mappings.
    
    However, unlike mlock()ed memory, secretmem currently behaves more like
    long-term GUP: secretmem mappings are unmovable mappings directly consumed
    by user space.  With default limits, there is no excessive use of
    secretmem and it poses no real problem in combination with
    ZONE_MOVABLE/CMA, but in the future this should be addressed to allow
    balanced use of large amounts of secretmem along with ZONE_MOVABLE/CMA.
    
    A page that was a part of the secret memory area is cleared when it is
    freed to ensure the data is not exposed to the next user of that page.
    
    The following example demonstrates creation of a secret mapping (error
    handling is omitted):
    
    	fd = memfd_secret(0);
    	ftruncate(fd, MAP_SIZE);
    	ptr = mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE,
    		   MAP_SHARED, fd, 0);
    
    [1] https://lore.kernel.org/linux-mm/213b4567-46ce-f116-9cdf-bbd0c884eb3c@linux.intel.com/
    Link: https://lkml.kernel.org/r/20210303162209.8609-7-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  14. set_memory: allow querying whether set_direct_map_*() is actually ena…

    …bled
    
    On arm64, set_direct_map_*() functions may return 0 without actually
    changing the linear map.  This behaviour can be controlled using kernel
    parameters, so we need a way to determine at runtime whether calls to
    set_direct_map_invalid_noflush() and set_direct_map_default_noflush() have
    any effect.
    
    Extend set_memory API with can_set_direct_map() function that allows
    checking if calling set_direct_map_*() will actually change the page
    table, replace several occurrences of open coded checks in arm64 with the
    new function and provide a generic stub for architectures that always
    modify page tables upon calls to set_direct_map APIs.
    
    [arnd@arndb.de: arm64: kfence: fix header inclusion ]
    Link: https://lkml.kernel.org/r/20210303162209.8609-6-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  15. set_memory: allow set_direct_map_*_noflush() for multiple pages

    The underlying implementations of set_direct_map_invalid_noflush() and
    set_direct_map_default_noflush() allow updating multiple contiguous pages
    at once.
    
    Add numpages parameter to set_direct_map_*_noflush() to expose this
    ability with these APIs.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-5-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Acked-by: Catalin Marinas <catalin.marinas@arm.com>	[arm64]
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  16. riscv/Kconfig: make direct map manipulation options depend on MMU

    ARCH_HAS_SET_DIRECT_MAP and ARCH_HAS_SET_MEMORY configuration options have
    no meaning when CONFIG_MMU is disabled and there is no point to enable
    them for the nommu case.
    
    Add an explicit dependency on MMU for these options.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-4-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  17. mmap: make mlock_future_check() global

    Patch series "mm: introduce memfd_secret system call to create "secret" memory areas", v18.
    
    This is an implementation of "secret" mappings backed by a file
    descriptor.
    
    The file descriptor backing secret memory mappings is created using a
    dedicated memfd_secret system call The desired protection mode for the
    memory is configured using flags parameter of the system call.  The mmap()
    of the file descriptor created with memfd_secret() will create a "secret"
    memory mapping.  The pages in that mapping will be marked as not present
    in the direct map and will be present only in the page table of the owning
    mm.
    
    Although normally Linux userspace mappings are protected from other users,
    such secret mappings are useful for environments where a hostile tenant is
    trying to trick the kernel into giving them access to other tenants
    mappings.
    
    Additionally, in the future the secret mappings may be used as a mean to
    protect guest memory in a virtual machine host.
    
    For demonstration of secret memory usage we've created a userspace library
    
    https://git.kernel.org/pub/scm/linux/kernel/git/jejb/secret-memory-preloader.git
    
    that does two things: the first is act as a preloader for openssl to
    redirect all the OPENSSL_malloc calls to secret memory meaning any secret
    keys get automatically protected this way and the other thing it does is
    expose the API to the user who needs it.  We anticipate that a lot of the
    use cases would be like the openssl one: many toolkits that deal with
    secret keys already have special handling for the memory to try to give
    them greater protection, so this would simply be pluggable into the
    toolkits without any need for user application modification.
    
    Hiding secret memory mappings behind an anonymous file allows usage of the
    page cache for tracking pages allocated for the "secret" mappings as well
    as using address_space_operations for e.g.  page migration callbacks.
    
    The anonymous file may be also used implicitly, like hugetlb files, to
    implement mmap(MAP_SECRET) and use the secret memory areas with "native"
    mm ABIs in the future.
    
    Removing of the pages from the direct map may cause its fragmentation on
    architectures that use large pages to map the physical memory which
    affects the system performance.  However, the original Kconfig text for
    CONFIG_DIRECT_GBPAGES said that gigabyte pages in the direct map "...  can
    improve the kernel's performance a tiny bit ..." (commit 00d1c5e
    ("x86: add gbpages switches")) and the recent report [1] showed that "...
    although 1G mappings are a good default choice, there is no compelling
    evidence that it must be the only choice".  Hence, it is sufficient to
    have secretmem disabled by default with the ability of a system
    administrator to enable it at boot time.
    
    In addition, there is also a long term goal to improve management of the
    direct map.
    
    [1] https://lore.kernel.org/linux-mm/213b4567-46ce-f116-9cdf-bbd0c884eb3c@linux.intel.com/
    
    This patch (of 8):
    
    It will be used by the upcoming secret memory implementation.
    
    Link: https://lkml.kernel.org/r/20210303162209.8609-1-rppt@kernel.org
    Link: https://lkml.kernel.org/r/20210303162209.8609-3-rppt@kernel.org
    Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christopher Lameter <cl@linux.com>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Elena Reshetova <elena.reshetova@intel.com>
    Cc: Hagen Paul Pfeifer <hagen@jauu.net>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: James Bottomley <jejb@linux.ibm.com>
    Cc: "Kirill A. Shutemov" <kirill@shutemov.name>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Michael Kerrisk <mtk.manpages@gmail.com>
    Cc: Palmer Dabbelt <palmer@dabbelt.com>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Walmsley <paul.walmsley@sifive.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
    Cc: Roman Gushchin <guro@fb.com>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tycho Andersen <tycho@tycho.ws>
    Cc: Will Deacon <will@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    rppt authored and sfrothwell committed Apr 12, 2021
  18. mm: fix typos in comments

    succed -> succeed in mm/hugetlb.c
    wil -> will in mm/mempolicy.c
    wit -> with in mm/page_alloc.c
    Retruns -> Returns in mm/page_vma_mapped.c
    confict -> conflict in mm/secretmem.c
    No functionality changed.
    
    Link: https://lkml.kernel.org/r/20210408140027.60623-1-lujialin4@huawei.com
    Signed-off-by: Lu Jialin <lujialin4@huawei.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Lu Jialin authored and sfrothwell committed Apr 12, 2021
  19. mm: fix typos in comments

    Fix ~94 single-word typos in locking code comments, plus a few
    very obvious grammar mistakes.
    
    Link: https://lkml.kernel.org/r/20210322212624.GA1963421@gmail.com
    Link: https://lore.kernel.org/r/20210322205203.GB1959563@gmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Reviewed-by: Randy Dunlap <rdunlap@infradead.org>
    Cc: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Ingo Molnar authored and sfrothwell committed Apr 12, 2021
  20. treewide: remove editor modelines and cruft

    The section "19) Editor modelines and other cruft" in
    Documentation/process/coding-style.rst clearly says, "Do not include any
    of these in source files."
    
    I recently receive a patch to explicitly add a new one.
    
    Let's do treewide cleanups, otherwise some people follow the existing code
    and attempt to upstream their favoriate editor setups.
    
    It is even nicer if scripts/checkpatch.pl can check it.
    
    If we like to impose coding style in an editor-independent manner, I think
    editorconfig (patch [1]) is a saner solution.
    
    [1] https://lore.kernel.org/lkml/20200703073143.423557-1-danny@kdrag0n.dev/
    
    Link: https://lkml.kernel.org/r/20210324054457.1477489-1-masahiroy@kernel.org
    Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
    Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Reviewed-by: Miguel Ojeda <ojeda@kernel.org>	[auxdisplay]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    masahir0y authored and sfrothwell committed Apr 12, 2021
  21. ipc/sem.c: spelling fix

    s/purpuse/purpose/
    
    Link: https://lkml.kernel.org/r/20210319221432.26631-1-unixbhaskar@gmail.com
    Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    unixbhaskar authored and sfrothwell committed Apr 12, 2021
  22. fs: fat: fix spelling typo of values

    vaules -> values
    
    Link: https://lkml.kernel.org/r/20210302034817.30384-1-dingsenjie@163.com
    Signed-off-by: dingsenjie <dingsenjie@yulong.com>
    Acked-by: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    dingsenjie authored and sfrothwell committed Apr 12, 2021
  23. kernel/sys.c: fix typo

    change 'infite'     to 'infinite'
    change 'concurent'  to 'concurrent'
    change 'memvers'    to 'members'
    change 'decendants' to 'descendants'
    change 'argumets'   to 'arguments'
    
    Link: https://lkml.kernel.org/r/20210316112904.10661-1-cxfcosmos@gmail.com
    Signed-off-by: Xiaofeng Cao <caoxiaofeng@yulong.com>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    CaoXiaofengGH authored and sfrothwell committed Apr 12, 2021
  24. kernel/up.c: fix typo

    s/condtions/conditions/
    
    Link: https://lkml.kernel.org/r/20210317032732.3260835-1-unixbhaskar@gmail.com
    Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    unixbhaskar authored and sfrothwell committed Apr 12, 2021
  25. kernel/user_namespace.c: fix typos

    change 'verifing' to 'verifying'
    change 'certaint' to 'certain'
    change 'approprpiate' to 'appropriate'
    
    Link: https://lkml.kernel.org/r/20210317100129.12440-1-caoxiaofeng@yulong.com
    Signed-off-by: Xiaofeng Cao <caoxiaofeng@yulong.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    CaoXiaofengGH authored and sfrothwell committed Apr 12, 2021
  26. kernel/umh.c: fix some spelling mistakes

    Fix some spelling mistakes, and modify the order of the parameter comments
    to be consistent with the order of the parameters passed to the function.
    
    Link: https://lkml.kernel.org/r/1615636139-4076-1-git-send-email-zhouchuangao@vivo.com
    Signed-off-by: zhouchuangao <zhouchuangao@vivo.com>
    Acked-by: Luis Chamberlain <mcgrof@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    zhouchuangao authored and sfrothwell committed Apr 12, 2021
  27. include/linux/pgtable.h: few spelling fixes

    Few spelling fixes throughout the file.
    
    Link: https://lkml.kernel.org/r/20210318201404.6380-1-unixbhaskar@gmail.com
    Signed-off-by: Bhaskar Chowdhury <unixbhaskar@gmail.com>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    unixbhaskar authored and sfrothwell committed Apr 12, 2021
  28. mm/slab.c: fix spelling mistake "disired" -> "desired"

    There is a spelling mistake in a comment. Fix it.
    
    Link: https://lkml.kernel.org/r/20210317094158.5762-1-colin.king@canonical.com
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    Colin Ian King authored and sfrothwell committed Apr 12, 2021
  29. scripts/spelling.txt: add "overflw"

    Add typo "overflw" for "overflow".  This typo was found and fixed in
    drivers/clocksource/timer-pistachio.c.
    
    Link: https://lore.kernel.org/lkml/20210305090315.384547-1-drew@beagleboard.org/
    Link: https://lkml.kernel.org/r/20210305095151.388182-1-drew@beagleboard.org
    Signed-off-by: Drew Fustini <drew@beagleboard.org>
    Suggested-by: Gustavo A. R. Silva <gustavoars@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    pdp7 authored and sfrothwell committed Apr 12, 2021
  30. scripts/spelling.txt: Add "diabled" typo

    Increase "diabled" spelling error check.
    
    Link: https://lkml.kernel.org/r/20210304070106.2313-1-zuoqilin1@163.com
    Signed-off-by: zuoqilin <zuoqilin@yulong.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    zuoqilin authored and sfrothwell committed Apr 12, 2021
  31. scripts/spelling.txt: add "overlfow"

    Add typo "overlfow" for "overflow". This typo was found and fixed in
    net/sctp/tsnmap.c.
    
    Link: https://lore.kernel.org/netdev/20210304055548.56829-1-drew@beagleboard.org/
    Link: https://lkml.kernel.org/r/20210304072657.64577-1-drew@beagleboard.org
    Signed-off-by: Drew Fustini <drew@beagleboard.org>
    Suggested-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    pdp7 authored and sfrothwell committed Apr 12, 2021
  32. arm: print alloc free paths for address in registers

    In case of a use after free kernel oops, the freeing path of the object is
    required to debug futher.  In most of cases the object address is present
    in one of the registers.
    
    Thus check the register's address and if it belongs to slab, print its
    alloc and free path.
    
    e.g.  in the below issue register r6 belongs to slab, and a use after free
    issue occurred on one of its dereferenced values:
    
    [   20.182197] Unable to handle kernel paging request at virtual address 6b6b6b6f
    ....
    [   20.185035] pc : [<c0538afc>]    lr : [<c0465674>]    psr: 60000013
    [   20.185271] sp : c8927d40  ip : ffffefff  fp : c8aa8020
    [   20.185462] r10: c8927e10  r9 : 00000001  r8 : 00400cc0
    [   20.185674] r7 : 00000000  r6 : c8ab0180  r5 : c1804a80  r4 : c8aa8008
    [   20.185924] r3 : c1a5661c  r2 : 00000000  r1 : 6b6b6b6b  r0 : c139bf48
    .....
    [   20.191499] Register r6 information: slab kmalloc-64 start c8ab0140 data offset 64 pointer offset 0 size 64 allocated at meminfo_proc_show+0x40/0x4fc
    [   20.192078]     meminfo_proc_show+0x40/0x4fc
    [   20.192263]     seq_read_iter+0x18c/0x4c4
    [   20.192430]     proc_reg_read_iter+0x84/0xac
    [   20.192617]     generic_file_splice_read+0xe8/0x17c
    [   20.192816]     splice_direct_to_actor+0xb8/0x290
    [   20.193008]     do_splice_direct+0xa0/0xe0
    [   20.193185]     do_sendfile+0x2d0/0x438
    [   20.193345]     sys_sendfile64+0x12c/0x140
    [   20.193523]     ret_fast_syscall+0x0/0x58
    [   20.193695]     0xbeeacde4
    [   20.193822]  Free path:
    [   20.193935]     meminfo_proc_show+0x5c/0x4fc
    [   20.194115]     seq_read_iter+0x18c/0x4c4
    [   20.194285]     proc_reg_read_iter+0x84/0xac
    [   20.194475]     generic_file_splice_read+0xe8/0x17c
    [   20.194685]     splice_direct_to_actor+0xb8/0x290
    [   20.194870]     do_splice_direct+0xa0/0xe0
    [   20.195014]     do_sendfile+0x2d0/0x438
    [   20.195174]     sys_sendfile64+0x12c/0x140
    [   20.195336]     ret_fast_syscall+0x0/0x58
    [   20.195491]     0xbeeacde4
    
    Link: https://lkml.kernel.org/r/1615891032-29160-3-git-send-email-maninder1.s@samsung.com
    Co-developed-by: Vaneet Narang <v.narang@samsung.com>
    Signed-off-by: Vaneet Narang <v.narang@samsung.com>
    Signed-off-by: Maninder Singh <maninder1.s@samsung.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Dmitry Safonov <0x7f454c46@gmail.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    Cc: Paul E. McKenney <paulmck@kernel.org>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    maninder42 authored and sfrothwell committed Apr 12, 2021
  33. mm/vmalloc: remove vwrite()

    The last user (/dev/kmem) is gone. Let's drop it.
    
    Link: https://lkml.kernel.org/r/20210324102351.6932-4-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Oleksiy Avramchenko <oleksiy.avramchenko@sonymobile.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: huang ying <huang.ying.caritas@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Apr 12, 2021
  34. mm: remove xlate_dev_kmem_ptr()

    Since /dev/kmem has been removed, let's remove the xlate_dev_kmem_ptr()
    leftovers.
    
    Link: https://lkml.kernel.org/r/20210324102351.6932-3-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Acked-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: Matt Turner <mattst88@gmail.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Brian Cain <bcain@codeaurora.org>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Cc: Rich Felker <dalias@libc.org>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Mikulas Patocka <mpatocka@redhat.com>
    Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Greentime Hu <green.hu@gmail.com>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Cc: Niklas Schnelle <schnelle@linux.ibm.com>
    Cc: Pierre Morel <pmorel@linux.ibm.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Apr 12, 2021
  35. drivers/char: remove /dev/kmem for good

    Patch series "drivers/char: remove /dev/kmem for good".
    
    Exploring /dev/kmem and /dev/mem in the context of memory hot(un)plug and
    memory ballooning, I started questioning the existence of /dev/kmem.
    
    Comparing it with the /proc/kcore implementation, it does not seem to be
    able to deal with things like
    
    a) Pages unmapped from the direct mapping (e.g., to be used by secretmem)
      -> kern_addr_valid(). virt_addr_valid() is not sufficient.
    
    b) Special cases like gart aperture memory that is not to be touched
      -> mem_pfn_is_ram()
    
    Unless I am missing something, it's at least broken in some cases and might
    fault/crash the machine.
    
    Looks like its existence has been questioned before in 2005 and 2010 [1],
    after ~11 additional years, it might make sense to revive the discussion.
    
    CONFIG_DEVKMEM is only enabled in a single defconfig (on purpose or by
    mistake?).  All distributions disable it: in Ubuntu it has been disabled
    for more than 10 years, in Debian since 2.6.31, in Fedora at least
    starting with FC3, in RHEL starting with RHEL4, in SUSE starting from
    15sp2, and OpenSUSE has it disabled as well.
    
    1) /dev/kmem was popular for rootkits [2] before it got disabled
       basically everywhere. Ubuntu documents [3] "There is no modern user of
       /dev/kmem any more beyond attackers using it to load kernel rootkits.".
       RHEL documents in a BZ [5] "it served no practical purpose other than to
       serve as a potential security problem or to enable binary module drivers
       to access structures/functions they shouldn't be touching"
    
    2) /proc/kcore is a decent interface to have a controlled way to read
       kernel memory for debugging puposes. (will need some extensions to
       deal with memory offlining/unplug, memory ballooning, and poisoned
       pages, though)
    
    3) It might be useful for corner case debugging [1]. KDB/KGDB might be a
       better fit, especially, to write random memory; harder to shoot
       yourself into the foot.
    
    4) "Kernel Memory Editor" [4] hasn't seen any updates since 2000 and seems
       to be incompatible with 64bit [1]. For educational purposes,
       /proc/kcore might be used to monitor value updates -- or older
       kernels can be used.
    
    5) It's broken on arm64, and therefore, completely disabled there.
    
    Looks like it's essentially unused and has been replaced by better
    suited interfaces for individual tasks (/proc/kcore, KDB/KGDB). Let's
    just remove it.
    
    [1] https://lwn.net/Articles/147901/
    [2] https://www.linuxjournal.com/article/10505
    [3] https://wiki.ubuntu.com/Security/Features#A.2Fdev.2Fkmem_disabled
    [4] https://sourceforge.net/projects/kme/
    [5] https://bugzilla.redhat.com/show_bug.cgi?id=154796
    
    Link: https://lkml.kernel.org/r/20210324102351.6932-1-david@redhat.com
    Link: https://lkml.kernel.org/r/20210324102351.6932-2-david@redhat.com
    Signed-off-by: David Hildenbrand <david@redhat.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: "Alexander A. Klimov" <grandmaster@al2klimov.de>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Andrey Zhizhikin <andrey.zhizhikin@leica-geosystems.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Brian Cain <bcain@codeaurora.org>
    Cc: Christian Borntraeger <borntraeger@de.ibm.com>
    Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
    Cc: Chris Zankel <chris@zankel.net>
    Cc: Corentin Labbe <clabbe@baylibre.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
    Cc: Greentime Hu <green.hu@gmail.com>
    Cc: Gregory Clement <gregory.clement@bootlin.com>
    Cc: Heiko Carstens <hca@linux.ibm.com>
    Cc: Helge Deller <deller@gmx.de>
    Cc: Hillf Danton <hdanton@sina.com>
    Cc: huang ying <huang.ying.caritas@gmail.com>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
    Cc: James Troup <james.troup@canonical.com>
    Cc: Jiaxun Yang <jiaxun.yang@flygoat.com>
    Cc: Jonas Bonn <jonas@southpole.se>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Kairui Song <kasong@redhat.com>
    Cc: Krzysztof Kozlowski <krzk@kernel.org>
    Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Cc: Liviu Dudau <liviu.dudau@arm.com>
    Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
    Cc: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Matt Turner <mattst88@gmail.com>
    Cc: Max Filippov <jcmvbkbc@gmail.com>
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Mike Rapoport <rppt@kernel.org>
    Cc: Mikulas Patocka <mpatocka@redhat.com>
    Cc: Minchan Kim <minchan@kernel.org>
    Cc: Niklas Schnelle <schnelle@linux.ibm.com>
    Cc: Oleksiy Avramchenko <oleksiy.avramchenko@sonymobile.com>
    Cc: openrisc@lists.librecores.org
    Cc: Palmer Dabbelt <palmerdabbelt@google.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: "Pavel Machek (CIP)" <pavel@denx.de>
    Cc: Pavel Machek <pavel@ucw.cz>
    Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
    Cc: Pierre Morel <pmorel@linux.ibm.com>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: Rich Felker <dalias@libc.org>
    Cc: Robert Richter <rric@kernel.org>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Cc: sparclinux@vger.kernel.org
    Cc: Stafford Horne <shorne@gmail.com>
    Cc: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Sudeep Holla <sudeep.holla@arm.com>
    Cc: Theodore Dubois <tblodt@icloud.com>
    Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Vasily Gorbik <gor@linux.ibm.com>
    Cc: Viresh Kumar <viresh.kumar@linaro.org>
    Cc: William Cohen <wcohen@redhat.com>
    Cc: Xiaoming Ni <nixiaoming@huawei.com>
    Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
    davidhildenbrand authored and sfrothwell committed Apr 12, 2021
Older