aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/ieee80211_i.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-12-18 19:31:26 -0500
committerDavid S. Miller <davem@davemloft.net>2008-01-28 18:09:36 -0500
commit32bfd35d4b63bd63de4bb0d791ef049c3c868726 (patch)
treec1c213a35a00bcbe71a2ecc6521e19dec66cf6eb /net/mac80211/ieee80211_i.h
parentf653211197f3841f383fa9757ef8ce182c6cf627 (diff)
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>
Diffstat (limited to 'net/mac80211/ieee80211_i.h')
-rw-r--r--net/mac80211/ieee80211_i.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
index b898b316bda1..c551a7f379e0 100644
--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
@@ -387,8 +387,16 @@ struct ieee80211_sub_if_data {
387 struct dentry *default_key; 387 struct dentry *default_key;
388 } debugfs; 388 } debugfs;
389#endif 389#endif
390 /* must be last, dynamically sized area in this! */
391 struct ieee80211_vif vif;
390}; 392};
391 393
394static inline
395struct ieee80211_sub_if_data *vif_to_sdata(struct ieee80211_vif *p)
396{
397 return container_of(p, struct ieee80211_sub_if_data, vif);
398}
399
392#define IEEE80211_DEV_TO_SUB_IF(dev) netdev_priv(dev) 400#define IEEE80211_DEV_TO_SUB_IF(dev) netdev_priv(dev)
393 401
394enum { 402enum {