The source for the Linux kernel used in Windows Subsystem for Linux 2 (WSL2)
Перейти к файлу
Sebastian Andrzej Siewior 3f80492001 mm/vmalloc: use raw_cpu_ptr() for vmap_block_queue access
The per-CPU resource vmap_block_queue is accessed via get_cpu_var().  That
macro disables preemption and then loads the pointer from the current CPU.

This doesn't work on PREEMPT_RT because a spinlock_t is later accessed
within the preempt-disable section.

There is no need to disable preemption while accessing the per-CPU struct
vmap_block_queue because the list is protected with a spinlock_t.  The
per-CPU struct is also accessed cross-CPU in purge_fragmented_blocks().

It is possible that by using raw_cpu_ptr() the code migrates to another
CPU and uses struct from another CPU.  This is fine because the list is
locked and the locked section is very short.

Use raw_cpu_ptr() to access vmap_block_queue.

Link: https://lkml.kernel.org/r/YnKx3duAB53P7ojN@linutronix.de
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-05-13 07:20:18 -07:00
Documentation docs: vm/page_owner: tweak literal block in STANDARD FORMAT SPECIFIERS 2022-05-13 07:20:18 -07:00
LICENSES
arch mm: functions may simplify the use of return values 2022-05-13 07:20:18 -07:00
block
certs
crypto
drivers zram: remove double compression logic 2022-05-13 07:20:18 -07:00
fs mm/uffd: enable write protection for shmem & hugetlbfs 2022-05-13 07:20:11 -07:00
include tracing: incorrect gfp_t conversion 2022-05-13 07:20:18 -07:00
init mm/uffd: move USERFAULTFD configs into mm/ 2022-05-13 07:20:12 -07:00
ipc
kernel printk: stop including cache.h from printk.h 2022-05-13 07:20:07 -07:00
lib lib/kstrtox.c: add "false"/"true" support to kstrtobool() 2022-05-13 07:20:13 -07:00
mm mm/vmalloc: use raw_cpu_ptr() for vmap_block_queue access 2022-05-13 07:20:18 -07:00
net tcp: fix F-RTO may not work correctly when receiving DSACK 2022-04-28 10:35:38 -07:00
samples
scripts
security
sound ALSA: hda/realtek: Add quirk for Clevo NP70PNP 2022-04-21 21:23:47 +02:00
tools cgroup: fix racy check in alloc_pagecache_max_30M() helper function 2022-05-13 07:20:12 -07:00
usr
virt KVM: SEV: add cache flush to solve SEV cache incoherency issues 2022-04-21 15:41:00 -04:00
.clang-format
.cocciconfig
.get_maintainer.ignore
.gitattributes
.gitignore
.mailmap
COPYING
CREDITS
Kbuild
Kconfig
MAINTAINERS MAINTAINERS: add corresponding kselftests to memcg entry 2022-04-28 23:16:00 -07:00
Makefile Linux 5.18-rc4 2022-04-24 14:51:22 -07: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.