Defined in 4 files as a function:
- arch/arm64/include/asm/preempt.h, line 78 (as a function)
- arch/s390/include/asm/preempt.h, line 111 (as a function)
- arch/x86/include/asm/preempt.h, line 121 (as a function)
- include/asm-generic/preempt.h, line 76 (as a function)
Referenced in 1 files:
Smatch caller information:
arch/x86/xen/time.c xen_clocksource_read() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
kernel/panic.c warn_rcu_exit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
sound/soc/intel/avs/trace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/rcu/tree.c rcu_is_watching() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/rcu/tree.c rcu_lockdep_current_cpu_online() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | global &fprobe_mutex | ||
| HALF_LOCKED2 | rcu_read |
kernel/trace/trace_irqsoff.c ftrace_graph_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace_irqsoff.c ftrace_graph_notrace_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace_events_user.c __trace_event_discard_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
sound/soc/intel/catpt/trace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/firewire/core-trace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_event_perf.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/fgraph.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/i2c/i2c-core-smbus.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/i2c/i2c-core-base.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_functions.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_syscalls.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_osnoise.c timerlat_dump_stack() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/entry/syscall-common.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/ptp/ptp_kvm_common.c ptp_kvm_get_time_fn() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &adapter->ptm_lock |
drivers/ptp/ptp_kvm_common.c ptp_kvm_get_time_fn() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | global &kvm_ptp_lock | ||
| HALF_LOCKED2 | &adapter->ptm_lock |
arch/x86/kernel/kvmclock.c kvm_clock_get_cycles_snapshot() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &adapter->tmreg_lock | ||
| HALF_LOCKED2 | &bp->lock | ||
| HALF_LOCKED2 | &bp->tsu_clk_lock | ||
| HALF_LOCKED2 | &cpts->lock | ||
| HALF_LOCKED2 | &cpts->ptp_clk_mutex | ||
| HALF_LOCKED2 | &dt->tod_lock | ||
| HALF_LOCKED2 | &fbd->time_lock | ||
| HALF_LOCKED2 | &hellcreek->ptp_lock | ||
| HALF_LOCKED2 | &igb->tmreg_lock | ||
| HALF_LOCKED2 | &pdata->tstamp_lock | ||
| HALF_LOCKED2 | &pf->adapter->ptp_gltsyn_time_lock | ||
| HALF_LOCKED2 | &phc_info->lock | ||
| HALF_LOCKED2 | &priv->lock | ||
| HALF_LOCKED2 | &priv->mutex | ||
| HALF_LOCKED2 | &ptp->ptp_lock.lock | ||
| HALF_LOCKED2 | &tai->lock | ||
| HALF_LOCKED2 | &tp->lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags |
arch/x86/kernel/kvmclock.c kvm_clock_read() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
fs/nfsd/trace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/rethook.c rethook_trampoline_handler() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/locking/lockdep.c warn_rcu_exit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/gpu/drm/panthor/panthor_gpu.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/sched/build_utility.c local_clock() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &dc->writeback_lock | ||
| HALF_LOCKED2 | >->tlb.invalidate_lock | ||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &meta->lock | ||
| HALF_LOCKED2 | &n->write_lock | ||
| HALF_LOCKED2 | &of->mutex | ||
| HALF_LOCKED2 | &policy->rwsem | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &rs->rs_recv_lock | ||
| HALF_LOCKED2 | &scheduler->mmio_context_lock | ||
| HALF_LOCKED2 | &stats->lock | ||
| HALF_LOCKED2 | &uncore->i915->sb_lock | ||
| HALF_LOCKED2 | &uncore->lock | ||
| HALF_LOCKED2 | &vq->mutex | ||
| HALF_LOCKED2 | &xe->irq.lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | __flags | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &bch_register_lock | ||
| HALF_LOCKED2 | global &drm_unplug_srcu | ||
| HALF_LOCKED2 | global &mchdev_lock | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | irq_flags | ||
| HALF_LOCKED2 | irqflags | ||
| HALF_LOCKED2 | rcu_read |
kernel/sched/build_utility.c sched_clock_cpu() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &p->pi_lock | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | irq |
kernel/trace/trace_clock.c trace_clock_local() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | irq |
kernel/trace/trace_benchmark.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/ptp/ptp_vmclock.c vmclock_get_crosststamp_kvmclock() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &adapter->ptm_lock |
arch/x86/kernel/kprobes/ftrace.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
arch/x86/kvm/x86.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_printk.c __buffer_unlock_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/trace_printk.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/events/core.c __perf_sw_event() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
arch/x86/mm/kmmio.c rcu_read_unlock_sched_notrace() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| HALF_LOCKED2 | rcu_read |
net/sunrpc/sched.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace.c __buffer_unlock_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/trace.c __trace_event_discard_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/trace.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/trace.c trace_event_buffer_lock_reserve() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/trace.c trace_user_fault_read() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace.c trace_user_fault_read() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/fprobe.c fprobe_return() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/fprobe.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_stack.c stack_trace_call() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
fs/btrfs/super.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/ring_buffer.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ring_buffer.c ring_buffer_discard_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ring_buffer.c ring_buffer_lock_reserve() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ring_buffer.c ring_buffer_nest_end() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ring_buffer.c ring_buffer_time_stamp() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ring_buffer.c ring_buffer_unlock_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
lib/bug.c warn_rcu_exit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/locking/mutex.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
samples/trace_events/trace-events-sample.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/rcu/update.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/ftrace.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ftrace.c ftrace_ops_trampoline() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ftrace.c ftrace_ops_trampoline() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING |
kernel/trace/ftrace.c function_trace_probe_call() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/ftrace.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_sched_wakeup.c ftrace_graph_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace_sched_wakeup.c ftrace_graph_notrace_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace_sched_wakeup.c func_prolog_preempt_disable() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/trace_sched_wakeup.c wakeup_graph_entry() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/trace_sched_wakeup.c wakeup_graph_return() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
kernel/trace/trace_sched_wakeup.c wakeup_tracer_call() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
mm/damon/core.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_events.c __trace_event_discard_commit() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_events.c function_test_events_call() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
drivers/net/phy/mdio_bus.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
kernel/trace/trace_functions_graph.c ftrace_graph_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
kernel/trace/trace_functions_graph.c ftrace_graph_notrace_addr() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|
fs/f2fs/super.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
arch/x86/kernel/tsc.c cyc2ns_read_end() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | &ctx->lock | ||
| HALF_LOCKED2 | &event->child_mutex | ||
| HALF_LOCKED2 | &next_ctx->lock | ||
| HALF_LOCKED2 | _T->lock | ||
| HALF_LOCKED2 | irq |
arch/x86/kernel/tsc.c cycles_2_ns() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt |
arch/x86/kernel/tsc.c sched_clock() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &cq->lock | ||
| HALF_LOCKED2 | &ctx->uring_lock | ||
| HALF_LOCKED2 | &group->avgs_lock | ||
| HALF_LOCKED2 | &group->rtpoll_trigger_lock | ||
| HALF_LOCKED2 | &idle->pi_lock | ||
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &queue->rx_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &sched_domains_mutex | ||
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rcu_read |
fs/pstore/ftrace.c trace_clear_recursion() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
drivers/gpio/gpio-sloppy-logic-analyzer.c fops_capture_set() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | &attr->mutex | ||
| LOCK2 | &priv->blob_lock | ||
| LOCK2 | irq | ||
| TYPE_LOCK | (struct gpio_la_poll_priv)->blob_lock | ||
| TYPE_LOCK | (struct simple_attr)->mutex |
kernel/sched/core.c class_preempt_notrace_destructor() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD |
lib/stackdepot.c rcu_read_unlock_sched_notrace() -> __preempt_count_dec_and_test()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| LOCK2 | rcu_read | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | global &pool_lock |