Go to file
Waiman Long 198efd1669 jump_label,module: Don't alloc static_key_mod for __ro_after_init keys
JIRA: https://issues.redhat.com/browse/RHEL-68940
Conflicts: A context diff in the int/main.c hunk due to missing
	   upstream commit a5e8131a0329 ("arm64, powerpc, riscv, s390,
	   x86: ptdump: refactor CONFIG_DEBUG_WX").

commit 91a1d97ef482c1e4c9d4c1c656a53b0f6b16d0ed
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed, 13 Mar 2024 19:01:03 +0100

    jump_label,module: Don't alloc static_key_mod for __ro_after_init keys

    When a static_key is marked ro_after_init, its state will never change
    (after init), therefore jump_label_update() will never need to iterate
    the entries, and thus module load won't actually need to track this --
    avoiding the static_key::next write.

    Therefore, mark these keys such that jump_label_add_module() might
    recognise them and avoid the modification.

    Use the special state: 'static_key_linked(key) && !static_key_mod(key)'
    to denote such keys.

    jump_label_add_module() does not exist under CONFIG_JUMP_LABEL=n, so the
    newly-introduced jump_label_init_ro() can be defined as a nop for that
    configuration.

    [ mingo: Renamed jump_label_ro() to jump_label_init_ro() ]

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Valentin Schneider <vschneid@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Acked-by: Josh Poimboeuf <jpoimboe@kernel.org>
    Link: https://lore.kernel.org/r/20240313180106.2917308-2-vschneid@redhat.com

Signed-off-by: Waiman Long <longman@redhat.com>
2025-04-20 19:52:43 -04:00
Documentation arch: Remove cmpxchg_double 2025-04-20 18:40:07 -04:00
LICENSES LICENSES/dual/CC-BY-4.0: Git rid of "smart quotes" 2021-07-15 06:31:24 -06:00
arch x86/bpf: Fix IP for relocating call depth accounting 2025-04-20 19:52:41 -04:00
block Merge: block: fix adding folio to bio 2025-04-11 14:04:23 -03:00
certs certs: Add support for using elliptic curve keys for signing modules 2025-03-05 22:29:46 +08:00
crypto Merge: RHEL9.7 MDRAID - 2nd Update to the latest upstream 2025-03-27 16:28:30 -03:00
drivers x86,intel_iommu: Replace cmpxchg_double() 2025-04-20 18:40:04 -04:00
fs Merge: CVE-2024-54456: NFS: Fix potential buffer overflowin nfs_sysfs_link_rpc_client() 2025-04-11 14:04:24 -03:00
include jump_label,module: Don't alloc static_key_mod for __ro_after_init keys 2025-04-20 19:52:43 -04:00
init jump_label,module: Don't alloc static_key_mod for __ro_after_init keys 2025-04-20 19:52:43 -04:00
io_uring block: add a rq_list type 2025-03-14 16:48:23 +08:00
ipc mempolicy: alloc_pages_mpol() for NUMA policy without vma 2024-12-09 12:23:16 -05:00
kernel jump_label,module: Don't alloc static_key_mod for __ro_after_init keys 2025-04-20 19:52:43 -04:00
lib Merge: block: update with v6.14 2025-04-04 12:34:54 -03:00
mm Merge: Backport huge pfnmap support for significantly faster large mmap'd PCI device BARs 2025-04-04 12:34:53 -03:00
net Merge: tcp: drop secpath at the same time as we currently drop dst 2025-04-04 12:34:49 -03:00
redhat [redhat] kernel-5.14.0-579.el9 2025-04-11 14:04:55 -03:00
samples Merge: edac: add FRU Text decoding support 2025-03-17 14:57:55 -03:00
scripts arch: Remove cmpxchg_double 2025-04-20 18:40:07 -04:00
security Merge: CVE-2022-49643: ima: Fix a potential integer overflow in ima_appraise_measurement 2025-03-20 11:20:25 -03:00
sound Merge: CVE-2024-58077: ASoC: soc-pcm: don't use soc_pcm_ret() on .prepare callback 2025-03-31 16:55:02 -03:00
tools Merge: selftests/mm: va_high_addr_switch: reduce test noise 2025-04-11 14:04:27 -03:00
usr kexec.h: add linux/kexec.h to UAPI compile-test coverage 2024-05-15 13:58:51 +08:00
virt KVM: use follow_pfnmap API 2025-03-26 22:00:46 -04:00
.clang-format media: subdev: Add for_each_active_route() macro 2024-11-27 09:40:34 +08:00
.cocciconfig
.get_maintainer.ignore
.gitattributes gitattributes: Remove unnecesary export restrictions 2021-08-30 10:50:35 -04:00
.gitignore redhat: rhdocs: delete .get_maintainer.conf 2024-06-06 09:36:57 -04:00
.gitlab-ci.yml Merge tag 'kernel-5.14.0-570.3.1.el9_6' into 'main' 2025-03-10 17:24:30 -04:00
.mailmap mailmap: remove my redhat.com address from RHEL9's .mailmap file 2022-09-26 09:34:38 -04:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Remove Mathieu Poirier as coresight maintainer 2025-01-04 13:51:08 -05:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig Introduce CONFIG_RH_DISABLE_DEPRECATED 2021-08-30 10:50:55 -04:00
Kconfig.redhat redhat: kABI: add missing RH_KABI_SIZE_ALIGN_CHECKS Kconfig option 2024-01-12 14:27:16 +01:00
MAINTAINERS PCI/bwctrl: Re-add BW notification portdrv as PCIe BW controller 2025-03-20 10:33:57 -06:00
Makefile Merge: Suppress linker warnings about having a LOAD segment with RWX permissions 2025-02-13 02:24:26 -05:00
Makefile.rhelver [redhat] kernel-5.14.0-579.el9 2025-04-11 14:04:55 -03:00
README
makefile redhat: Change Makefile target names to dist- 2021-08-30 10:50:11 -04:00

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.