diff options
author | Johannes Berg <johannes@sipsolutions.net> | 2007-12-18 19:31:26 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:09:36 -0500 |
commit | 32bfd35d4b63bd63de4bb0d791ef049c3c868726 (patch) | |
tree | c1c213a35a00bcbe71a2ecc6521e19dec66cf6eb /net/mac80211/ieee80211_i.h | |
parent | f653211197f3841f383fa9757ef8ce182c6cf627 (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.h | 8 |
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 | ||
394 | static inline | ||
395 | struct 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 | ||
394 | enum { | 402 | enum { |