Defined in 1 files as a function:

Referenced in 10 files:

Smatch caller information:

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_c2h_ra_rpt_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_ra_recalc_agg_limit() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_ra_update_sta() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_set_mcc_dig_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_stat_rssi_update_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/phy.c rtw89_phy_tx_path_div_sta_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/wow.c rtw89_wow_cfg_wake() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
DATA_SOURCE 0 sta r ieee80211_find_sta
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &rdev->wiphy.mtx
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/realtek/rtw89/wow.c rtw89_wow_swap_fw() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
DATA_SOURCE 0 sta r ieee80211_find_sta
RX_PATH
TASK_NOT_RUNNING
LOCK2 global &rtnl_mutex
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &rdev->wiphy.mtx
TYPE_LOCK (struct wiphy)->mtx

drivers/net/wireless/realtek/rtw89/cam.c sta_to_rtwsta_safe() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 0,600
BUF_SIZE 0 sta 0,600
DATA_SOURCE 0 sta $0
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/realtek/rtw89/chan.c rtw89_mcc_role_macid_sta_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/ser.c ser_sta_deinit_cam_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/debug.c rtw89_sta_ids_get_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/debug.c rtw89_sta_info_get_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/mac80211.c __rtw89_ops_sta_add() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $2
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 sta->mfp 0-1
USER_DATA 0 sta->spp_amsdu 0-1[c]
USER_DATA 0 sta->wme 0-1[c]
NO_OVERFLOW_SIMPLE 0 sta->valid_links
USER_PTR 0 sta->addr

drivers/net/wireless/realtek/rtw89/mac80211.c __rtw89_ops_sta_assoc() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
DATA_SOURCE 0 sta $2
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/realtek/rtw89/mac80211.c __rtw89_ops_sta_disassoc() -> sta_to_rtwsta()

Type Parameter Key Value
DATA_SOURCE 0 sta $2

drivers/net/wireless/realtek/rtw89/mac80211.c __rtw89_ops_sta_disconnect() -> sta_to_rtwsta()

Type Parameter Key Value
DATA_SOURCE 0 sta $2

drivers/net/wireless/realtek/rtw89/mac80211.c __rtw89_ops_sta_remove() -> sta_to_rtwsta()

Type Parameter Key Value
DATA_SOURCE 0 sta $2

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_ampdu_action() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_change_sta_links() -> sta_to_rtwsta()

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

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_set_tim() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 sta->mfp 0-1
USER_DATA 0 sta->spp_amsdu 0-1[c]
USER_DATA 0 sta->wme 0-1[c]
USER_PTR 0 sta->addr
LOCK2 &local->tim_lock
LOCK2 bh
TYPE_LOCK (struct ieee80211_local)->tim_lock

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_sta_rc_update() -> sta_to_rtwsta()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 rcu_read

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_sta_statistics() -> sta_to_rtwsta()

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

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ops_tx() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 1-u64max
TASK_NOT_RUNNING
HALF_LOCKED2 &local->handle_wake_tx_queue_lock
HALF_LOCKED2 rcu_read

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_ra_mask_info_update_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/mac80211.c rtw89_set_tid_config_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/coex.c rtw89_btc_ntfy_wl_sta_iter() -> sta_to_rtwsta()

Type Parameter Key Value
DATA_SOURCE 0 sta $1

drivers/net/wireless/realtek/rtw89/coex.c rtw89_tx_time_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/mac.c rtw89_mac_bf_monitor_calc_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/mac.c rtw89_mac_pkt_drop_vif_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_free_sta_pending_roc_tx() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
CAPPED_DATA 0 sta 1
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 sta->mfp 0-1
USER_DATA 0 sta->spp_amsdu 0-1[c]
USER_DATA 0 sta->wme 0-1[c]
USER_PTR 0 sta->addr

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_rx_process_phy_ppdu_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_send_nullfunc() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
DATA_SOURCE 0 sta r ieee80211_find_sta
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_sta_pending_tx_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_stats_sta_rx_status_iter() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
DATA_SOURCE 0 sta $1
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ar->conf_mutex
HALF_LOCKED2 &dev->mt76.mutex
HALF_LOCKED2 &file->lock
HALF_LOCKED2 &local->hw.wiphy->mtx
HALF_LOCKED2 &mvm->mutex
HALF_LOCKED2 &mvmsta->deflink.lq_sta.rs_drv.pers.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &priv->sta_mutex
HALF_LOCKED2 &rtwdev->hw->wiphy->mtx
HALF_LOCKED2 &rtwdev->mutex
HALF_LOCKED2 bh
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/core.c rtw89_core_tid_rx_stats_reset() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 4096-ptr_max
BUF_SIZE 0 sta 600
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 global &rtnl_mutex

drivers/net/wireless/realtek/rtw89/core.c sta_to_rtwsta_safe() -> sta_to_rtwsta()

Type Parameter Key Value
PARAM_VALUE 0 sta 1-u64max
BUF_SIZE 0 sta (-1)-0,600
BUF_SIZE 0 sta (-1)-0,600
DATA_SOURCE 0 sta $0
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &rtwdev->ba_lock
HALF_LOCKED2 bh
HALF_LOCKED2 rcu_read