No description
Find a file
Linus Torvalds 798dec3304 x86-64: mm: clarify the 'positive addresses' user address rules
Dave Hansen found the "(long) addr >= 0" code in the x86-64 access_ok
checks somewhat confusing, and suggested using a helper to clarify what
the code is doing.

So this does exactly that: clarifying what the sign bit check is all
about, by adding a helper macro that makes it clear what it is testing.

This also adds some explicit comments talking about how even with LAM
enabled, any addresses with the sign bit will still GP-fault in the
non-canonical region just above the sign bit.

This is all what allows us to do the user address checks with just the
sign bit, and furthermore be a bit cavalier about accesses that might be
done with an additional offset even past that point.

(And yes, this talks about 'positive' even though zero is also a valid
user address and so technically we should call them 'non-negative'.  But
I don't think using 'non-negative' ends up being more understandable).

Suggested-by: Dave Hansen <dave.hansen@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2023-05-03 10:37:22 -07:00
arch x86-64: mm: clarify the 'positive addresses' user address rules 2023-05-03 10:37:22 -07:00
block Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
certs KEYS: Add missing function documentation 2023-04-24 16:15:52 +03:00
crypto modules-6.4-rc1 2023-04-27 16:36:55 -07:00
Documentation Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
drivers Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
fs afs: Avoid endless loop if file is larger than expected 2023-05-02 17:23:50 +01:00
include VFIO updates for v6.4-rc1 2023-05-02 11:56:43 -07:00
init Objtool changes for v6.4: 2023-04-28 14:02:54 -07:00
io_uring Networking changes for 6.4. 2023-04-26 16:07:23 -07:00
ipc Merge branch 'work.namespace' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2023-02-24 19:20:07 -08:00
kernel IOMMU Updates for Linux 6.4 2023-04-30 13:00:38 -07:00
lib s390 updates for the 6.4 merge window 2023-04-30 11:43:31 -07:00
LICENSES LICENSES: Add the copyleft-next-0.3.1 license 2022-11-08 15:44:01 +01:00
mm x86-64: make access_ok() independent of LAM 2023-05-03 10:37:22 -07:00
net NFSD 6.4 Release Notes 2023-04-29 11:04:14 -07:00
rust Rust changes for v6.4 2023-04-30 11:20:22 -07:00
samples Rust changes for v6.4 2023-04-30 11:20:22 -07:00
scripts Kbuild updates for v6.4 2023-04-30 11:32:53 -07:00
security integrity-v6.4 2023-04-29 10:11:32 -07:00
sound Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07:00
tools s390: 2023-05-01 12:06:20 -07:00
usr initramfs: Check negative timestamp to prevent broken cpio archive 2023-04-16 17:37:01 +09:00
virt s390: 2023-05-01 12:06:20 -07:00
.clang-format cxl for v6.4 2023-04-30 11:51:51 -07:00
.cocciconfig
.get_maintainer.ignore get_maintainer: add Alan to .get_maintainer.ignore 2022-08-20 15:17:44 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for *.dtso files 2023-02-26 15:28:23 +09:00
.gitignore linux-kselftest-kunit-6.4-rc1 2023-04-24 12:31:32 -07:00
.mailmap Mainly singleton patches all over the place. Series of note are: 2023-04-27 19:57:00 -07: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 Char/Misc drivers for 6.4-rc1 2023-04-27 12:07:50 -07: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 Pin control bulk changes for the v6.4 kernel: 2023-05-02 15:40:41 -07:00
Makefile Kbuild updates for v6.4 2023-04-30 11:32:53 -07: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.