staging: wfx: fix (future) TDLS support
The device does not expect that the AP to have a link-id. However, TDLS peers should have a a link-id. The driver does not yet declare itself as supporting TDLS. Notwithstanding, fix the code in anticipation of the support of TDLS. Signed-off-by: Jérôme Pouiller <jerome.pouiller@silabs.com> Link: https://lore.kernel.org/r/20200427134031.323403-2-Jerome.Pouiller@silabs.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
2405c85691
commit
7508f5d90d
@ -384,9 +384,8 @@ int wfx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
spin_lock_init(&sta_priv->lock);
|
||||
sta_priv->vif_id = wvif->id;
|
||||
|
||||
// FIXME: in station mode, the current API interprets new link-id as a
|
||||
// tdls peer.
|
||||
if (vif->type == NL80211_IFTYPE_STATION)
|
||||
// In station mode, the firmware interprets new link-id as a TDLS peer.
|
||||
if (vif->type == NL80211_IFTYPE_STATION && !sta->tdls)
|
||||
return 0;
|
||||
sta_priv->link_id = ffz(wvif->link_id_map);
|
||||
wvif->link_id_map |= BIT(sta_priv->link_id);
|
||||
@ -408,8 +407,8 @@ int wfx_sta_remove(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
|
||||
if (sta_priv->buffered[i])
|
||||
dev_warn(wvif->wdev->dev, "release station while %d pending frame on queue %d",
|
||||
sta_priv->buffered[i], i);
|
||||
// FIXME: see note in wfx_sta_add()
|
||||
if (vif->type == NL80211_IFTYPE_STATION)
|
||||
// See note in wfx_sta_add()
|
||||
if (!sta_priv->link_id)
|
||||
return 0;
|
||||
// FIXME add a mutex?
|
||||
hif_map_link(wvif, sta->addr, 1, sta_priv->link_id);
|
||||
|
Reference in New Issue
Block a user