Defined in 1 files as a function:

Referenced in 17 files:

Smatch caller information:

drivers/net/wireless/mediatek/mt76/mt76x0/pci.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/wireless/mediatek/mt76/sdio.c mt76s_status_worker() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/sdio.c mt76s_status_worker() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/sdio.c mt76s_tx_kick() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &mdev->mcu.mutex
HALF_LOCKED2 &q->lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/sdio.c mt76s_tx_status_data() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7603/dma.c mt7603_poll_tx() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt76x2/pci.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/wireless/mediatek/mt76/mt76_connac_mac.c mt76_connac_pm_dequeue_skbs() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/mt7921/sdio_mac.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/mt76x02_mmio.c mt76x02_poll_tx() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/usb.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/usb.c mt76u_complete_rx() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &q->lock
LOCK2 flags
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_queue)->lock

drivers/net/wireless/mediatek/mt76/usb.c mt76u_complete_tx() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/usb.c mt76u_status_worker() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7615/pci_mac.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/tx.c __mt76_set_tx_blocked() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->token_lock
LOCK2 bh
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct mt76_dev)->token_lock

drivers/net/wireless/mediatek/mt76/tx.c __mt76_tx_complete_skb() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 rcu_read
HALF_LOCKED2 bh

drivers/net/wireless/mediatek/mt76/tx.c mt76_sta_ps_transition() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/tx.c mt76_sta_ps_transition() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/tx.c mt76_tx() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &pm->txq_lock
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/tx.c mt76_wake_tx_queue() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 bh
HALF_LOCKED2 flags
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7921/pci.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fsm->lock

drivers/net/wireless/mediatek/mt76/mac80211.c __mt76_set_channel() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 0,4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mac80211.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/wireless/mediatek/mt76/mt7921/usb.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7921/sdio.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fsm->lock

drivers/net/wireless/mediatek/mt76/mt7921/sdio.c mt7921s_suspend() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7603/mac.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/wireless/mediatek/mt76/mt7925/mac.c mt7925_mac_tx_free() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7915/mac.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7915/mac.c mt7915_mac_tx_free_done() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7915/mcu.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7921/mac.c mt7921_mac_tx_free() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7615/sdio.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &fsm->lock

drivers/net/wireless/mediatek/mt76/mt792x_mac.c mt792x_pm_wake_work() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/testmode.c mt76_testmode_tx_start() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/testmode.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &dev->mutex
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7925/usb.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7996/mac.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
NOCHECK_CALL
LOCK2 &dev->mt76.mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7996/mac.c mt7996_mac_tx_free() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7615/pci.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &dev->mutex

drivers/net/wireless/mediatek/mt76/sdio_txrx.c mt76s_rx_handler() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/sdio_txrx.c mt76s_rx_handler() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/sdio_txrx.c mt76s_sdio_irq() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/sdio_txrx.c mt76s_tx_run_queue() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7925/pci.c mt76_worker_enable() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
PARAM_VALUE 0 w->task 4096-ptr_max
PARAM_VALUE 0 w->task->worker_private 4096-ptr_max
CAPPED_DATA 0 w->task 1
DATA_SOURCE 0 w $0
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
HALF_LOCKED2 &device->mutex

drivers/net/wireless/mediatek/mt76/mt7615/mac.c mt7615_mac_tx_free() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL

drivers/net/wireless/mediatek/mt76/mt7615/mac.c mt7615_pm_wake_work() -> mt76_worker_schedule()

Type Parameter Key Value
PARAM_VALUE 0 w 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock