aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/mac80211/driver-ops.h89
-rw-r--r--net/mac80211/driver-trace.h189
2 files changed, 156 insertions, 122 deletions
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index a4fcbcc4f458..965d64f68567 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -16,10 +16,11 @@ static inline int drv_start(struct ieee80211_local *local)
16 16
17 might_sleep(); 17 might_sleep();
18 18
19 trace_drv_start(local);
19 local->started = true; 20 local->started = true;
20 smp_mb(); 21 smp_mb();
21 ret = local->ops->start(&local->hw); 22 ret = local->ops->start(&local->hw);
22 trace_drv_start(local, ret); 23 trace_drv_return_int(local, ret);
23 return ret; 24 return ret;
24} 25}
25 26
@@ -27,8 +28,9 @@ static inline void drv_stop(struct ieee80211_local *local)
27{ 28{
28 might_sleep(); 29 might_sleep();
29 30
30 local->ops->stop(&local->hw);
31 trace_drv_stop(local); 31 trace_drv_stop(local);
32 local->ops->stop(&local->hw);
33 trace_drv_return_void(local);
32 34
33 /* sync away all work on the tasklet before clearing started */ 35 /* sync away all work on the tasklet before clearing started */
34 tasklet_disable(&local->tasklet); 36 tasklet_disable(&local->tasklet);
@@ -46,8 +48,9 @@ static inline int drv_add_interface(struct ieee80211_local *local,
46 48
47 might_sleep(); 49 might_sleep();
48 50
51 trace_drv_add_interface(local, vif_to_sdata(vif));
49 ret = local->ops->add_interface(&local->hw, vif); 52 ret = local->ops->add_interface(&local->hw, vif);
50 trace_drv_add_interface(local, vif_to_sdata(vif), ret); 53 trace_drv_return_int(local, ret);
51 return ret; 54 return ret;
52} 55}
53 56
@@ -56,8 +59,9 @@ static inline void drv_remove_interface(struct ieee80211_local *local,
56{ 59{
57 might_sleep(); 60 might_sleep();
58 61
59 local->ops->remove_interface(&local->hw, vif);
60 trace_drv_remove_interface(local, vif_to_sdata(vif)); 62 trace_drv_remove_interface(local, vif_to_sdata(vif));
63 local->ops->remove_interface(&local->hw, vif);
64 trace_drv_return_void(local);
61} 65}
62 66
63static inline int drv_config(struct ieee80211_local *local, u32 changed) 67static inline int drv_config(struct ieee80211_local *local, u32 changed)
@@ -66,8 +70,9 @@ static inline int drv_config(struct ieee80211_local *local, u32 changed)
66 70
67 might_sleep(); 71 might_sleep();
68 72
73 trace_drv_config(local, changed);
69 ret = local->ops->config(&local->hw, changed); 74 ret = local->ops->config(&local->hw, changed);
70 trace_drv_config(local, changed, ret); 75 trace_drv_return_int(local, ret);
71 return ret; 76 return ret;
72} 77}
73 78
@@ -78,9 +83,10 @@ static inline void drv_bss_info_changed(struct ieee80211_local *local,
78{ 83{
79 might_sleep(); 84 might_sleep();
80 85
86 trace_drv_bss_info_changed(local, sdata, info, changed);
81 if (local->ops->bss_info_changed) 87 if (local->ops->bss_info_changed)
82 local->ops->bss_info_changed(&local->hw, &sdata->vif, info, changed); 88 local->ops->bss_info_changed(&local->hw, &sdata->vif, info, changed);
83 trace_drv_bss_info_changed(local, sdata, info, changed); 89 trace_drv_return_void(local);
84} 90}
85 91
86struct in_ifaddr; 92struct in_ifaddr;
@@ -92,11 +98,11 @@ static inline int drv_configure_arp_filter(struct ieee80211_local *local,
92 98
93 might_sleep(); 99 might_sleep();
94 100
101 trace_drv_configure_arp_filter(local, vif_to_sdata(vif));
95 if (local->ops->configure_arp_filter) 102 if (local->ops->configure_arp_filter)
96 ret = local->ops->configure_arp_filter(&local->hw, vif, 103 ret = local->ops->configure_arp_filter(&local->hw, vif,
97 ifa_list); 104 ifa_list);
98 105 trace_drv_return_int(local, ret);
99 trace_drv_configure_arp_filter(local, vif_to_sdata(vif), ifa_list, ret);
100 return ret; 106 return ret;
101} 107}
102 108
@@ -105,10 +111,12 @@ static inline u64 drv_prepare_multicast(struct ieee80211_local *local,
105{ 111{
106 u64 ret = 0; 112 u64 ret = 0;
107 113
114 trace_drv_prepare_multicast(local, mc_list->count);
115
108 if (local->ops->prepare_multicast) 116 if (local->ops->prepare_multicast)
109 ret = local->ops->prepare_multicast(&local->hw, mc_list); 117 ret = local->ops->prepare_multicast(&local->hw, mc_list);
110 118
111 trace_drv_prepare_multicast(local, mc_list->count, ret); 119 trace_drv_return_u64(local, ret);
112 120
113 return ret; 121 return ret;
114} 122}
@@ -120,19 +128,21 @@ static inline void drv_configure_filter(struct ieee80211_local *local,
120{ 128{
121 might_sleep(); 129 might_sleep();
122 130
123 local->ops->configure_filter(&local->hw, changed_flags, total_flags,
124 multicast);
125 trace_drv_configure_filter(local, changed_flags, total_flags, 131 trace_drv_configure_filter(local, changed_flags, total_flags,
126 multicast); 132 multicast);
133 local->ops->configure_filter(&local->hw, changed_flags, total_flags,
134 multicast);
135 trace_drv_return_void(local);
127} 136}
128 137
129static inline int drv_set_tim(struct ieee80211_local *local, 138static inline int drv_set_tim(struct ieee80211_local *local,
130 struct ieee80211_sta *sta, bool set) 139 struct ieee80211_sta *sta, bool set)
131{ 140{
132 int ret = 0; 141 int ret = 0;
142 trace_drv_set_tim(local, sta, set);
133 if (local->ops->set_tim) 143 if (local->ops->set_tim)
134 ret = local->ops->set_tim(&local->hw, sta, set); 144 ret = local->ops->set_tim(&local->hw, sta, set);
135 trace_drv_set_tim(local, sta, set, ret); 145 trace_drv_return_int(local, ret);
136 return ret; 146 return ret;
137} 147}
138 148
@@ -146,8 +156,9 @@ static inline int drv_set_key(struct ieee80211_local *local,
146 156
147 might_sleep(); 157 might_sleep();
148 158
159 trace_drv_set_key(local, cmd, sdata, sta, key);
149 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key); 160 ret = local->ops->set_key(&local->hw, cmd, &sdata->vif, sta, key);
150 trace_drv_set_key(local, cmd, sdata, sta, key, ret); 161 trace_drv_return_int(local, ret);
151 return ret; 162 return ret;
152} 163}
153 164
@@ -162,10 +173,11 @@ static inline void drv_update_tkip_key(struct ieee80211_local *local,
162 if (sta) 173 if (sta)
163 ista = &sta->sta; 174 ista = &sta->sta;
164 175
176 trace_drv_update_tkip_key(local, sdata, conf, ista, iv32);
165 if (local->ops->update_tkip_key) 177 if (local->ops->update_tkip_key)
166 local->ops->update_tkip_key(&local->hw, &sdata->vif, conf, 178 local->ops->update_tkip_key(&local->hw, &sdata->vif, conf,
167 ista, iv32, phase1key); 179 ista, iv32, phase1key);
168 trace_drv_update_tkip_key(local, sdata, conf, ista, iv32); 180 trace_drv_return_void(local);
169} 181}
170 182
171static inline int drv_hw_scan(struct ieee80211_local *local, 183static inline int drv_hw_scan(struct ieee80211_local *local,
@@ -176,8 +188,9 @@ static inline int drv_hw_scan(struct ieee80211_local *local,
176 188
177 might_sleep(); 189 might_sleep();
178 190
191 trace_drv_hw_scan(local, sdata, req);
179 ret = local->ops->hw_scan(&local->hw, &sdata->vif, req); 192 ret = local->ops->hw_scan(&local->hw, &sdata->vif, req);
180 trace_drv_hw_scan(local, sdata, req, ret); 193 trace_drv_return_int(local, ret);
181 return ret; 194 return ret;
182} 195}
183 196
@@ -185,18 +198,20 @@ static inline void drv_sw_scan_start(struct ieee80211_local *local)
185{ 198{
186 might_sleep(); 199 might_sleep();
187 200
201 trace_drv_sw_scan_start(local);
188 if (local->ops->sw_scan_start) 202 if (local->ops->sw_scan_start)
189 local->ops->sw_scan_start(&local->hw); 203 local->ops->sw_scan_start(&local->hw);
190 trace_drv_sw_scan_start(local); 204 trace_drv_return_void(local);
191} 205}
192 206
193static inline void drv_sw_scan_complete(struct ieee80211_local *local) 207static inline void drv_sw_scan_complete(struct ieee80211_local *local)
194{ 208{
195 might_sleep(); 209 might_sleep();
196 210
211 trace_drv_sw_scan_complete(local);
197 if (local->ops->sw_scan_complete) 212 if (local->ops->sw_scan_complete)
198 local->ops->sw_scan_complete(&local->hw); 213 local->ops->sw_scan_complete(&local->hw);
199 trace_drv_sw_scan_complete(local); 214 trace_drv_return_void(local);
200} 215}
201 216
202static inline int drv_get_stats(struct ieee80211_local *local, 217static inline int drv_get_stats(struct ieee80211_local *local,
@@ -228,9 +243,10 @@ static inline int drv_set_rts_threshold(struct ieee80211_local *local,
228 243
229 might_sleep(); 244 might_sleep();
230 245
246 trace_drv_set_rts_threshold(local, value);
231 if (local->ops->set_rts_threshold) 247 if (local->ops->set_rts_threshold)
232 ret = local->ops->set_rts_threshold(&local->hw, value); 248 ret = local->ops->set_rts_threshold(&local->hw, value);
233 trace_drv_set_rts_threshold(local, value, ret); 249 trace_drv_return_int(local, ret);
234 return ret; 250 return ret;
235} 251}
236 252
@@ -240,12 +256,13 @@ static inline int drv_set_coverage_class(struct ieee80211_local *local,
240 int ret = 0; 256 int ret = 0;
241 might_sleep(); 257 might_sleep();
242 258
259 trace_drv_set_coverage_class(local, value);
243 if (local->ops->set_coverage_class) 260 if (local->ops->set_coverage_class)
244 local->ops->set_coverage_class(&local->hw, value); 261 local->ops->set_coverage_class(&local->hw, value);
245 else 262 else
246 ret = -EOPNOTSUPP; 263 ret = -EOPNOTSUPP;
247 264
248 trace_drv_set_coverage_class(local, value, ret); 265 trace_drv_return_int(local, ret);
249 return ret; 266 return ret;
250} 267}
251 268
@@ -254,9 +271,10 @@ static inline void drv_sta_notify(struct ieee80211_local *local,
254 enum sta_notify_cmd cmd, 271 enum sta_notify_cmd cmd,
255 struct ieee80211_sta *sta) 272 struct ieee80211_sta *sta)
256{ 273{
274 trace_drv_sta_notify(local, sdata, cmd, sta);
257 if (local->ops->sta_notify) 275 if (local->ops->sta_notify)
258 local->ops->sta_notify(&local->hw, &sdata->vif, cmd, sta); 276 local->ops->sta_notify(&local->hw, &sdata->vif, cmd, sta);
259 trace_drv_sta_notify(local, sdata, cmd, sta); 277 trace_drv_return_void(local);
260} 278}
261 279
262static inline int drv_sta_add(struct ieee80211_local *local, 280static inline int drv_sta_add(struct ieee80211_local *local,
@@ -267,10 +285,11 @@ static inline int drv_sta_add(struct ieee80211_local *local,
267 285
268 might_sleep(); 286 might_sleep();
269 287
288 trace_drv_sta_add(local, sdata, sta);
270 if (local->ops->sta_add) 289 if (local->ops->sta_add)
271 ret = local->ops->sta_add(&local->hw, &sdata->vif, sta); 290 ret = local->ops->sta_add(&local->hw, &sdata->vif, sta);
272 291
273 trace_drv_sta_add(local, sdata, sta, ret); 292 trace_drv_return_int(local, ret);
274 293
275 return ret; 294 return ret;
276} 295}
@@ -281,10 +300,11 @@ static inline void drv_sta_remove(struct ieee80211_local *local,
281{ 300{
282 might_sleep(); 301 might_sleep();
283 302
303 trace_drv_sta_remove(local, sdata, sta);
284 if (local->ops->sta_remove) 304 if (local->ops->sta_remove)
285 local->ops->sta_remove(&local->hw, &sdata->vif, sta); 305 local->ops->sta_remove(&local->hw, &sdata->vif, sta);
286 306
287 trace_drv_sta_remove(local, sdata, sta); 307 trace_drv_return_void(local);
288} 308}
289 309
290static inline int drv_conf_tx(struct ieee80211_local *local, u16 queue, 310static inline int drv_conf_tx(struct ieee80211_local *local, u16 queue,
@@ -294,9 +314,10 @@ static inline int drv_conf_tx(struct ieee80211_local *local, u16 queue,
294 314
295 might_sleep(); 315 might_sleep();
296 316
317 trace_drv_conf_tx(local, queue, params);
297 if (local->ops->conf_tx) 318 if (local->ops->conf_tx)
298 ret = local->ops->conf_tx(&local->hw, queue, params); 319 ret = local->ops->conf_tx(&local->hw, queue, params);
299 trace_drv_conf_tx(local, queue, params, ret); 320 trace_drv_return_int(local, ret);
300 return ret; 321 return ret;
301} 322}
302 323
@@ -306,9 +327,10 @@ static inline u64 drv_get_tsf(struct ieee80211_local *local)
306 327
307 might_sleep(); 328 might_sleep();
308 329
330 trace_drv_get_tsf(local);
309 if (local->ops->get_tsf) 331 if (local->ops->get_tsf)
310 ret = local->ops->get_tsf(&local->hw); 332 ret = local->ops->get_tsf(&local->hw);
311 trace_drv_get_tsf(local, ret); 333 trace_drv_return_u64(local, ret);
312 return ret; 334 return ret;
313} 335}
314 336
@@ -316,18 +338,20 @@ static inline void drv_set_tsf(struct ieee80211_local *local, u64 tsf)
316{ 338{
317 might_sleep(); 339 might_sleep();
318 340
341 trace_drv_set_tsf(local, tsf);
319 if (local->ops->set_tsf) 342 if (local->ops->set_tsf)
320 local->ops->set_tsf(&local->hw, tsf); 343 local->ops->set_tsf(&local->hw, tsf);
321 trace_drv_set_tsf(local, tsf); 344 trace_drv_return_void(local);
322} 345}
323 346
324static inline void drv_reset_tsf(struct ieee80211_local *local) 347static inline void drv_reset_tsf(struct ieee80211_local *local)
325{ 348{
326 might_sleep(); 349 might_sleep();
327 350
351 trace_drv_reset_tsf(local);
328 if (local->ops->reset_tsf) 352 if (local->ops->reset_tsf)
329 local->ops->reset_tsf(&local->hw); 353 local->ops->reset_tsf(&local->hw);
330 trace_drv_reset_tsf(local); 354 trace_drv_return_void(local);
331} 355}
332 356
333static inline int drv_tx_last_beacon(struct ieee80211_local *local) 357static inline int drv_tx_last_beacon(struct ieee80211_local *local)
@@ -336,9 +360,10 @@ static inline int drv_tx_last_beacon(struct ieee80211_local *local)
336 360
337 might_sleep(); 361 might_sleep();
338 362
363 trace_drv_tx_last_beacon(local);
339 if (local->ops->tx_last_beacon) 364 if (local->ops->tx_last_beacon)
340 ret = local->ops->tx_last_beacon(&local->hw); 365 ret = local->ops->tx_last_beacon(&local->hw);
341 trace_drv_tx_last_beacon(local, ret); 366 trace_drv_return_int(local, ret);
342 return ret; 367 return ret;
343} 368}
344 369
@@ -352,11 +377,14 @@ static inline int drv_ampdu_action(struct ieee80211_local *local,
352 377
353 might_sleep(); 378 might_sleep();
354 379
380 trace_drv_ampdu_action(local, sdata, action, sta, tid, ssn);
381
355 if (local->ops->ampdu_action) 382 if (local->ops->ampdu_action)
356 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action, 383 ret = local->ops->ampdu_action(&local->hw, &sdata->vif, action,
357 sta, tid, ssn); 384 sta, tid, ssn);
358 385
359 trace_drv_ampdu_action(local, sdata, action, sta, tid, ssn, ret); 386 trace_drv_return_int(local, ret);
387
360 return ret; 388 return ret;
361} 389}
362 390
@@ -385,6 +413,7 @@ static inline void drv_flush(struct ieee80211_local *local, bool drop)
385 trace_drv_flush(local, drop); 413 trace_drv_flush(local, drop);
386 if (local->ops->flush) 414 if (local->ops->flush)
387 local->ops->flush(&local->hw, drop); 415 local->ops->flush(&local->hw, drop);
416 trace_drv_return_void(local);
388} 417}
389 418
390static inline void drv_channel_switch(struct ieee80211_local *local, 419static inline void drv_channel_switch(struct ieee80211_local *local,
@@ -392,9 +421,9 @@ static inline void drv_channel_switch(struct ieee80211_local *local,
392{ 421{
393 might_sleep(); 422 might_sleep();
394 423
395 local->ops->channel_switch(&local->hw, ch_switch);
396
397 trace_drv_channel_switch(local, ch_switch); 424 trace_drv_channel_switch(local, ch_switch);
425 local->ops->channel_switch(&local->hw, ch_switch);
426 trace_drv_return_void(local);
398} 427}
399 428
400#endif /* __MAC80211_DRIVER_OPS */ 429#endif /* __MAC80211_DRIVER_OPS */
diff --git a/net/mac80211/driver-trace.h b/net/mac80211/driver-trace.h
index 6b90630151ab..06444ea67bc4 100644
--- a/net/mac80211/driver-trace.h
+++ b/net/mac80211/driver-trace.h
@@ -36,20 +36,58 @@ static inline void trace_ ## name(proto) {}
36 * Tracing for driver callbacks. 36 * Tracing for driver callbacks.
37 */ 37 */
38 38
39TRACE_EVENT(drv_start, 39TRACE_EVENT(drv_return_void,
40 TP_PROTO(struct ieee80211_local *local, int ret), 40 TP_PROTO(struct ieee80211_local *local),
41 TP_ARGS(local),
42 TP_STRUCT__entry(
43 LOCAL_ENTRY
44 ),
45 TP_fast_assign(
46 LOCAL_ASSIGN;
47 ),
48 TP_printk(LOCAL_PR_FMT, LOCAL_PR_ARG)
49);
41 50
51TRACE_EVENT(drv_return_int,
52 TP_PROTO(struct ieee80211_local *local, int ret),
42 TP_ARGS(local, ret), 53 TP_ARGS(local, ret),
43
44 TP_STRUCT__entry( 54 TP_STRUCT__entry(
45 LOCAL_ENTRY 55 LOCAL_ENTRY
46 __field(int, ret) 56 __field(int, ret)
47 ), 57 ),
58 TP_fast_assign(
59 LOCAL_ASSIGN;
60 __entry->ret = ret;
61 ),
62 TP_printk(LOCAL_PR_FMT " - %d", LOCAL_PR_ARG, __entry->ret)
63);
48 64
65TRACE_EVENT(drv_return_u64,
66 TP_PROTO(struct ieee80211_local *local, u64 ret),
67 TP_ARGS(local, ret),
68 TP_STRUCT__entry(
69 LOCAL_ENTRY
70 __field(u64, ret)
71 ),
49 TP_fast_assign( 72 TP_fast_assign(
50 LOCAL_ASSIGN; 73 LOCAL_ASSIGN;
51 __entry->ret = ret; 74 __entry->ret = ret;
52 ), 75 ),
76 TP_printk(LOCAL_PR_FMT " - %llu", LOCAL_PR_ARG, __entry->ret)
77);
78
79TRACE_EVENT(drv_start,
80 TP_PROTO(struct ieee80211_local *local),
81
82 TP_ARGS(local),
83
84 TP_STRUCT__entry(
85 LOCAL_ENTRY
86 ),
87
88 TP_fast_assign(
89 LOCAL_ASSIGN;
90 ),
53 91
54 TP_printk( 92 TP_printk(
55 LOCAL_PR_FMT, LOCAL_PR_ARG 93 LOCAL_PR_FMT, LOCAL_PR_ARG
@@ -76,28 +114,25 @@ TRACE_EVENT(drv_stop,
76 114
77TRACE_EVENT(drv_add_interface, 115TRACE_EVENT(drv_add_interface,
78 TP_PROTO(struct ieee80211_local *local, 116 TP_PROTO(struct ieee80211_local *local,
79 struct ieee80211_sub_if_data *sdata, 117 struct ieee80211_sub_if_data *sdata),
80 int ret),
81 118
82 TP_ARGS(local, sdata, ret), 119 TP_ARGS(local, sdata),
83 120
84 TP_STRUCT__entry( 121 TP_STRUCT__entry(
85 LOCAL_ENTRY 122 LOCAL_ENTRY
86 VIF_ENTRY 123 VIF_ENTRY
87 __array(char, addr, 6) 124 __array(char, addr, 6)
88 __field(int, ret)
89 ), 125 ),
90 126
91 TP_fast_assign( 127 TP_fast_assign(
92 LOCAL_ASSIGN; 128 LOCAL_ASSIGN;
93 VIF_ASSIGN; 129 VIF_ASSIGN;
94 memcpy(__entry->addr, sdata->vif.addr, 6); 130 memcpy(__entry->addr, sdata->vif.addr, 6);
95 __entry->ret = ret;
96 ), 131 ),
97 132
98 TP_printk( 133 TP_printk(
99 LOCAL_PR_FMT VIF_PR_FMT " addr:%pM ret:%d", 134 LOCAL_PR_FMT VIF_PR_FMT " addr:%pM",
100 LOCAL_PR_ARG, VIF_PR_ARG, __entry->addr, __entry->ret 135 LOCAL_PR_ARG, VIF_PR_ARG, __entry->addr
101 ) 136 )
102); 137);
103 138
@@ -126,15 +161,13 @@ TRACE_EVENT(drv_remove_interface,
126 161
127TRACE_EVENT(drv_config, 162TRACE_EVENT(drv_config,
128 TP_PROTO(struct ieee80211_local *local, 163 TP_PROTO(struct ieee80211_local *local,
129 u32 changed, 164 u32 changed),
130 int ret),
131 165
132 TP_ARGS(local, changed, ret), 166 TP_ARGS(local, changed),
133 167
134 TP_STRUCT__entry( 168 TP_STRUCT__entry(
135 LOCAL_ENTRY 169 LOCAL_ENTRY
136 __field(u32, changed) 170 __field(u32, changed)
137 __field(int, ret)
138 __field(u32, flags) 171 __field(u32, flags)
139 __field(int, power_level) 172 __field(int, power_level)
140 __field(int, dynamic_ps_timeout) 173 __field(int, dynamic_ps_timeout)
@@ -150,7 +183,6 @@ TRACE_EVENT(drv_config,
150 TP_fast_assign( 183 TP_fast_assign(
151 LOCAL_ASSIGN; 184 LOCAL_ASSIGN;
152 __entry->changed = changed; 185 __entry->changed = changed;
153 __entry->ret = ret;
154 __entry->flags = local->hw.conf.flags; 186 __entry->flags = local->hw.conf.flags;
155 __entry->power_level = local->hw.conf.power_level; 187 __entry->power_level = local->hw.conf.power_level;
156 __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout; 188 __entry->dynamic_ps_timeout = local->hw.conf.dynamic_ps_timeout;
@@ -164,8 +196,8 @@ TRACE_EVENT(drv_config,
164 ), 196 ),
165 197
166 TP_printk( 198 TP_printk(
167 LOCAL_PR_FMT " ch:%#x freq:%d ret:%d", 199 LOCAL_PR_FMT " ch:%#x freq:%d",
168 LOCAL_PR_ARG, __entry->changed, __entry->center_freq, __entry->ret 200 LOCAL_PR_ARG, __entry->changed, __entry->center_freq
169 ) 201 )
170); 202);
171 203
@@ -221,50 +253,44 @@ TRACE_EVENT(drv_bss_info_changed,
221 253
222TRACE_EVENT(drv_configure_arp_filter, 254TRACE_EVENT(drv_configure_arp_filter,
223 TP_PROTO(struct ieee80211_local *local, 255 TP_PROTO(struct ieee80211_local *local,
224 struct ieee80211_sub_if_data *sdata, 256 struct ieee80211_sub_if_data *sdata),
225 struct in_ifaddr *ifa_list, int ret),
226 257
227 TP_ARGS(local, sdata, ifa_list, ret), 258 TP_ARGS(local, sdata),
228 259
229 TP_STRUCT__entry( 260 TP_STRUCT__entry(
230 LOCAL_ENTRY 261 LOCAL_ENTRY
231 VIF_ENTRY 262 VIF_ENTRY
232 __field(int, ret)
233 ), 263 ),
234 264
235 TP_fast_assign( 265 TP_fast_assign(
236 LOCAL_ASSIGN; 266 LOCAL_ASSIGN;
237 VIF_ASSIGN; 267 VIF_ASSIGN;
238 __entry->ret = ret;
239 ), 268 ),
240 269
241 TP_printk( 270 TP_printk(
242 VIF_PR_FMT LOCAL_PR_FMT " ret:%d", 271 VIF_PR_FMT LOCAL_PR_FMT,
243 VIF_PR_ARG, LOCAL_PR_ARG, __entry->ret 272 VIF_PR_ARG, LOCAL_PR_ARG
244 ) 273 )
245); 274);
246 275
247TRACE_EVENT(drv_prepare_multicast, 276TRACE_EVENT(drv_prepare_multicast,
248 TP_PROTO(struct ieee80211_local *local, int mc_count, u64 ret), 277 TP_PROTO(struct ieee80211_local *local, int mc_count),
249 278
250 TP_ARGS(local, mc_count, ret), 279 TP_ARGS(local, mc_count),
251 280
252 TP_STRUCT__entry( 281 TP_STRUCT__entry(
253 LOCAL_ENTRY 282 LOCAL_ENTRY
254 __field(int, mc_count) 283 __field(int, mc_count)
255 __field(u64, ret)
256 ), 284 ),
257 285
258 TP_fast_assign( 286 TP_fast_assign(
259 LOCAL_ASSIGN; 287 LOCAL_ASSIGN;
260 __entry->mc_count = mc_count; 288 __entry->mc_count = mc_count;
261 __entry->ret = ret;
262 ), 289 ),
263 290
264 TP_printk( 291 TP_printk(
265 LOCAL_PR_FMT " prepare mc (%d): %llx", 292 LOCAL_PR_FMT " prepare mc (%d)",
266 LOCAL_PR_ARG, __entry->mc_count, 293 LOCAL_PR_ARG, __entry->mc_count
267 (unsigned long long) __entry->ret
268 ) 294 )
269); 295);
270 296
@@ -298,27 +324,25 @@ TRACE_EVENT(drv_configure_filter,
298 324
299TRACE_EVENT(drv_set_tim, 325TRACE_EVENT(drv_set_tim,
300 TP_PROTO(struct ieee80211_local *local, 326 TP_PROTO(struct ieee80211_local *local,
301 struct ieee80211_sta *sta, bool set, int ret), 327 struct ieee80211_sta *sta, bool set),
302 328
303 TP_ARGS(local, sta, set, ret), 329 TP_ARGS(local, sta, set),
304 330
305 TP_STRUCT__entry( 331 TP_STRUCT__entry(
306 LOCAL_ENTRY 332 LOCAL_ENTRY
307 STA_ENTRY 333 STA_ENTRY
308 __field(bool, set) 334 __field(bool, set)
309 __field(int, ret)
310 ), 335 ),
311 336
312 TP_fast_assign( 337 TP_fast_assign(
313 LOCAL_ASSIGN; 338 LOCAL_ASSIGN;
314 STA_ASSIGN; 339 STA_ASSIGN;
315 __entry->set = set; 340 __entry->set = set;
316 __entry->ret = ret;
317 ), 341 ),
318 342
319 TP_printk( 343 TP_printk(
320 LOCAL_PR_FMT STA_PR_FMT " set:%d ret:%d", 344 LOCAL_PR_FMT STA_PR_FMT " set:%d",
321 LOCAL_PR_ARG, STA_PR_FMT, __entry->set, __entry->ret 345 LOCAL_PR_ARG, STA_PR_FMT, __entry->set
322 ) 346 )
323); 347);
324 348
@@ -326,9 +350,9 @@ TRACE_EVENT(drv_set_key,
326 TP_PROTO(struct ieee80211_local *local, 350 TP_PROTO(struct ieee80211_local *local,
327 enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata, 351 enum set_key_cmd cmd, struct ieee80211_sub_if_data *sdata,
328 struct ieee80211_sta *sta, 352 struct ieee80211_sta *sta,
329 struct ieee80211_key_conf *key, int ret), 353 struct ieee80211_key_conf *key),
330 354
331 TP_ARGS(local, cmd, sdata, sta, key, ret), 355 TP_ARGS(local, cmd, sdata, sta, key),
332 356
333 TP_STRUCT__entry( 357 TP_STRUCT__entry(
334 LOCAL_ENTRY 358 LOCAL_ENTRY
@@ -338,7 +362,6 @@ TRACE_EVENT(drv_set_key,
338 __field(u8, hw_key_idx) 362 __field(u8, hw_key_idx)
339 __field(u8, flags) 363 __field(u8, flags)
340 __field(s8, keyidx) 364 __field(s8, keyidx)
341 __field(int, ret)
342 ), 365 ),
343 366
344 TP_fast_assign( 367 TP_fast_assign(
@@ -349,12 +372,11 @@ TRACE_EVENT(drv_set_key,
349 __entry->flags = key->flags; 372 __entry->flags = key->flags;
350 __entry->keyidx = key->keyidx; 373 __entry->keyidx = key->keyidx;
351 __entry->hw_key_idx = key->hw_key_idx; 374 __entry->hw_key_idx = key->hw_key_idx;
352 __entry->ret = ret;
353 ), 375 ),
354 376
355 TP_printk( 377 TP_printk(
356 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ret:%d", 378 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT,
357 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ret 379 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
358 ) 380 )
359); 381);
360 382
@@ -389,25 +411,23 @@ TRACE_EVENT(drv_update_tkip_key,
389TRACE_EVENT(drv_hw_scan, 411TRACE_EVENT(drv_hw_scan,
390 TP_PROTO(struct ieee80211_local *local, 412 TP_PROTO(struct ieee80211_local *local,
391 struct ieee80211_sub_if_data *sdata, 413 struct ieee80211_sub_if_data *sdata,
392 struct cfg80211_scan_request *req, int ret), 414 struct cfg80211_scan_request *req),
393 415
394 TP_ARGS(local, sdata, req, ret), 416 TP_ARGS(local, sdata, req),
395 417
396 TP_STRUCT__entry( 418 TP_STRUCT__entry(
397 LOCAL_ENTRY 419 LOCAL_ENTRY
398 VIF_ENTRY 420 VIF_ENTRY
399 __field(int, ret)
400 ), 421 ),
401 422
402 TP_fast_assign( 423 TP_fast_assign(
403 LOCAL_ASSIGN; 424 LOCAL_ASSIGN;
404 VIF_ASSIGN; 425 VIF_ASSIGN;
405 __entry->ret = ret;
406 ), 426 ),
407 427
408 TP_printk( 428 TP_printk(
409 LOCAL_PR_FMT VIF_PR_FMT " ret:%d", 429 LOCAL_PR_FMT VIF_PR_FMT,
410 LOCAL_PR_ARG,VIF_PR_ARG, __entry->ret 430 LOCAL_PR_ARG,VIF_PR_ARG
411 ) 431 )
412); 432);
413 433
@@ -504,48 +524,44 @@ TRACE_EVENT(drv_get_tkip_seq,
504); 524);
505 525
506TRACE_EVENT(drv_set_rts_threshold, 526TRACE_EVENT(drv_set_rts_threshold,
507 TP_PROTO(struct ieee80211_local *local, u32 value, int ret), 527 TP_PROTO(struct ieee80211_local *local, u32 value),
508 528
509 TP_ARGS(local, value, ret), 529 TP_ARGS(local, value),
510 530
511 TP_STRUCT__entry( 531 TP_STRUCT__entry(
512 LOCAL_ENTRY 532 LOCAL_ENTRY
513 __field(u32, value) 533 __field(u32, value)
514 __field(int, ret)
515 ), 534 ),
516 535
517 TP_fast_assign( 536 TP_fast_assign(
518 LOCAL_ASSIGN; 537 LOCAL_ASSIGN;
519 __entry->ret = ret;
520 __entry->value = value; 538 __entry->value = value;
521 ), 539 ),
522 540
523 TP_printk( 541 TP_printk(
524 LOCAL_PR_FMT " value:%d ret:%d", 542 LOCAL_PR_FMT " value:%d",
525 LOCAL_PR_ARG, __entry->value, __entry->ret 543 LOCAL_PR_ARG, __entry->value
526 ) 544 )
527); 545);
528 546
529TRACE_EVENT(drv_set_coverage_class, 547TRACE_EVENT(drv_set_coverage_class,
530 TP_PROTO(struct ieee80211_local *local, u8 value, int ret), 548 TP_PROTO(struct ieee80211_local *local, u8 value),
531 549
532 TP_ARGS(local, value, ret), 550 TP_ARGS(local, value),
533 551
534 TP_STRUCT__entry( 552 TP_STRUCT__entry(
535 LOCAL_ENTRY 553 LOCAL_ENTRY
536 __field(u8, value) 554 __field(u8, value)
537 __field(int, ret)
538 ), 555 ),
539 556
540 TP_fast_assign( 557 TP_fast_assign(
541 LOCAL_ASSIGN; 558 LOCAL_ASSIGN;
542 __entry->ret = ret;
543 __entry->value = value; 559 __entry->value = value;
544 ), 560 ),
545 561
546 TP_printk( 562 TP_printk(
547 LOCAL_PR_FMT " value:%d ret:%d", 563 LOCAL_PR_FMT " value:%d",
548 LOCAL_PR_ARG, __entry->value, __entry->ret 564 LOCAL_PR_ARG, __entry->value
549 ) 565 )
550); 566);
551 567
@@ -580,27 +596,25 @@ TRACE_EVENT(drv_sta_notify,
580TRACE_EVENT(drv_sta_add, 596TRACE_EVENT(drv_sta_add,
581 TP_PROTO(struct ieee80211_local *local, 597 TP_PROTO(struct ieee80211_local *local,
582 struct ieee80211_sub_if_data *sdata, 598 struct ieee80211_sub_if_data *sdata,
583 struct ieee80211_sta *sta, int ret), 599 struct ieee80211_sta *sta),
584 600
585 TP_ARGS(local, sdata, sta, ret), 601 TP_ARGS(local, sdata, sta),
586 602
587 TP_STRUCT__entry( 603 TP_STRUCT__entry(
588 LOCAL_ENTRY 604 LOCAL_ENTRY
589 VIF_ENTRY 605 VIF_ENTRY
590 STA_ENTRY 606 STA_ENTRY
591 __field(int, ret)
592 ), 607 ),
593 608
594 TP_fast_assign( 609 TP_fast_assign(
595 LOCAL_ASSIGN; 610 LOCAL_ASSIGN;
596 VIF_ASSIGN; 611 VIF_ASSIGN;
597 STA_ASSIGN; 612 STA_ASSIGN;
598 __entry->ret = ret;
599 ), 613 ),
600 614
601 TP_printk( 615 TP_printk(
602 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " ret:%d", 616 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT,
603 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->ret 617 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG
604 ) 618 )
605); 619);
606 620
@@ -631,10 +645,9 @@ TRACE_EVENT(drv_sta_remove,
631 645
632TRACE_EVENT(drv_conf_tx, 646TRACE_EVENT(drv_conf_tx,
633 TP_PROTO(struct ieee80211_local *local, u16 queue, 647 TP_PROTO(struct ieee80211_local *local, u16 queue,
634 const struct ieee80211_tx_queue_params *params, 648 const struct ieee80211_tx_queue_params *params),
635 int ret),
636 649
637 TP_ARGS(local, queue, params, ret), 650 TP_ARGS(local, queue, params),
638 651
639 TP_STRUCT__entry( 652 TP_STRUCT__entry(
640 LOCAL_ENTRY 653 LOCAL_ENTRY
@@ -643,13 +656,11 @@ TRACE_EVENT(drv_conf_tx,
643 __field(u16, cw_min) 656 __field(u16, cw_min)
644 __field(u16, cw_max) 657 __field(u16, cw_max)
645 __field(u8, aifs) 658 __field(u8, aifs)
646 __field(int, ret)
647 ), 659 ),
648 660
649 TP_fast_assign( 661 TP_fast_assign(
650 LOCAL_ASSIGN; 662 LOCAL_ASSIGN;
651 __entry->queue = queue; 663 __entry->queue = queue;
652 __entry->ret = ret;
653 __entry->txop = params->txop; 664 __entry->txop = params->txop;
654 __entry->cw_max = params->cw_max; 665 __entry->cw_max = params->cw_max;
655 __entry->cw_min = params->cw_min; 666 __entry->cw_min = params->cw_min;
@@ -657,29 +668,27 @@ TRACE_EVENT(drv_conf_tx,
657 ), 668 ),
658 669
659 TP_printk( 670 TP_printk(
660 LOCAL_PR_FMT " queue:%d ret:%d", 671 LOCAL_PR_FMT " queue:%d",
661 LOCAL_PR_ARG, __entry->queue, __entry->ret 672 LOCAL_PR_ARG, __entry->queue
662 ) 673 )
663); 674);
664 675
665TRACE_EVENT(drv_get_tsf, 676TRACE_EVENT(drv_get_tsf,
666 TP_PROTO(struct ieee80211_local *local, u64 ret), 677 TP_PROTO(struct ieee80211_local *local),
667 678
668 TP_ARGS(local, ret), 679 TP_ARGS(local),
669 680
670 TP_STRUCT__entry( 681 TP_STRUCT__entry(
671 LOCAL_ENTRY 682 LOCAL_ENTRY
672 __field(u64, ret)
673 ), 683 ),
674 684
675 TP_fast_assign( 685 TP_fast_assign(
676 LOCAL_ASSIGN; 686 LOCAL_ASSIGN;
677 __entry->ret = ret;
678 ), 687 ),
679 688
680 TP_printk( 689 TP_printk(
681 LOCAL_PR_FMT " ret:%llu", 690 LOCAL_PR_FMT,
682 LOCAL_PR_ARG, (unsigned long long)__entry->ret 691 LOCAL_PR_ARG
683 ) 692 )
684); 693);
685 694
@@ -723,23 +732,21 @@ TRACE_EVENT(drv_reset_tsf,
723); 732);
724 733
725TRACE_EVENT(drv_tx_last_beacon, 734TRACE_EVENT(drv_tx_last_beacon,
726 TP_PROTO(struct ieee80211_local *local, int ret), 735 TP_PROTO(struct ieee80211_local *local),
727 736
728 TP_ARGS(local, ret), 737 TP_ARGS(local),
729 738
730 TP_STRUCT__entry( 739 TP_STRUCT__entry(
731 LOCAL_ENTRY 740 LOCAL_ENTRY
732 __field(int, ret)
733 ), 741 ),
734 742
735 TP_fast_assign( 743 TP_fast_assign(
736 LOCAL_ASSIGN; 744 LOCAL_ASSIGN;
737 __entry->ret = ret;
738 ), 745 ),
739 746
740 TP_printk( 747 TP_printk(
741 LOCAL_PR_FMT " ret:%d", 748 LOCAL_PR_FMT,
742 LOCAL_PR_ARG, __entry->ret 749 LOCAL_PR_ARG
743 ) 750 )
744); 751);
745 752
@@ -748,9 +755,9 @@ TRACE_EVENT(drv_ampdu_action,
748 struct ieee80211_sub_if_data *sdata, 755 struct ieee80211_sub_if_data *sdata,
749 enum ieee80211_ampdu_mlme_action action, 756 enum ieee80211_ampdu_mlme_action action,
750 struct ieee80211_sta *sta, u16 tid, 757 struct ieee80211_sta *sta, u16 tid,
751 u16 *ssn, int ret), 758 u16 *ssn),
752 759
753 TP_ARGS(local, sdata, action, sta, tid, ssn, ret), 760 TP_ARGS(local, sdata, action, sta, tid, ssn),
754 761
755 TP_STRUCT__entry( 762 TP_STRUCT__entry(
756 LOCAL_ENTRY 763 LOCAL_ENTRY
@@ -758,7 +765,6 @@ TRACE_EVENT(drv_ampdu_action,
758 __field(u32, action) 765 __field(u32, action)
759 __field(u16, tid) 766 __field(u16, tid)
760 __field(u16, ssn) 767 __field(u16, ssn)
761 __field(int, ret)
762 VIF_ENTRY 768 VIF_ENTRY
763 ), 769 ),
764 770
@@ -766,15 +772,14 @@ TRACE_EVENT(drv_ampdu_action,
766 LOCAL_ASSIGN; 772 LOCAL_ASSIGN;
767 VIF_ASSIGN; 773 VIF_ASSIGN;
768 STA_ASSIGN; 774 STA_ASSIGN;
769 __entry->ret = ret;
770 __entry->action = action; 775 __entry->action = action;
771 __entry->tid = tid; 776 __entry->tid = tid;
772 __entry->ssn = ssn ? *ssn : 0; 777 __entry->ssn = ssn ? *ssn : 0;
773 ), 778 ),
774 779
775 TP_printk( 780 TP_printk(
776 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " action:%d tid:%d ret:%d", 781 LOCAL_PR_FMT VIF_PR_FMT STA_PR_FMT " action:%d tid:%d",
777 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid, __entry->ret 782 LOCAL_PR_ARG, VIF_PR_ARG, STA_PR_ARG, __entry->action, __entry->tid
778 ) 783 )
779); 784);
780 785