diff options
| author | Felix Fietkau <nbd@openwrt.org> | 2010-06-01 20:57:34 -0400 |
|---|---|---|
| committer | John W. Linville <linville@tuxdriver.com> | 2010-06-03 14:14:41 -0400 |
| commit | 2826bcd844e05dcbef9b9284bddb7fe88e8d314f (patch) | |
| tree | a95085b75ba4299c77571e024e37e84da54f9db3 /net/mac80211 | |
| parent | 84642d6bdde9164b7905fba03c0691a806788e0c (diff) | |
mac80211: reduce debugfs code size
This patch reduces the binary size by around 25k (measured on MIPS,
with CONFIG_MAC80211_DEBUG_COUNTERS enabled).
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211')
| -rw-r--r-- | net/mac80211/debugfs.c | 154 | ||||
| -rw-r--r-- | net/mac80211/debugfs_sta.c | 45 |
2 files changed, 77 insertions, 122 deletions
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c index 637929b65cc..a694c593ff6 100644 --- a/net/mac80211/debugfs.c +++ b/net/mac80211/debugfs.c | |||
| @@ -307,9 +307,6 @@ static const struct file_operations queues_ops = { | |||
| 307 | 307 | ||
| 308 | /* statistics stuff */ | 308 | /* statistics stuff */ |
| 309 | 309 | ||
| 310 | #define DEBUGFS_STATS_FILE(name, buflen, fmt, value...) \ | ||
| 311 | DEBUGFS_READONLY_FILE(stats_ ##name, buflen, fmt, ##value) | ||
| 312 | |||
| 313 | static ssize_t format_devstat_counter(struct ieee80211_local *local, | 310 | static ssize_t format_devstat_counter(struct ieee80211_local *local, |
| 314 | char __user *userbuf, | 311 | char __user *userbuf, |
| 315 | size_t count, loff_t *ppos, | 312 | size_t count, loff_t *ppos, |
| @@ -351,75 +348,16 @@ static const struct file_operations stats_ ##name## _ops = { \ | |||
| 351 | .open = mac80211_open_file_generic, \ | 348 | .open = mac80211_open_file_generic, \ |
| 352 | }; | 349 | }; |
| 353 | 350 | ||
| 354 | #define DEBUGFS_STATS_ADD(name) \ | 351 | #define DEBUGFS_STATS_ADD(name, field) \ |
| 352 | debugfs_create_u32(#name, 0400, statsd, (u32 *) &field); | ||
| 353 | #define DEBUGFS_DEVSTATS_ADD(name) \ | ||
| 355 | debugfs_create_file(#name, 0400, statsd, local, &stats_ ##name## _ops); | 354 | debugfs_create_file(#name, 0400, statsd, local, &stats_ ##name## _ops); |
| 356 | 355 | ||
| 357 | DEBUGFS_STATS_FILE(transmitted_fragment_count, 20, "%u", | ||
| 358 | local->dot11TransmittedFragmentCount); | ||
| 359 | DEBUGFS_STATS_FILE(multicast_transmitted_frame_count, 20, "%u", | ||
| 360 | local->dot11MulticastTransmittedFrameCount); | ||
| 361 | DEBUGFS_STATS_FILE(failed_count, 20, "%u", | ||
| 362 | local->dot11FailedCount); | ||
| 363 | DEBUGFS_STATS_FILE(retry_count, 20, "%u", | ||
| 364 | local->dot11RetryCount); | ||
| 365 | DEBUGFS_STATS_FILE(multiple_retry_count, 20, "%u", | ||
| 366 | local->dot11MultipleRetryCount); | ||
| 367 | DEBUGFS_STATS_FILE(frame_duplicate_count, 20, "%u", | ||
| 368 | local->dot11FrameDuplicateCount); | ||
| 369 | DEBUGFS_STATS_FILE(received_fragment_count, 20, "%u", | ||
| 370 | local->dot11ReceivedFragmentCount); | ||
| 371 | DEBUGFS_STATS_FILE(multicast_received_frame_count, 20, "%u", | ||
| 372 | local->dot11MulticastReceivedFrameCount); | ||
| 373 | DEBUGFS_STATS_FILE(transmitted_frame_count, 20, "%u", | ||
| 374 | local->dot11TransmittedFrameCount); | ||
| 375 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS | ||
| 376 | DEBUGFS_STATS_FILE(tx_handlers_drop, 20, "%u", | ||
| 377 | local->tx_handlers_drop); | ||
| 378 | DEBUGFS_STATS_FILE(tx_handlers_queued, 20, "%u", | ||
| 379 | local->tx_handlers_queued); | ||
| 380 | DEBUGFS_STATS_FILE(tx_handlers_drop_unencrypted, 20, "%u", | ||
| 381 | local->tx_handlers_drop_unencrypted); | ||
| 382 | DEBUGFS_STATS_FILE(tx_handlers_drop_fragment, 20, "%u", | ||
| 383 | local->tx_handlers_drop_fragment); | ||
| 384 | DEBUGFS_STATS_FILE(tx_handlers_drop_wep, 20, "%u", | ||
| 385 | local->tx_handlers_drop_wep); | ||
| 386 | DEBUGFS_STATS_FILE(tx_handlers_drop_not_assoc, 20, "%u", | ||
| 387 | local->tx_handlers_drop_not_assoc); | ||
| 388 | DEBUGFS_STATS_FILE(tx_handlers_drop_unauth_port, 20, "%u", | ||
| 389 | local->tx_handlers_drop_unauth_port); | ||
| 390 | DEBUGFS_STATS_FILE(rx_handlers_drop, 20, "%u", | ||
| 391 | local->rx_handlers_drop); | ||
| 392 | DEBUGFS_STATS_FILE(rx_handlers_queued, 20, "%u", | ||
| 393 | local->rx_handlers_queued); | ||
| 394 | DEBUGFS_STATS_FILE(rx_handlers_drop_nullfunc, 20, "%u", | ||
| 395 | local->rx_handlers_drop_nullfunc); | ||
| 396 | DEBUGFS_STATS_FILE(rx_handlers_drop_defrag, 20, "%u", | ||
| 397 | local->rx_handlers_drop_defrag); | ||
| 398 | DEBUGFS_STATS_FILE(rx_handlers_drop_short, 20, "%u", | ||
| 399 | local->rx_handlers_drop_short); | ||
| 400 | DEBUGFS_STATS_FILE(rx_handlers_drop_passive_scan, 20, "%u", | ||
| 401 | local->rx_handlers_drop_passive_scan); | ||
| 402 | DEBUGFS_STATS_FILE(tx_expand_skb_head, 20, "%u", | ||
| 403 | local->tx_expand_skb_head); | ||
| 404 | DEBUGFS_STATS_FILE(tx_expand_skb_head_cloned, 20, "%u", | ||
| 405 | local->tx_expand_skb_head_cloned); | ||
| 406 | DEBUGFS_STATS_FILE(rx_expand_skb_head, 20, "%u", | ||
| 407 | local->rx_expand_skb_head); | ||
| 408 | DEBUGFS_STATS_FILE(rx_expand_skb_head2, 20, "%u", | ||
| 409 | local->rx_expand_skb_head2); | ||
| 410 | DEBUGFS_STATS_FILE(rx_handlers_fragments, 20, "%u", | ||
| 411 | local->rx_handlers_fragments); | ||
| 412 | DEBUGFS_STATS_FILE(tx_status_drop, 20, "%u", | ||
| 413 | local->tx_status_drop); | ||
| 414 | |||
| 415 | #endif | ||
| 416 | |||
| 417 | DEBUGFS_DEVSTATS_FILE(dot11ACKFailureCount); | 356 | DEBUGFS_DEVSTATS_FILE(dot11ACKFailureCount); |
| 418 | DEBUGFS_DEVSTATS_FILE(dot11RTSFailureCount); | 357 | DEBUGFS_DEVSTATS_FILE(dot11RTSFailureCount); |
| 419 | DEBUGFS_DEVSTATS_FILE(dot11FCSErrorCount); | 358 | DEBUGFS_DEVSTATS_FILE(dot11FCSErrorCount); |
| 420 | DEBUGFS_DEVSTATS_FILE(dot11RTSSuccessCount); | 359 | DEBUGFS_DEVSTATS_FILE(dot11RTSSuccessCount); |
| 421 | 360 | ||
| 422 | |||
| 423 | void debugfs_hw_add(struct ieee80211_local *local) | 361 | void debugfs_hw_add(struct ieee80211_local *local) |
| 424 | { | 362 | { |
| 425 | struct dentry *phyd = local->hw.wiphy->debugfsdir; | 363 | struct dentry *phyd = local->hw.wiphy->debugfsdir; |
| @@ -448,38 +386,60 @@ void debugfs_hw_add(struct ieee80211_local *local) | |||
| 448 | if (!statsd) | 386 | if (!statsd) |
| 449 | return; | 387 | return; |
| 450 | 388 | ||
| 451 | DEBUGFS_STATS_ADD(transmitted_fragment_count); | 389 | DEBUGFS_STATS_ADD(transmitted_fragment_count, |
| 452 | DEBUGFS_STATS_ADD(multicast_transmitted_frame_count); | 390 | local->dot11TransmittedFragmentCount); |
| 453 | DEBUGFS_STATS_ADD(failed_count); | 391 | DEBUGFS_STATS_ADD(multicast_transmitted_frame_count, |
| 454 | DEBUGFS_STATS_ADD(retry_count); | 392 | local->dot11MulticastTransmittedFrameCount); |
| 455 | DEBUGFS_STATS_ADD(multiple_retry_count); | 393 | DEBUGFS_STATS_ADD(failed_count, local->dot11FailedCount); |
| 456 | DEBUGFS_STATS_ADD(frame_duplicate_count); | 394 | DEBUGFS_STATS_ADD(retry_count, local->dot11RetryCount); |
| 457 | DEBUGFS_STATS_ADD(received_fragment_count); | 395 | DEBUGFS_STATS_ADD(multiple_retry_count, |
| 458 | DEBUGFS_STATS_ADD(multicast_received_frame_count); | 396 | local->dot11MultipleRetryCount); |
| 459 | DEBUGFS_STATS_ADD(transmitted_frame_count); | 397 | DEBUGFS_STATS_ADD(frame_duplicate_count, |
| 398 | local->dot11FrameDuplicateCount); | ||
| 399 | DEBUGFS_STATS_ADD(received_fragment_count, | ||
| 400 | local->dot11ReceivedFragmentCount); | ||
| 401 | DEBUGFS_STATS_ADD(multicast_received_frame_count, | ||
| 402 | local->dot11MulticastReceivedFrameCount); | ||
| 403 | DEBUGFS_STATS_ADD(transmitted_frame_count, | ||
| 404 | local->dot11TransmittedFrameCount); | ||
| 460 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS | 405 | #ifdef CONFIG_MAC80211_DEBUG_COUNTERS |
| 461 | DEBUGFS_STATS_ADD(tx_handlers_drop); | 406 | DEBUGFS_STATS_ADD(tx_handlers_drop, local->tx_handlers_drop); |
| 462 | DEBUGFS_STATS_ADD(tx_handlers_queued); | 407 | DEBUGFS_STATS_ADD(tx_handlers_queued, local->tx_handlers_queued); |
| 463 | DEBUGFS_STATS_ADD(tx_handlers_drop_unencrypted); | 408 | DEBUGFS_STATS_ADD(tx_handlers_drop_unencrypted, |
| 464 | DEBUGFS_STATS_ADD(tx_handlers_drop_fragment); | 409 | local->tx_handlers_drop_unencrypted); |
| 465 | DEBUGFS_STATS_ADD(tx_handlers_drop_wep); | 410 | DEBUGFS_STATS_ADD(tx_handlers_drop_fragment, |
| 466 | DEBUGFS_STATS_ADD(tx_handlers_drop_not_assoc); | 411 | local->tx_handlers_drop_fragment); |
| 467 | DEBUGFS_STATS_ADD(tx_handlers_drop_unauth_port); | 412 | DEBUGFS_STATS_ADD(tx_handlers_drop_wep, |
| 468 | DEBUGFS_STATS_ADD(rx_handlers_drop); | 413 | local->tx_handlers_drop_wep); |
| 469 | DEBUGFS_STATS_ADD(rx_handlers_queued); | 414 | DEBUGFS_STATS_ADD(tx_handlers_drop_not_assoc, |
| 470 | DEBUGFS_STATS_ADD(rx_handlers_drop_nullfunc); | 415 | local->tx_handlers_drop_not_assoc); |
| 471 | DEBUGFS_STATS_ADD(rx_handlers_drop_defrag); | 416 | DEBUGFS_STATS_ADD(tx_handlers_drop_unauth_port, |
| 472 | DEBUGFS_STATS_ADD(rx_handlers_drop_short); | 417 | local->tx_handlers_drop_unauth_port); |
| 473 | DEBUGFS_STATS_ADD(rx_handlers_drop_passive_scan); | 418 | DEBUGFS_STATS_ADD(rx_handlers_drop, local->rx_handlers_drop); |
| 474 | DEBUGFS_STATS_ADD(tx_expand_skb_head); | 419 | DEBUGFS_STATS_ADD(rx_handlers_queued, local->rx_handlers_queued); |
| 475 | DEBUGFS_STATS_ADD(tx_expand_skb_head_cloned); | 420 | DEBUGFS_STATS_ADD(rx_handlers_drop_nullfunc, |
| 476 | DEBUGFS_STATS_ADD(rx_expand_skb_head); | 421 | local->rx_handlers_drop_nullfunc); |
| 477 | DEBUGFS_STATS_ADD(rx_expand_skb_head2); | 422 | DEBUGFS_STATS_ADD(rx_handlers_drop_defrag, |
| 478 | DEBUGFS_STATS_ADD(rx_handlers_fragments); | 423 | local->rx_handlers_drop_defrag); |
| 479 | DEBUGFS_STATS_ADD(tx_status_drop); | 424 | DEBUGFS_STATS_ADD(rx_handlers_drop_short, |
| 425 | local->rx_handlers_drop_short); | ||
| 426 | DEBUGFS_STATS_ADD(rx_handlers_drop_passive_scan, | ||
| 427 | local->rx_handlers_drop_passive_scan); | ||
| 428 | DEBUGFS_STATS_ADD(tx_expand_skb_head, | ||
| 429 | local->tx_expand_skb_head); | ||
| 430 | DEBUGFS_STATS_ADD(tx_expand_skb_head_cloned, | ||
| 431 | local->tx_expand_skb_head_cloned); | ||
| 432 | DEBUGFS_STATS_ADD(rx_expand_skb_head, | ||
| 433 | local->rx_expand_skb_head); | ||
| 434 | DEBUGFS_STATS_ADD(rx_expand_skb_head2, | ||
| 435 | local->rx_expand_skb_head2); | ||
| 436 | DEBUGFS_STATS_ADD(rx_handlers_fragments, | ||
| 437 | local->rx_handlers_fragments); | ||
| 438 | DEBUGFS_STATS_ADD(tx_status_drop, | ||
| 439 | local->tx_status_drop); | ||
| 480 | #endif | 440 | #endif |
| 481 | DEBUGFS_STATS_ADD(dot11ACKFailureCount); | 441 | DEBUGFS_DEVSTATS_ADD(dot11ACKFailureCount); |
| 482 | DEBUGFS_STATS_ADD(dot11RTSFailureCount); | 442 | DEBUGFS_DEVSTATS_ADD(dot11RTSFailureCount); |
| 483 | DEBUGFS_STATS_ADD(dot11FCSErrorCount); | 443 | DEBUGFS_DEVSTATS_ADD(dot11FCSErrorCount); |
| 484 | DEBUGFS_STATS_ADD(dot11RTSSuccessCount); | 444 | DEBUGFS_DEVSTATS_ADD(dot11RTSSuccessCount); |
| 485 | } | 445 | } |
diff --git a/net/mac80211/debugfs_sta.c b/net/mac80211/debugfs_sta.c index 9f140612224..576e024715e 100644 --- a/net/mac80211/debugfs_sta.c +++ b/net/mac80211/debugfs_sta.c | |||
| @@ -30,7 +30,6 @@ static ssize_t sta_ ##name## _read(struct file *file, \ | |||
| 30 | } | 30 | } |
| 31 | #define STA_READ_D(name, field) STA_READ(name, 20, field, "%d\n") | 31 | #define STA_READ_D(name, field) STA_READ(name, 20, field, "%d\n") |
| 32 | #define STA_READ_U(name, field) STA_READ(name, 20, field, "%u\n") | 32 | #define STA_READ_U(name, field) STA_READ(name, 20, field, "%u\n") |
| 33 | #define STA_READ_LU(name, field) STA_READ(name, 20, field, "%lu\n") | ||
| 34 | #define STA_READ_S(name, field) STA_READ(name, 20, field, "%s\n") | 33 | #define STA_READ_S(name, field) STA_READ(name, 20, field, "%s\n") |
| 35 | 34 | ||
| 36 | #define STA_OPS(name) \ | 35 | #define STA_OPS(name) \ |
| @@ -52,19 +51,7 @@ static const struct file_operations sta_ ##name## _ops = { \ | |||
| 52 | 51 | ||
| 53 | STA_FILE(aid, sta.aid, D); | 52 | STA_FILE(aid, sta.aid, D); |
| 54 | STA_FILE(dev, sdata->name, S); | 53 | STA_FILE(dev, sdata->name, S); |
| 55 | STA_FILE(rx_packets, rx_packets, LU); | ||
| 56 | STA_FILE(tx_packets, tx_packets, LU); | ||
| 57 | STA_FILE(rx_bytes, rx_bytes, LU); | ||
| 58 | STA_FILE(tx_bytes, tx_bytes, LU); | ||
| 59 | STA_FILE(rx_duplicates, num_duplicates, LU); | ||
| 60 | STA_FILE(rx_fragments, rx_fragments, LU); | ||
| 61 | STA_FILE(rx_dropped, rx_dropped, LU); | ||
| 62 | STA_FILE(tx_fragments, tx_fragments, LU); | ||
| 63 | STA_FILE(tx_filtered, tx_filtered_count, LU); | ||
| 64 | STA_FILE(tx_retry_failed, tx_retry_failed, LU); | ||
| 65 | STA_FILE(tx_retry_count, tx_retry_count, LU); | ||
| 66 | STA_FILE(last_signal, last_signal, D); | 54 | STA_FILE(last_signal, last_signal, D); |
| 67 | STA_FILE(wep_weak_iv_count, wep_weak_iv_count, LU); | ||
| 68 | 55 | ||
| 69 | static ssize_t sta_flags_read(struct file *file, char __user *userbuf, | 56 | static ssize_t sta_flags_read(struct file *file, char __user *userbuf, |
| 70 | size_t count, loff_t *ppos) | 57 | size_t count, loff_t *ppos) |
| @@ -306,6 +293,13 @@ STA_OPS(ht_capa); | |||
| 306 | debugfs_create_file(#name, 0400, \ | 293 | debugfs_create_file(#name, 0400, \ |
| 307 | sta->debugfs.dir, sta, &sta_ ##name## _ops); | 294 | sta->debugfs.dir, sta, &sta_ ##name## _ops); |
| 308 | 295 | ||
| 296 | #define DEBUGFS_ADD_COUNTER(name, field) \ | ||
| 297 | if (sizeof(sta->field) == sizeof(u32)) \ | ||
| 298 | debugfs_create_u32(#name, 0400, sta->debugfs.dir, \ | ||
| 299 | (u32 *) &sta->field); \ | ||
| 300 | else \ | ||
| 301 | debugfs_create_u64(#name, 0400, sta->debugfs.dir, \ | ||
| 302 | (u64 *) &sta->field); | ||
| 309 | 303 | ||
| 310 | void ieee80211_sta_debugfs_add(struct sta_info *sta) | 304 | void ieee80211_sta_debugfs_add(struct sta_info *sta) |
| 311 | { | 305 | { |
| @@ -338,20 +332,21 @@ void ieee80211_sta_debugfs_add(struct sta_info *sta) | |||
| 338 | DEBUGFS_ADD(last_seq_ctrl); | 332 | DEBUGFS_ADD(last_seq_ctrl); |
| 339 | DEBUGFS_ADD(agg_status); | 333 | DEBUGFS_ADD(agg_status); |
| 340 | DEBUGFS_ADD(dev); | 334 | DEBUGFS_ADD(dev); |
| 341 | DEBUGFS_ADD(rx_packets); | ||
| 342 | DEBUGFS_ADD(tx_packets); | ||
| 343 | DEBUGFS_ADD(rx_bytes); | ||
| 344 | DEBUGFS_ADD(tx_bytes); | ||
| 345 | DEBUGFS_ADD(rx_duplicates); | ||
| 346 | DEBUGFS_ADD(rx_fragments); | ||
| 347 | DEBUGFS_ADD(rx_dropped); | ||
| 348 | DEBUGFS_ADD(tx_fragments); | ||
| 349 | DEBUGFS_ADD(tx_filtered); | ||
| 350 | DEBUGFS_ADD(tx_retry_failed); | ||
| 351 | DEBUGFS_ADD(tx_retry_count); | ||
| 352 | DEBUGFS_ADD(last_signal); | 335 | DEBUGFS_ADD(last_signal); |
| 353 | DEBUGFS_ADD(wep_weak_iv_count); | ||
| 354 | DEBUGFS_ADD(ht_capa); | 336 | DEBUGFS_ADD(ht_capa); |
| 337 | |||
| 338 | DEBUGFS_ADD_COUNTER(rx_packets, rx_packets); | ||
| 339 | DEBUGFS_ADD_COUNTER(tx_packets, tx_packets); | ||
| 340 | DEBUGFS_ADD_COUNTER(rx_bytes, rx_bytes); | ||
| 341 | DEBUGFS_ADD_COUNTER(tx_bytes, tx_bytes); | ||
| 342 | DEBUGFS_ADD_COUNTER(rx_duplicates, num_duplicates); | ||
| 343 | DEBUGFS_ADD_COUNTER(rx_fragments, rx_fragments); | ||
| 344 | DEBUGFS_ADD_COUNTER(rx_dropped, rx_dropped); | ||
| 345 | DEBUGFS_ADD_COUNTER(tx_fragments, tx_fragments); | ||
| 346 | DEBUGFS_ADD_COUNTER(tx_filtered, tx_filtered_count); | ||
| 347 | DEBUGFS_ADD_COUNTER(tx_retry_failed, tx_retry_failed); | ||
| 348 | DEBUGFS_ADD_COUNTER(tx_retry_count, tx_retry_count); | ||
| 349 | DEBUGFS_ADD_COUNTER(wep_weak_iv_count, wep_weak_iv_count); | ||
| 355 | } | 350 | } |
| 356 | 351 | ||
| 357 | void ieee80211_sta_debugfs_remove(struct sta_info *sta) | 352 | void ieee80211_sta_debugfs_remove(struct sta_info *sta) |
