diff options
author | Johannes Berg <johannes.berg@intel.com> | 2010-08-27 06:35:58 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2010-08-27 13:53:31 -0400 |
commit | 34d4bc4d41d282a66dafe1b01a7d46bad468cefb (patch) | |
tree | ac0936b00f1ebd037be32fd0e5f304f26366e6c0 /net/mac80211/driver-trace.h | |
parent | 87490f6db38999fee7f6d3dbecc5b94730c7e010 (diff) |
mac80211: support runtime interface type changes
Add support to mac80211 for changing the interface
type even when the interface is UP, if the driver
supports it.
To achieve this
* add a new driver callback for switching,
* split some of the interface up/down code out
into new functions (do_open/do_stop), and
* maintain an own __SDATA_RUNNING bit that will
not be set during interface type, so that any
other code doesn't use the interface.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/driver-trace.h')
-rw-r--r-- | net/mac80211/driver-trace.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h index b5a95582d816..f6f3d89e43fa 100644 --- a/net/mac80211/driver-trace.h +++ b/net/mac80211/driver-trace.h | |||
@@ -136,6 +136,31 @@ TRACE_EVENT(drv_add_interface, | |||
136 | ) | 136 | ) |
137 | ); | 137 | ); |
138 | 138 | ||
139 | TRACE_EVENT(drv_change_interface, | ||
140 | TP_PROTO(struct ieee80211_local *local, | ||
141 | struct ieee80211_sub_if_data *sdata, | ||
142 | enum nl80211_iftype type), | ||
143 | |||
144 | TP_ARGS(local, sdata, type), | ||
145 | |||
146 | TP_STRUCT__entry( | ||
147 | LOCAL_ENTRY | ||
148 | VIF_ENTRY | ||
149 | __field(u32, new_type) | ||
150 | ), | ||
151 | |||
152 | TP_fast_assign( | ||
153 | LOCAL_ASSIGN; | ||
154 | VIF_ASSIGN; | ||
155 | __entry->new_type = type; | ||
156 | ), | ||
157 | |||
158 | TP_printk( | ||
159 | LOCAL_PR_FMT VIF_PR_FMT " new type:%d", | ||
160 | LOCAL_PR_ARG, VIF_PR_ARG, __entry->new_type | ||
161 | ) | ||
162 | ); | ||
163 | |||
139 | TRACE_EVENT(drv_remove_interface, | 164 | TRACE_EVENT(drv_remove_interface, |
140 | TP_PROTO(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata), | 165 | TP_PROTO(struct ieee80211_local *local, struct ieee80211_sub_if_data *sdata), |
141 | 166 | ||