Defined in 2 files as a function:

Referenced in 4 files:

Smatch caller information:

kernel/printk/printk.c __pr_flush() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 1
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &console_sem

kernel/printk/printk.c __pr_flush() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 0
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &console_sem

kernel/printk/printk.c console_flush_one_record() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &console_sem

kernel/printk/printk.c console_unblank() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 flags
HALF_LOCKED2 irq

kernel/printk/printk.c console_unblank() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &console_sem
HALF_LOCKED2 flags
HALF_LOCKED2 irq

kernel/printk/printk.c legacy_kthread_should_wakeup() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 0
TASK_NOT_RUNNING
HALF_LOCKED2 global &console_sem

kernel/printk/printk.c unregister_console_locked() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 1
CAPPED_DATA 0 con 1
DATA_SOURCE 0 con $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &console_mutex

kernel/printk/nbcon.c __nbcon_atomic_flush_pending() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 1 flags s16min-(-1),256-s16max
PARAM_VALUE 2 use_atomic 1
BIT_INFO 1 flags 0x100,0x7fff
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 irq

kernel/printk/nbcon.c nbcon_device_release() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 0 con->write_atomic 1-u64max
PARAM_VALUE 1 flags s16min-(-1),256-s16max
PARAM_VALUE 2 use_atomic 1
DATA_SOURCE 0 con $0
STR_LEN 0 con (-1)
STR_LEN 0 con (-1)
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HOST_DATA 0 con->cflag 0
HOST_DATA 0 con->dropped 0
HOST_DATA 0 con->irq_work.node.a_flags.counter 0
HOST_DATA 0 con->irq_work.node.dst 0
HOST_DATA 0 con->irq_work.node.src 0
HOST_DATA 0 con->irq_work.node.u_flags 0
HOST_DATA 0 con->ispeed 0
HOST_DATA 0 con->nbcon_device_ctxt.allow_unsafe_takeover 0
HOST_DATA 0 con->nbcon_device_ctxt.backlog 0
HOST_DATA 0 con->nbcon_device_ctxt.prio 0
HOST_DATA 0 con->nbcon_device_ctxt.seq 0
HOST_DATA 0 con->nbcon_device_ctxt.spinwait_max_us 0
HOST_DATA 0 con->nbcon_prev_seq.counter 0
HOST_DATA 0 con->nbcon_seq.counter 0
HOST_DATA 0 con->nbcon_state.counter 0
HOST_DATA 0 con->ospeed 0
HOST_DATA 0 con->seq 0
HALF_LOCKED2 &s->port.lock
HALF_LOCKED2 &tup->port.lock
HALF_LOCKED2 &up->lock
HALF_LOCKED2 &up->port.lock
HALF_LOCKED2 _T->lock
HALF_LOCKED2 irq

kernel/printk/nbcon.c nbcon_kthread_func() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 0
BUF_SIZE 0 con 128
BUF_SIZE 0 con 128
DATA_SOURCE 0 con $0

kernel/printk/nbcon.c nbcon_kthread_should_wakeup() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 0
BUF_SIZE 0 con 128
BUF_SIZE 0 con 128
DATA_SOURCE 0 con $0

kernel/debug/kdb/kdb_io.c kdb_msg_write() -> console_is_usable()

Type Parameter Key Value
PARAM_VALUE 0 con 4096-ptr_max
PARAM_VALUE 2 use_atomic 1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 flags