From: Alexei Starovoitov Date: Sun, 2 Mar 2025 21:59:40 +0000 (-0800) Subject: Merge branch 'global-subprogs-in-rcu-preempt-irq-disabled-sections' X-Git-Tag: v6.15-rc1~98^2~35 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd4d3ef3c50229d981ab547f5ce8d6fa692e1577;p=thirdparty%2Fkernel%2Fstable.git Merge branch 'global-subprogs-in-rcu-preempt-irq-disabled-sections' Kumar Kartikeya Dwivedi says: ==================== Global subprogs in RCU/{preempt,irq}-disabled sections Small change to allow non-sleepable global subprogs in RCU, preempt-disabled, and irq-disabled sections. For now, we don't lift the limitation for locks as it requires more analysis, and will do this one resilient spin locks land. This surfaced a bug where sleepable global subprogs were allowed in RCU read sections, that has been fixed. Tests have been added to cover various cases. Changelog: ---------- v2 -> v3 v2: https://lore.kernel.org/bpf/20250301030205.1221223-1-memxor@gmail.com * Fix broken to_be_replaced argument in the selftest. * Adjust selftest program type. v1 -> v2 v1: https://lore.kernel.org/bpf/20250228162858.1073529-1-memxor@gmail.com * Rename subprog_info[i].sleepable to might_sleep, which more accurately reflects the nature of the bit. 'sleepable' means whether a given context is allowed to, while might_sleep captures if it does. * Disallow extensions that might sleep to attach to targets that don't sleep, since they'd be permitted to be called in atomic contexts. (Eduard) * Add tests for mixing non-sleepable and sleepable global function calls, and extensions attaching to non-sleepable global functions. (Eduard) * Rename changes_pkt_data -> summarization ==================== Link: https://patch.msgid.link/20250301151846.1552362-1-memxor@gmail.com Signed-off-by: Alexei Starovoitov --- dd4d3ef3c50229d981ab547f5ce8d6fa692e1577