Linux kernel source tree
Go to file
Dan Williams d1d13a0934 cxl/memdev: Fix sanitize vs decoder setup locking
[ Upstream commit 3398183808 ]

The sanitize operation is destructive and the expectation is that the
device is unmapped while in progress. The current implementation does a
lockless check for decoders being active, but then does nothing to
prevent decoders from racing to be committed. Introduce state tracking
to resolve this race.

This incidentally cleans up unpriveleged userspace from triggering mmio
read cycles by spinning on reading the 'security/state' attribute. Which
at a minimum is a waste since the kernel state machine can cache the
completion result.

Lastly cxl_mem_sanitize() was mistakenly marked EXPORT_SYMBOL() in the
original implementation, but an export was never required.

Fixes: 0c36b6ad43 ("cxl/mbox: Add sanitization handling machinery")
Cc: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
Reviewed-by: Dave Jiang <dave.jiang@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-11-20 11:59:30 +01:00
arch powerpc/vmcore: Add MMU information to vmcoreinfo 2023-11-20 11:59:29 +01:00
block blk-throttle: check for overflow in calculate_bytes_allowed 2023-10-20 18:38:17 -06:00
certs certs: Reference revocation list for all keyrings 2023-08-17 20:12:41 +00:00
crypto certs: Break circular dependency when selftest is modular 2023-11-20 11:59:23 +01:00
Documentation dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC 2023-11-20 11:59:24 +01:00
drivers cxl/memdev: Fix sanitize vs decoder setup locking 2023-11-20 11:59:30 +01:00
fs f2fs: fix to initialize map.m_pblk in f2fs_precache_extents() 2023-11-20 11:59:26 +01:00
include mfd: core: Un-constify mfd_cell.of_reg 2023-11-20 11:59:23 +01:00
init workqueue: Changes for v6.6 2023-09-01 16:06:32 -07:00
io_uring io_uring/kbuf: Allow the full buffer id space for provided buffers 2023-11-20 11:59:11 +01:00
ipc Add x86 shadow stack support 2023-08-31 12:20:12 -07:00
kernel livepatch: Fix missing newline character in klp_resolve_symbols() 2023-11-20 11:59:25 +01:00
lib kunit: test: Fix the possible memory leak in executor_test 2023-11-20 11:59:15 +01:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm vfs: fix readahead(2) on block devices 2023-11-20 11:58:52 +01:00
net 9p/net: fix possible memory leak in p9_check_errors() 2023-11-20 11:59:29 +01:00
rust rust: docs: fix logo replacement 2023-10-19 16:40:00 +02:00
samples VFIO updates for v6.6-rc1 2023-08-30 20:36:01 -07:00
scripts modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host 2023-11-20 11:59:28 +01:00
security apparmor: fix invalid reference on profile->disconnected 2023-11-20 11:59:24 +01:00
sound ASoC: ams-delta.c: use component after check 2023-11-20 11:59:23 +01:00
tools cxl/pci: Clarify devm host for memdev relative setup 2023-11-20 11:59:30 +01:00
usr initramfs: Encode dependency on KBUILD_BUILD_TIMESTAMP 2023-06-06 17:54:49 +09:00
virt ARM: 2023-09-07 13:52:20 -07:00
.clang-format iommu: Add for_each_group_device() 2023-05-23 08:15:51 +02:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: set diff driver for Rust source code files 2023-05-31 17:48:25 +02:00
.gitignore kbuild: rpm-pkg: rename binkernel.spec to kernel.spec 2023-07-25 00:59:33 +09:00
.mailmap 20 hotfixes. 12 are cc:stable and the remainder address post-6.5 issues 2023-10-24 09:52:16 -10:00
.rustfmt.toml rust: add .rustfmt.toml 2022-09-28 09:02:20 +02:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS USB: Remove Wireless USB and UWB documentation 2023-08-09 14:17:32 +02:00
Kbuild Kbuild updates for v6.1 2022-10-10 12:00:45 -07:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS Char/Misc driver fixes for 6.6-final 2023-10-28 07:51:27 -10:00
Makefile Linux 6.6.1 2023-11-08 11:56:25 +01:00
README Drop all 00-INDEX files from Documentation/ 2018-09-09 15:08:58 -06:00

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.