Defined in 1 files as a prototype:

Defined in 2 files as a function:

Referenced in 7 files:

Smatch caller information:

drivers/net/wireless/intel/iwlwifi/dvm/rs.c iwl_rs_rate_init() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/dvm/rs.c iwl_rs_rate_init() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
HALF_LOCKED2 global &rtnl_mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_fill_link_cmd() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_fill_link_cmd() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_get_lower_rate() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->mutex
HALF_LOCKED2 &sta->rate_ctrl_lock
HALF_LOCKED2 bh

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_initialize_lq() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_move_legacy_other() -> first_antenna()

Type Parameter Key Value
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_move_legacy_other() -> first_antenna()

Type Parameter Key Value
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_move_siso_to_other() -> first_antenna()

Type Parameter Key Value
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/rs.c rs_move_siso_to_other() -> first_antenna()

Type Parameter Key Value
TASK_NOT_RUNNING
LOCK2 &sta->rate_ctrl_lock
LOCK2 bh
HALF_LOCKED2 &dev->mac_lock
HALF_LOCKED2 &dev->mt76.rx_lock
HALF_LOCKED2 &dev->rx_lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct sta_info)->rate_ctrl_lock

drivers/net/wireless/intel/iwlwifi/dvm/tx.c iwlagn_tx_cmd_build_rate() -> first_antenna()

Type Parameter Key Value
TASK_NOT_RUNNING
HALF_LOCKED2 &local->handle_wake_tx_queue_lock
HALF_LOCKED2 rcu_read

drivers/net/wireless/intel/iwlwifi/dvm/sta.c iwl_sta_fill_lq() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->mutex
HALF_LOCKED2 &priv->sta_lock
HALF_LOCKED2 bh

drivers/net/wireless/intel/iwlwifi/dvm/sta.c iwl_sta_fill_lq() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->mutex
HALF_LOCKED2 &priv->sta_lock
HALF_LOCKED2 bh

drivers/net/wireless/intel/iwlwifi/dvm/sta.c iwl_sta_fill_lq() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->mutex
HALF_LOCKED2 &priv->sta_lock
HALF_LOCKED2 bh

drivers/net/wireless/intel/iwlwifi/dvm/scan.c iwlagn_request_scan() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/dvm/scan.c iwlagn_request_scan() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/dvm/scan.c iwlagn_request_scan() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
LOCK2 &priv->mutex
TYPE_LOCK (struct iwl_priv)->mutex

drivers/net/wireless/intel/iwlwifi/mvm/rs.c rs_get_initial_rate() -> first_antenna()

Type Parameter Key Value
DATA_SOURCE 0 mask r iwl_mvm_get_valid_tx_ant
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
LOCK2 bh
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &sta->rate_ctrl_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct lq_sta_pers)->lock

drivers/net/wireless/intel/iwlwifi/mvm/rs.c rs_get_lower_rate_down_column() -> first_antenna()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
LOCK2 bh
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &sta->rate_ctrl_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct lq_sta_pers)->lock

drivers/net/wireless/intel/iwlwifi/dvm/lib.c iwlagn_set_rxon_chain() -> first_antenna()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &priv->mutex
HALF_LOCKED2 global &iwlwifi_opmode_table_mtx
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/intel/iwlwifi/mvm/coex.c iwl_mvm_bt_coex_get_single_ant_msk() -> first_antenna()

Type Parameter Key Value
DATA_SOURCE 0 mask $1
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
LOCK2 bh
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &sta->rate_ctrl_lock
HALF_LOCKED2 rcu_read
TYPE_LOCK (struct lq_sta_pers)->lock