Go to file
Liam R. Howlett 1c87a6f82a mm: enable maple tree RCU mode by default.
commit 3dd4432549 upstream.

Use the maple tree in RCU mode for VMA tracking.

The maple tree tracks the stack and is able to update the pivot
(lower/upper boundary) in-place to allow the page fault handler to write
to the tree while holding just the mmap read lock.  This is safe as the
writes to the stack have a guard VMA which ensures there will always be
a NULL in the direction of the growth and thus will only update a pivot.

It is possible, but not recommended, to have VMAs that grow up/down
without guard VMAs.  syzbot has constructed a testcase which sets up a
VMA to grow and consume the empty space.  Overwriting the entire NULL
entry causes the tree to be altered in a way that is not safe for
concurrent readers; the readers may see a node being rewritten or one
that does not match the maple state they are using.

Enabling RCU mode allows the concurrent readers to see a stable node and
will return the expected result.

Link: https://lkml.kernel.org/r/20230227173632.3292573-9-surenb@google.com
Cc: stable@vger.kernel.org
Fixes: d4af56c5c7 ("mm: start tracking VMAs with maple tree")
Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
Reported-by: syzbot+8d95422d3537159ca390@syzkaller.appspotmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-04-13 16:55:40 +02:00
Documentation zsmalloc: document freeable stats 2023-04-13 16:55:35 +02:00
LICENSES
arch KVM: nVMX: Do not report error code when synthesizing VM-Exit from Real Mode 2023-04-13 16:55:30 +02:00
block blk-throttle: Fix that bps of child could exceed bps limited in parent 2023-04-13 16:55:37 +02:00
certs certs: Fix build error when PKCS#11 URI contains semicolon 2023-02-09 11:28:11 +01:00
crypto crypto: rsa-pkcs1pad - Use akcipher_request_complete 2023-03-10 09:33:03 +01:00
drivers drm/i915: Split icl_color_commit_noarm() from skl_color_commit_noarm() 2023-04-13 16:55:38 +02:00
fs fs: drop peer group ids under namespace lock 2023-04-13 16:55:33 +02:00
include mm: enable maple tree RCU mode by default. 2023-04-13 16:55:40 +02:00
init
io_uring io_uring: fix memory leak when removing provided buffers 2023-04-13 16:55:31 +02:00
ipc
kernel mm: enable maple tree RCU mode by default. 2023-04-13 16:55:40 +02:00
lib maple_tree: add RCU lock checking to rcu callback functions 2023-04-13 16:55:40 +02:00
mm mm: enable maple tree RCU mode by default. 2023-04-13 16:55:40 +02:00
net can: isotp: isotp_recvmsg(): use sock_recv_cmsgs() to get SOCK_RXQ_OVFL infos 2023-04-13 16:55:33 +02:00
rust rust: print: avoid evaluating arguments in `pr_*` macros in `unsafe` blocks 2023-02-06 08:06:34 +01:00
samples ftrace: Export ftrace_free_filter() to modules 2023-02-01 08:34:37 +01:00
scripts modpost: Fix processing of CRCs on 32-bit build machines 2023-04-06 12:10:53 +02:00
security keys: Do not cache key in task struct if key is requested from kernel thread 2023-03-30 12:49:07 +02:00
sound ASoC: hdac_hdmi: use set_stream() instead of set_tdm_slots() 2023-04-13 16:55:34 +02:00
tools maple_tree: remove GFP_ZERO from kmem_cache_alloc() and kmem_cache_alloc_bulk() 2023-04-13 16:55:38 +02:00
usr
virt KVM: Register /dev/kvm as the _very_ last thing during initialization 2023-03-10 09:34:11 +01:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
.rustfmt.toml
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS audit: update the mailing list in MAINTAINERS 2023-02-25 11:25:42 +01:00
Makefile Linux 6.1.23 2023-04-06 12:10:58 +02:00
README

README

Linux kernel
============

There are several guides for kernel developers and users. These guides can
be rendered in a number of formats, like HTML and PDF. Please read
Documentation/admin-guide/README.rst first.

In order to build the documentation, use ``make htmldocs`` or
``make pdfdocs``.  The formatted documentation can also be read online at:

    https://www.kernel.org/doc/html/latest/

There are various text files in the Documentation/ subdirectory,
several of them using the Restructured Text markup notation.

Please read the Documentation/process/changes.rst file, as it contains the
requirements for building and running the kernel, and information about
the problems which may result by upgrading your kernel.