Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 2 files:

Smatch caller information:

drivers/tty/tty_io.c iterate_tty_write() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->atomic_write_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 tty->ldisc_sem.dep_map->name 0-255
PARAM_VALUE 0 tty->ldisc_sem.read_wait.next->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->next->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->prev 4096-ptr_max
PARAM_VALUE 0 tty->ops->flush_chars 0,4096-ptr_max
PARAM_VALUE 0 tty->ops->write 4096-ptr_max
PARAM_VALUE 0 tty->ops->write_room 0,4096-ptr_max
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->handoff_set 0-1
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->type 0-1
BUF_SIZE 0 tty->write_buf 1024-65536,u64max
DATA_SOURCE 0 tty $1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 tty->write_cnt 1025-u16max[c]
LOCK2 0 &tty->atomic_write_lock
LOCK2 0 &tty->ldisc_sem
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct tty_struct)->atomic_write_lock
TYPE_LOCK (struct tty_struct)->ldisc_sem

drivers/tty/tty_io.c send_break() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->atomic_write_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter 0,4096-5159360019465732095,5159360019465732097-ptr_max
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 tty->atomic_write_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 tty->driver 4096-ptr_max
PARAM_VALUE 0 tty->driver_data->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->port_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->write_lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->ops 4096-ptr_max
PARAM_VALUE 0 tty->ops->break_ctl 4096-ptr_max
CAPPED_DATA 0 tty 1
DATA_SOURCE 0 tty $0
BIT_INFO 0 tty->driver->flags 0x0,0xffffffffffffffdf
NOCHECK_CALL
LOCK2 0 &tty->atomic_write_lock
TYPE_LOCK (struct tty_struct)->atomic_write_lock

drivers/tty/tty_io.c tty_send_xchar() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->atomic_write_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter 0,4096-5159360019465732095,5159360019465732097-ptr_max
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 tty->atomic_write_lock.first_waiter->task->blocked_on 0
PARAM_VALUE 0 tty->atomic_write_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 tty->ldisc 1-u64max
PARAM_VALUE 0 tty->ldisc_sem.dep_map->name 0-255
PARAM_VALUE 0 tty->ldisc_sem.read_wait.next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.next->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->next->next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev->prev 4096-ptr_max
PARAM_VALUE 0 tty->ops 4096-ptr_max
PARAM_VALUE 0 tty->ops->chars_in_buffer 0,4096-ptr_max
PARAM_VALUE 0 tty->ops->compat_ioctl 0,1607379221601308672,5008286898947497984,6364353445524312064
PARAM_VALUE 0 tty->ops->ioctl 0,4096-ptr_max
PARAM_VALUE 0 tty->ops->send_xchar 0
PARAM_VALUE 0 tty->termios.c_cc 4096-ptr_max
PARAM_VALUE 0 tty->termios_rwsem.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner (-1)
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner_cpu u32max
CAPPED_DATA 0 tty 1
CAPPED_DATA 0 &tty->termios_rwsem 1
DATA_SOURCE 0 tty $0
NOCHECK_CALL
LOCK2 0 &tty->atomic_write_lock
LOCK2 0 &tty->ldisc_sem
TYPE_LOCK (struct tty_struct)->atomic_write_lock
TYPE_LOCK (struct tty_struct)->ldisc_sem

drivers/tty/tty_ioctl.c set_termios() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->driver 4096-ptr_max
PARAM_VALUE 0 tty->ldisc 1-u64max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.next 4096-ptr_max
PARAM_VALUE 0 tty->ldisc_sem.read_wait.prev 4096-ptr_max
PARAM_VALUE 0 tty->ops 4096-ptr_max
PARAM_VALUE 0 tty->ops->chars_in_buffer 1-u64max
PARAM_VALUE 0 tty->termios_rwsem.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner (-1)
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &tty->termios_rwsem 1
DATA_SOURCE 0 tty $0
NOCHECK_CALL
LOCK2 &tty->ldisc_sem
LOCK2 0 &tty->atomic_write_lock
TYPE_LOCK (struct tty_struct)->atomic_write_lock
TYPE_LOCK (struct tty_struct)->ldisc_sem

drivers/tty/tty_ioctl.c set_termios() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->driver 4096-ptr_max
PARAM_VALUE 0 tty->ldisc 1-u64max
PARAM_VALUE 0 tty->ldisc_sem.dep_map->name 0-255
PARAM_VALUE 0 tty->ops 4096-ptr_max
PARAM_VALUE 0 tty->ops->wait_until_sent 2578158375326154752,2614800216018440192,6874988682411192320,7074827580452507648,7916194843820081152
PARAM_VALUE 0 tty->termios_rwsem.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner (-1)
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.owner_cpu u32max
CAPPED_DATA 0 &tty->termios_rwsem 1
DATA_SOURCE 0 tty $0
NOCHECK_CALL
LOCK2 &tty->ldisc_sem
LOCK2 0 &tty->atomic_write_lock
HALF_LOCKED2 0 &tty->ldisc_sem
TYPE_LOCK (struct tty_struct)->atomic_write_lock

drivers/tty/tty_ioctl.c set_termios() -> tty_write_unlock()

Type Parameter Key Value
PARAM_VALUE 0 tty 4096-ptr_max
PARAM_VALUE 0 tty->disc_data->icanon 0-1
PARAM_VALUE 0 tty->disc_data->lnext 0
PARAM_VALUE 0 tty->disc_data->raw 0-1
PARAM_VALUE 0 tty->disc_data->real_raw 0-1
PARAM_VALUE 0 tty->driver 4096-ptr_max
PARAM_VALUE 0 tty->driver_data->FCR 0-1,33,65,129,193
PARAM_VALUE 0 tty->driver_data->MCR 0-255
PARAM_VALUE 0 tty->driver_data->clocal 0-1
PARAM_VALUE 0 tty->driver_data->control->dev.power.deferred_resume 0-1
PARAM_VALUE 0 tty->driver_data->control->dev.power.idle_notification 0-1
PARAM_VALUE 0 tty->driver_data->control->dev.power.request 0-4294967295
PARAM_VALUE 0 tty->driver_data->control->dev.power.request_pending 0-1
PARAM_VALUE 0 tty->driver_data->control->dev.power.runtime_error s32min-s32max
PARAM_VALUE 0 tty->driver_data->control->dev.power.runtime_status s32min-s32max
PARAM_VALUE 0 tty->driver_data->control->dev.power.timer_autosuspends 0-1
PARAM_VALUE 0 tty->driver_data->control->dev.power.usage_count.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->control->dev.power.wakeirq->status 0-4294967295
PARAM_VALUE 0 tty->driver_data->ctrlout 0-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->claim_cnt s32min-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->claimed 0-1
PARAM_VALUE 0 tty->driver_data->func->card->host->cqe_on 0-1
PARAM_VALUE 0 tty->driver_data->func->card->host->doing_retune 0-1
PARAM_VALUE 0 tty->driver_data->func->card->host->fail_mmc_request.ratelimit_state.flags 0-4294967295
PARAM_VALUE 0 tty->driver_data->func->card->host->fail_mmc_request.space.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->fail_mmc_request.times.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->hold_retune s32min-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->func->card->host->need_retune s32min-s32max
PARAM_VALUE 0 tty->driver_data->func->card->host->ongoing_mrq->uhs2_cmd.packet_len 0,4-12
PARAM_VALUE 0 tty->driver_data->func->card->host->ongoing_mrq->uhs2_cmd.payload_len 0-8
PARAM_VALUE 0 tty->driver_data->func->card->host->ongoing_mrq->uhs2_cmd.tmode_half_duplex 0-1
PARAM_VALUE 0 tty->driver_data->func->card->host->ongoing_mrq->uhs2_cmd.uhs2_resp_len 0,4-6,8
PARAM_VALUE 0 tty->driver_data->func->card->host->retune_now 0-1
PARAM_VALUE 0 tty->driver_data->func->card->host->uhs2_app_cmd 0-1
PARAM_VALUE 0 tty->driver_data->func_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->list.prev->next 5159360019465732096
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->list.prev->prev 5159360019465732096
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->task->blocked_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->task->blocked_lock.owner (-1)
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->task->blocked_lock.owner_cpu 4294967295
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->task->blocked_lock.raw_lock.val.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->func_lock.first_waiter->task->usage.refs.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->func_lock.osq.tail.counter 0-s32max
PARAM_VALUE 0 tty->driver_data->icount.tx 0-4294967295
PARAM_VALUE 0 tty->driver_data->ier 0-255
PARAM_VALUE 0 tty->driver_data->ignore_status_mask 0-1,12-13,16-19,28-31
PARAM_VALUE 0 tty->driver_data->lcr 0-31
PARAM_VALUE 0 tty->driver_data->line.bCharFormat 0,2
PARAM_VALUE 0 tty->driver_data->line.bDataBits 5-8
PARAM_VALUE 0 tty->driver_data->line.bParityType 0-4
PARAM_VALUE 0 tty->driver_data->line.dwDTERate 0-4294967295
PARAM_VALUE 0 tty->driver_data->line_coding.data_bits 5-8
PARAM_VALUE 0 tty->driver_data->line_coding.flow_control 0-1
PARAM_VALUE 0 tty->driver_data->line_coding.format 0,2
PARAM_VALUE 0 tty->driver_data->line_coding.parity 0-4
PARAM_VALUE 0 tty->driver_data->line_coding.rate 0-4294967295
PARAM_VALUE 0 tty->driver_data->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->mctrl 0-4294967295
PARAM_VALUE 0 tty->driver_data->port->client_data->serdev->write_comp.wait.lock.owner (-4611686018427387904)-4611686018427387903
PARAM_VALUE 0 tty->driver_data->port.client_data->serdev->write_comp.done 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.client_data->serdev->write_comp.wait.lock.owner (-1)
PARAM_VALUE 0 tty->driver_data->port.client_data->serdev->write_comp.wait.lock.owner_cpu 4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock->read_count 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->__state 0,512
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_defer 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_defer_armed 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_overrun 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_server 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_throttled 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.dl_yielded 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.flags 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->cpu s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->nr_pinned 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->nr_running 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->online s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->push_busy 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->push_cpu s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->sched_count 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->ttwu_count 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->ttwu_local 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->dl.rq->yld_count 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->nr_cpus_allowed s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->numa_scan_period 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->on_rq 0-1,3-255
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->psi_flags 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->recent_used_cpu s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->rt.on_list 0-u16max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->rt.on_rq 0-u16max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->rt.time_slice 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->sched_migrated 1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->throttled 0-1
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->proto_lock.writer.task->wake_cpu 0-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->disc_data->refcnt.refs.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->kref.refcount.refs.counter s32min-s32max
PARAM_VALUE 0 tty->driver_data->port.tty->ldisc_sem.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->port.xmit_fifo.kfifo.esize 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.xmit_fifo.kfifo.mask 0-4294967295
PARAM_VALUE 0 tty->driver_data->port.xmit_fifo.kfifo.out 0-4294967295
PARAM_VALUE 0 tty->driver_data->port_write_buf.kfifo.esize 0-4294967295
PARAM_VALUE 0 tty->driver_data->port_write_buf.kfifo.mask 0-4294967295
PARAM_VALUE 0 tty->driver_data->port_write_buf.kfifo.out 0-4294967295
PARAM_VALUE 0 tty->driver_data->read_status_mask 35,47,51,63
PARAM_VALUE 0 tty->driver_data->rx_enable 0
PARAM_VALUE 0 tty->driver_data->timeout 0-4294967295
PARAM_VALUE 0 tty->driver_data->tx_boundary 0-4294967295
PARAM_VALUE 0 tty->driver_data->tx_running 0
PARAM_VALUE 0 tty->driver_data->uart_port->hw_stopped 0-1
PARAM_VALUE 0 tty->driver_data->uart_port->lock.rlock.dep_map->name 0-255
PARAM_VALUE 0 tty->driver_data->uart_port->mctrl 0-4294967295
PARAM_VALUE 0 tty->driver_data->uart_port->status 0-4294967295
PARAM_VALUE 0 tty->driver_data->write_busy 0
PARAM_VALUE 0 tty->driver_data->write_started s32min-s32max
PARAM_VALUE 0 tty->ldisc 1-u64max
PARAM_VALUE 0 tty->ops 4096-ptr_max
PARAM_VALUE 0 tty->ops->set_termios 0,4096-ptr_max
PARAM_VALUE 0 tty->ops->wait_until_sent 0,2578158375326154752,2614800216018440192,6874988682411192320,7074827580452507648,7916194843820081152
PARAM_VALUE 0 tty->termios_rwsem.dep_map->name 0-255
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->handoff_set 1
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.next 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->list.prev 2212933610777083904
PARAM_VALUE 0 tty->termios_rwsem.first_waiter->type 0-1
PARAM_VALUE 0 tty->termios_rwsem.wait_lock.dep_map->name 0-255
PARAM_VALUE 0 *tty->driver_data->port.tty->disc_data->proto_lock.read_count 0-4294967295
PARAM_VALUE 0 *tty->termios->c_cc 0-255
CAPPED_DATA 0 &tty->termios_rwsem 1
DATA_SOURCE 0 tty $0
NOCHECK_CALL
USER_DATA 0 tty->disc_data->icanon 0-1
USER_DATA 0 tty->driver_data->clocal 0-1
USER_DATA 0 tty->driver_data->line.bParityType 1-4[c]
USER_DATA 0 tty->driver_data->line.dwDTERate 0-4294967295
USER_DATA 0 tty->driver_data->line_coding.parity 1-4[c]
USER_DATA 0 tty->driver_data->line_coding.rate 0-4294967295
USER_DATA 0 tty->driver_data->timeout 5-320005[c]
USER_DATA 0 tty->driver_data->vc_pos s64min-s64max
USER_DATA 0 tty->driver_data->vc_utf_char s32min-s32max[c]
USER_DATA 0 tty->termios.c_cflag 0-u32max[c]
USER_DATA 0 tty->termios.c_iflag 0-u32max[c]
USER_DATA 0 tty->termios.c_ispeed 0-u32max
USER_DATA 0 tty->termios.c_lflag 0-u32max[c]
USER_DATA 0 tty->termios.c_line 0-255
USER_DATA 0 tty->termios.c_oflag 0-u32max[c]
USER_DATA 0 tty->termios.c_ospeed 0-u32max
LOCK2 &tty->ldisc_sem
LOCK2 0 &tty->atomic_write_lock
HALF_LOCKED2 0 &tty->ldisc_sem
TYPE_LOCK (struct tty_struct)->atomic_write_lock