linux/kernel
David Miller 53755fc090 bpf/stackmap: Dont trylock mmap_sem with PREEMPT_RT and interrupts disabled
In a RT kernel down_read_trylock() cannot be used from NMI context and
up_read_non_owner() is another problematic issue.

So in such a configuration, simply elide the annotated stackmap and
just report the raw IPs.

In the longer term, it might be possible to provide a atomic friendly
versions of the page cache traversal which will at least provide the info
if the pages are resident and don't need to be paged in.

[ tglx: Use IS_ENABLED() to avoid the #ifdeffery, fixup the irq work
  	callback and add a comment ]

Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2023-03-25 04:21:32 +03:00
..
bpf bpf/stackmap: Dont trylock mmap_sem with PREEMPT_RT and interrupts disabled 2023-03-25 04:21:32 +03:00
cgroup cpuset: Convert callback_lock to raw_spinlock_t 2023-03-25 04:21:30 +03:00
configs
debug kdb: Make memory allocations more robust 2021-03-04 10:26:10 +01:00
dma dma-direct: avoid redundant memory sync for swiotlb 2022-04-20 09:19:39 +02:00
events perf/bpf: Remove preempt disable around BPF invocation 2023-03-25 04:21:31 +03:00
gcov gcov: re-fix clang-11+ support 2021-04-14 08:24:10 +02:00
irq random: Make it work on rt 2023-03-25 04:21:29 +03:00
livepatch livepatch: Nullify obj->mod in klp_module_coming()'s error path 2019-08-19 13:03:37 +02:00
locking lockdep: Make it RT aware 2023-03-25 04:21:29 +03:00
power swait: Remove the warning with more than two waiters 2023-03-25 04:21:23 +03:00
printk printk: hack out emergency loglevel usage 2023-03-25 04:21:17 +03:00
rcu irqwork: push most work into softirq context 2023-03-25 04:21:29 +03:00
sched irqwork: push most work into softirq context 2023-03-25 04:21:29 +03:00
time irqwork: push most work into softirq context 2023-03-25 04:21:29 +03:00
trace bpf/trace: Remove redundant preempt_disable from trace_call_bpf() 2023-03-25 04:21:31 +03:00
.gitignore kbuild: update config_data.gz only when the content of .config is changed 2021-05-11 14:04:16 +02:00
Kconfig.freezer
Kconfig.hz
Kconfig.locks Use CONFIG_PREEMPTION 2023-03-25 04:21:18 +03:00
Kconfig.preempt sched/rt, Kconfig: Unbreak def/oldconfig with CONFIG_PREEMPT=y 2019-07-22 18:05:11 +02:00
Makefile kbuild: update config_data.gz only when the content of .config is changed 2021-05-11 14:04:16 +02:00
acct.c
async.c Revert "module, async: async_synchronize_full() on module init iff async is used" 2022-02-23 11:59:56 +01:00
audit.c audit: improve audit queue handling when "audit=1" on cmdline 2022-02-08 18:24:26 +01:00
audit.h audit: log AUDIT_TIME_* records only from rules 2022-04-15 14:18:04 +02:00
audit_fsnotify.c
audit_tree.c audit: move put_tree() to avoid trim_trees refcount underflow and UAF 2021-09-03 10:08:16 +02:00
audit_watch.c audit: CONFIG_CHANGE don't log internal bookkeeping as an event 2020-10-01 13:17:32 +02:00
auditfilter.c audit: fix a net reference leak in audit_list_rules_send() 2020-06-22 09:30:59 +02:00
auditsc.c audit: log AUDIT_TIME_* records only from rules 2022-04-15 14:18:04 +02:00
backtracetest.c
bounds.c
capability.c
compat.c
configs.c kernel/configs: Replace GPL boilerplate code with SPDX identifier 2019-07-30 18:34:15 +02:00
context_tracking.c
cpu.c sched/core: migrate_enable() must access takedown_cpu_task on !HOTPLUG_CPU 2023-03-25 04:21:26 +03:00
cpu_pm.c kernel/cpu_pm: Fix uninitted local in cpu_pm 2020-06-22 09:31:22 +02:00
crash_core.c
crash_dump.c
cred.c keys: Fix request_key() cache 2020-01-17 19:48:42 +01:00
delayacct.c
dma.c
exec_domain.c
exit.c locking/percpu-rwsem: Fold __percpu_up_read() 2023-03-25 04:21:17 +03:00
extable.c extable: Add function to search only kernel exception table 2019-08-21 22:23:48 +10:00
fail_function.c fail_function: Remove a redundant mutex unlock 2020-11-24 13:29:18 +01:00
fork.c rtmutex: add sleeping lock implementation 2023-03-25 04:21:25 +03:00
freezer.c Revert "libata, freezer: avoid block device removal while system is frozen" 2019-10-06 09:11:37 -06:00
futex.c futex: workaround migrate_disable/enable in different context 2023-03-25 04:21:27 +03:00
gen_kheaders.sh kbuild: add variables for compression tools 2020-09-03 11:27:10 +02:00
groups.c
hung_task.c
iomem.c mm/nvdimm: add is_ioremap_addr and use that to check ioremap address 2019-07-12 11:05:40 -07:00
irq_work.c irqwork: push most work into softirq context 2023-03-25 04:21:29 +03:00
jump_label.c jump_label: Don't warn on __exit jump entries 2019-08-29 15:10:10 +01:00
kallsyms.c kallsyms: Refactor kallsyms_show_value() to take cred 2020-07-16 08:16:44 +02:00
kcmp.c exec: Transform exec_update_mutex into a rw_semaphore 2021-01-09 13:44:55 +01:00
kcov.c
kexec.c kexec_load: Disable at runtime if the kernel is locked down 2019-08-19 21:54:15 -07:00
kexec_core.c printk_safe: remove printk safe code 2023-03-25 04:21:15 +03:00
kexec_elf.c kexec_elf: support 32 bit ELF files 2019-09-06 23:58:44 +02:00
kexec_file.c kernel: kexec_file: fix error return code of kexec_calculate_store_digests() 2021-05-19 10:08:28 +02:00
kexec_internal.h
kheaders.c
kmod.c kmod: make request_module() return an error when autoloading is disabled 2020-04-17 10:50:22 +02:00
kprobes.c kprobes: Limit max data_size of the kretprobe instances 2021-12-08 09:01:10 +01:00
ksysfs.c
kthread.c kthread: Fix PF_KTHREAD vs to_kthread() race 2021-09-12 08:56:39 +02:00
latencytop.c
module-internal.h
module.c module/ftrace: handle patchable-function-entry 2022-02-23 11:59:56 +01:00
module_signature.c module: harden ELF info handling 2021-04-07 14:47:38 +02:00
module_signing.c module: harden ELF info handling 2021-04-07 14:47:38 +02:00
notifier.c kernel/notifier.c: intercept duplicate registrations to avoid infinite loops 2020-10-01 13:17:23 +02:00
nsproxy.c
padata.c padata: add separate cpuhp node for CPUHP_PADATA_DEAD 2020-06-17 16:40:22 +02:00
panic.c panic: skip get_random_bytes for RT_FULL in init_oops_id 2023-03-25 04:21:29 +03:00
params.c lockdown: Lock down module params that specify hardware parameters (eg. ioport) 2019-08-19 21:54:16 -07:00
pid.c kernel/pid.c: convert struct pid count to refcount_t 2019-07-16 19:23:24 -07:00
pid_namespace.c memcg: enable accounting for pids in nested pid namespaces 2021-09-22 12:26:37 +02:00
profile.c profiling: fix shift-out-of-bounds bugs 2021-09-26 14:07:09 +02:00
ptrace.c ptrace: fix ptrace vs tasklist_lock race 2023-03-25 04:21:26 +03:00
range.c
reboot.c reboot: fix overflow parsing reboot cpu number 2020-11-18 19:20:30 +01:00
relay.c kernel/relay.c: fix memleak on destroy relay channel 2020-08-26 10:40:51 +02:00
resource.c /dev/mem: Revoke mappings when a driver claims the region 2020-06-24 17:50:35 +02:00
rseq.c
seccomp.c bpf: Use bpf_prog_run_pin_on_cpu() at simple call sites. 2023-03-25 04:21:31 +03:00
signal.c signal/x86: Delay calling signals in atomic 2023-03-25 04:21:21 +03:00
smp.c smp: Remove allocation mask from on_each_cpu_cond.*() 2023-03-25 04:21:18 +03:00
smpboot.c kthread: Extract KTHREAD_IS_PER_CPU 2021-02-07 15:35:49 +01:00
smpboot.h
softirq.c softirq: Avoid a cancel dead-lock in tasklet handling due to preemptible-softirq 2023-03-25 04:21:24 +03:00
stackleak.c
stacktrace.c stacktrace: Don't skip first entry on noncurrent tasks 2019-11-04 21:19:25 +01:00
stop_machine.c sched: migrate_enable: Use stop_one_cpu_nowait() 2023-03-25 04:21:27 +03:00
sys.c prctl: allow to setup brk for et_dyn executables 2021-09-26 14:07:08 +02:00
sys_ni.c
sysctl-test.c kernel/sysctl-test: Add null pointer test for sysctl.c:proc_dointvec() 2020-10-01 13:17:10 +02:00
sysctl.c mm/compaction: Disable compact_unevictable_allowed on RT 2023-03-25 04:21:18 +03:00
sysctl_binary.c
task_work.c
taskstats.c taskstats: fix data-race 2020-01-09 10:19:54 +01:00
test_kprobes.c
torture.c torture: Remove exporting of internal functions 2019-08-01 14:30:22 -07:00
tracepoint.c tracepoint: Add tracepoint_probe_register_may_exist() for BPF tracing 2021-07-14 16:53:08 +02:00
tsacct.c taskstats: Cleanup the use of task->exit_code 2022-02-23 11:59:57 +01:00
ucount.c proc/sysctl: add shared variables for range check 2019-07-18 17:08:07 -07:00
uid16.c
uid16.h
umh.c usermodehelper: reset umask to default before executing user process 2020-10-14 10:32:58 +02:00
up.c smp: Remove allocation mask from on_each_cpu_cond.*() 2023-03-25 04:21:18 +03:00
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c watchdog/softlockup: Enforce that timestamp is valid on boot 2020-02-24 08:36:52 +01:00
watchdog_hld.c
workqueue.c workqueue: Convert the locks to raw type 2023-03-25 04:21:19 +03:00
workqueue_internal.h