No description
  • C 96.9%
  • Assembly 0.9%
  • Rust 0.6%
  • Shell 0.6%
  • Python 0.5%
  • Other 0.3%
Find a file
Hou Tao eba7778cf9 bpf: Use preempt_count() directly in bpf_send_signal_common()
[ Upstream commit b4a8b5bba7 ]

bpf_send_signal_common() uses preemptible() to check whether or not the
current context is preemptible. If it is preemptible, it will use
irq_work to send the signal asynchronously instead of trying to hold a
spin-lock, because spin-lock is sleepable under PREEMPT_RT.

However, preemptible() depends on CONFIG_PREEMPT_COUNT. When
CONFIG_PREEMPT_COUNT is turned off (e.g., CONFIG_PREEMPT_VOLUNTARY=y),
!preemptible() will be evaluated as 1 and bpf_send_signal_common() will
use irq_work unconditionally.

Fix it by unfolding "!preemptible()" and using "preempt_count() != 0 ||
irqs_disabled()" instead.

Fixes: 87c544108b ("bpf: Send signals asynchronously if !preemptible")
Signed-off-by: Hou Tao <houtao1@huawei.com>
Link: https://lore.kernel.org/r/20250220042259.1583319-1-houtao@huaweicloud.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-04-10 14:32:00 +02:00
arch x86/platform: Only allow CONFIG_EISA for 32-bit 2025-04-10 14:31:57 +02:00
block block: fix 'kmem_cache of name 'bio-108' already exists' 2025-04-10 14:31:51 +02:00
certs certs/blacklist_hashes.c: fix const confusion in certs blacklist 2022-06-22 14:22:01 +02:00
crypto crypto: testmgr - some more fixes to RSA test vectors 2025-03-13 12:50:48 +01:00
Documentation sched/isolation: Prevent boot crash when the boot CPU is nohz_full 2025-04-10 14:31:48 +02:00
drivers clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock 2025-04-10 14:32:00 +02:00
fs proc: fix UAF in proc_get_inode() 2025-04-10 14:31:55 +02:00
include of: property: Increase NR_FWNODE_REFERENCE_ARGS 2025-04-10 14:31:59 +02:00
init initramfs: avoid filename buffer overrun 2024-12-14 19:50:42 +01:00
io_uring io_uring: fix possible deadlock in io_register_iowq_max_workers() 2024-11-17 15:06:25 +01:00
ipc ipc/sem: Fix dangling sem_array access in semtimedop race 2022-12-08 11:28:45 +01:00
kernel bpf: Use preempt_count() directly in bpf_send_signal_common() 2025-04-10 14:32:00 +02:00
lib lib/buildid: Handle memfd_secret() files in build_id_parse() 2025-04-10 14:31:52 +02:00
LICENSES LICENSES/dual/CC-BY-4.0: Git rid of "smart quotes" 2021-07-15 06:31:24 -06:00
mm slab: Introduce kmalloc_size_roundup() 2025-04-10 14:31:49 +02:00
net netfilter: socket: Lookup orig tuple for IPv6 SNAT 2025-04-10 14:31:56 +02:00
samples samples/landlock: Fix possible NULL dereference in parse_path() 2025-03-13 12:49:57 +01:00
scripts selinux: Chain up tool resolving errors in install_policy.sh 2025-04-10 14:31:57 +02:00
security tomoyo: don't emit warning in tomoyo_write_control() 2025-03-13 12:50:18 +01:00
sound ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible 2025-04-10 14:31:58 +02:00
tools libbpf: Fix hypothetical STT_SECTION extern NULL deref case 2025-04-10 14:31:59 +02:00
usr usr/include/Makefile: add linux/nfc.h to the compile-test coverage 2022-02-01 17:27:15 +01:00
virt KVM: Fix a data race on last_boosted_vcpu in kvm_vcpu_on_spin() 2024-10-22 15:40:41 +02:00
.clang-format clang-format: Update with the latest for_each macro list 2021-05-12 23:32:39 +02:00
.cocciconfig scripts: add Linux .cocciconfig for coccinelle 2016-07-22 12:13:39 +02:00
.get_maintainer.ignore Opt out of scripts/get_maintainer.pl 2019-05-16 10:53:40 -07:00
.gitattributes .gitattributes: use 'dts' diff driver for dts files 2019-12-04 19:44:11 -08:00
.gitignore Remove *.orig pattern from .gitignore 2024-10-17 15:11:10 +02:00
.mailmap mailmap: add Andrej Shadura 2021-10-18 20:22:03 -10:00
COPYING COPYING: state that all contributions really are covered by this file 2020-02-10 13:32:20 -08:00
CREDITS MAINTAINERS: Move Daniel Drake to credits 2021-09-21 08:34:58 +03:00
Kbuild kbuild: rename hostprogs-y/always to hostprogs/always-y 2020-02-04 01:53:07 +09:00
Kconfig kbuild: ensure full rebuild when the compiler is updated 2020-05-12 13:28:33 +09:00
MAINTAINERS trace: Relocate event helper files 2024-04-10 16:19:24 +02:00
Makefile Linux 5.15.179 2025-03-13 12:51:13 +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.