aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/driver-trace.h
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-06-10 04:56:20 -0400
committerJohn W. Linville <linville@tuxdriver.com>2010-06-14 15:39:29 -0400
commit4efc76bdbf9bfd2b8624c4dd52b9d8ffed176b31 (patch)
tree49be6ee8edf101521f45c72773bc73a6351f11c8 /net/mac80211/driver-trace.h
parent8b58ff832df9222e1fb3c58ae7f745f95569b55e (diff)
mac80211: bracket driver tracing
Currently, driver tracing is sometimes invoked after and sometimes before the actual driver callback. This is fine as long as the driver has no tracing itself, but as soon as it does it gets confusing. To make traces containing such information easier to read, introduce a return tracer in mac80211 that essentially brackets any driver tracing, and invoke the real trace before the driver's callback, only showing the return value, if any, afterwards. Since tracing records the process, there's no problem with overlapping calls if that should happen. 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.h189
1 files changed, 97 insertions, 92 deletions
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