mac80211: dont use interface indices in drivers
This patch gets rid of the if_id stuff where possible in favour of a new per-virtual-interface structure "struct ieee80211_vif". This structure is located at the end of the per-interface structure and contains a variable length driver-use data area. This has two advantages: * removes the need to look up interfaces by if_id, this is better for working with network namespaces and performance * allows drivers to store and retrieve per-interface data without having to allocate own lists/hash tables Signed-off-by: Johannes Berg <johannes@sipsolutions.net> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
committed by
David S. Miller
parent
f653211197
commit
32bfd35d4b
@@ -221,7 +221,7 @@ static void generate_txhdr_fw4(struct b43_wldev *dev,
|
||||
} else {
|
||||
int fbrate_base100kbps = B43_RATE_TO_BASE100KBPS(rate_fb);
|
||||
txhdr->dur_fb = ieee80211_generic_frame_duration(dev->wl->hw,
|
||||
dev->wl->if_id,
|
||||
txctl->vif,
|
||||
fragment_len,
|
||||
fbrate_base100kbps);
|
||||
}
|
||||
@@ -312,7 +312,7 @@ static void generate_txhdr_fw4(struct b43_wldev *dev,
|
||||
rts_rate_fb_ofdm = b43_is_ofdm_rate(rts_rate_fb);
|
||||
|
||||
if (txctl->flags & IEEE80211_TXCTL_USE_CTS_PROTECT) {
|
||||
ieee80211_ctstoself_get(dev->wl->hw, dev->wl->if_id,
|
||||
ieee80211_ctstoself_get(dev->wl->hw, txctl->vif,
|
||||
fragment_data, fragment_len,
|
||||
txctl,
|
||||
(struct ieee80211_cts *)(txhdr->
|
||||
@@ -320,7 +320,7 @@ static void generate_txhdr_fw4(struct b43_wldev *dev,
|
||||
mac_ctl |= B43_TX4_MAC_SENDCTS;
|
||||
len = sizeof(struct ieee80211_cts);
|
||||
} else {
|
||||
ieee80211_rts_get(dev->wl->hw, dev->wl->if_id,
|
||||
ieee80211_rts_get(dev->wl->hw, txctl->vif,
|
||||
fragment_data, fragment_len, txctl,
|
||||
(struct ieee80211_rts *)(txhdr->
|
||||
rts_frame));
|
||||
|
Reference in New Issue
Block a user