Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

drivers/net/wireless/mediatek/mt76/mt7996/init.c mt7996_init_wiphy() -> mt7996_hw_dev()

Type Parameter Key Value
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock

drivers/net/wireless/mediatek/mt76/mt7996/init.c mt7996_regd_notifier() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
BUF_SIZE 0 hw 208
DATA_SOURCE 0 hw r wiphy_to_ieee80211_hw
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &wiphy->mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/mcu.c mt7996_mcu_add_beacon() -> mt7996_hw_dev()

Type Parameter Key Value
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mt76.mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c __mt7996_get_tsf() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
PARAM_VALUE 0 hw->priv 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mt76.mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_add_interface() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_ampdu_action() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_change_vif_links() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_channel_switch_beacon() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_configure_filter() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_get_et_stats() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
LOCK2 &local->hw.wiphy->mtx
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_get_stats() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
LOCK2 &local->hw.wiphy->mtx
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_get_tsf() -> mt7996_hw_dev()

Type Parameter Key Value
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_get_txpower() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->wiphy.mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_link_info_changed() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_link_sta_rc_update() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_mac_sta_change_links() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_net_fill_forward_path() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &flow_offload_mutex
HALF_LOCKED2 global &mtk_flow_offload_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_net_setup_tc() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &block->cb_lock
HALF_LOCKED2 &flowtable->flow_block_lock
HALF_LOCKED2 &nft_net->commit_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_offset_tsf() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->wiphy.mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_post_channel_switch() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_reconfig_complete() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_remove_interface() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &local->iflist_mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_antenna() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &rdev->wiphy.mtx
HALF_LOCKED2 &dev->ethtool->rss_lock
HALF_LOCKED2 &dev->lock
HALF_LOCKED2 &devlink->lock
HALF_LOCKED2 &net->xfrm.xfrm_cfg_mutex
HALF_LOCKED2 global &audit_cmd_mutex.lock
HALF_LOCKED2 global &cb_lock
HALF_LOCKED2 global &crypto_cfg_mutex
HALF_LOCKED2 global &dpll_lock
HALF_LOCKED2 global &hwsim_phys_lock
HALF_LOCKED2 global &net_dm_mutex
HALF_LOCKED2 global &rx_queue_mutex
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_bitrate_mask() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->wiphy.mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_coverage_class() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->wiphy.mtx
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_eml_op_mode() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->wiphy.mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_hw_key() -> mt7996_hw_dev()

Type Parameter Key Value
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &dev->mt76.mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_key() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_radar_background() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->wiphy.mtx
HALF_LOCKED2 &wiphy->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_rts_threshold() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &rdev->wiphy.mtx
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_set_tsf() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->wiphy.mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_sta_set_4addr() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_sta_set_decap_offload() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_sta_state() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_sta_statistics() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &rdev->wiphy.mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_start() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_twt_teardown_request() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->wiphy.mtx

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_tx() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
TASK_NOT_RUNNING
HALF_LOCKED2 &local->handle_wake_tx_queue_lock
HALF_LOCKED2 rcu_read

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_update_mu_group() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
PARAM_VALUE 0 hw->priv 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
LOCK2 &dev->mt76.mutex
TYPE_LOCK (struct mt76_dev)->mutex

drivers/net/wireless/mediatek/mt76/mt7996/main.c mt7996_vif_cfg_changed() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/mediatek/mt76/mt7996/mac.c mt7996_mac_add_twt_setup() -> mt7996_hw_dev()

Type Parameter Key Value
PARAM_VALUE 0 hw 4096-ptr_max
DATA_SOURCE 0 hw $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rdev->wiphy.mtx