Defined in 4 files 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 &gt->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