diff options
author | Tushar Dave <tushar.n.dave@intel.com> | 2012-02-10 03:06:36 -0500 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2012-02-24 05:03:43 -0500 |
commit | e29b5d8f0896bfe908c0036f2614a89e71bdf42c (patch) | |
tree | 0edfbcfd9d1f25b8c1c3b7f1490aa019cdbf751a /drivers/net/ethernet/intel | |
parent | 542c3f4ea90fb6de47cce13df1da9ed9b1563981 (diff) |
v2 e1000: Neaten e1000_dump function
Use pr_<level> for printk
Use temporary instead of multiple pr_conts
Coalesce formats.
Save a few bytes of object code too:
$ size drivers/net/ethernet/intel/e1000/e1000_main.o*
text data bss dec hex filename
60507 369 14120 74996 124f4
drivers/net/ethernet/intel/e1000/e1000_main.o.new
60717 369 14176 75262 125fe
drivers/net/ethernet/intel/e1000/e1000_main.o.old
Removed printing of pktdata.
Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Tushar Dave <tushar.n.dave@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel')
-rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 113 |
1 files changed, 50 insertions, 63 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 8aa8097558f9..6419a88a69e6 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c | |||
@@ -3261,16 +3261,16 @@ static void e1000_regdump(struct e1000_adapter *adapter) | |||
3261 | u32 *regs_buff = regs; | 3261 | u32 *regs_buff = regs; |
3262 | int i = 0; | 3262 | int i = 0; |
3263 | 3263 | ||
3264 | char *reg_name[] = { | 3264 | static const char * const reg_name[] = { |
3265 | "CTRL", "STATUS", | 3265 | "CTRL", "STATUS", |
3266 | "RCTL", "RDLEN", "RDH", "RDT", "RDTR", | 3266 | "RCTL", "RDLEN", "RDH", "RDT", "RDTR", |
3267 | "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT", | 3267 | "TCTL", "TDBAL", "TDBAH", "TDLEN", "TDH", "TDT", |
3268 | "TIDV", "TXDCTL", "TADV", "TARC0", | 3268 | "TIDV", "TXDCTL", "TADV", "TARC0", |
3269 | "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1", | 3269 | "TDBAL1", "TDBAH1", "TDLEN1", "TDH1", "TDT1", |
3270 | "TXDCTL1", "TARC1", | 3270 | "TXDCTL1", "TARC1", |
3271 | "CTRL_EXT", "ERT", "RDBAL", "RDBAH", | 3271 | "CTRL_EXT", "ERT", "RDBAL", "RDBAH", |
3272 | "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC", | 3272 | "TDFH", "TDFT", "TDFHS", "TDFTS", "TDFPC", |
3273 | "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC" | 3273 | "RDFH", "RDFT", "RDFHS", "RDFTS", "RDFPC" |
3274 | }; | 3274 | }; |
3275 | 3275 | ||
3276 | regs_buff[0] = er32(CTRL); | 3276 | regs_buff[0] = er32(CTRL); |
@@ -3316,10 +3316,8 @@ static void e1000_regdump(struct e1000_adapter *adapter) | |||
3316 | regs_buff[37] = er32(RDFPC); | 3316 | regs_buff[37] = er32(RDFPC); |
3317 | 3317 | ||
3318 | pr_info("Register dump\n"); | 3318 | pr_info("Register dump\n"); |
3319 | for (i = 0; i < NUM_REGS; i++) { | 3319 | for (i = 0; i < NUM_REGS; i++) |
3320 | printk(KERN_INFO "%-15s %08x\n", | 3320 | pr_info("%-15s %08x\n", reg_name[i], regs_buff[i]); |
3321 | reg_name[i], regs_buff[i]); | ||
3322 | } | ||
3323 | } | 3321 | } |
3324 | 3322 | ||
3325 | /* | 3323 | /* |
@@ -3370,10 +3368,8 @@ static void e1000_dump(struct e1000_adapter *adapter) | |||
3370 | * +----------------------------------------------------------------+ | 3368 | * +----------------------------------------------------------------+ |
3371 | * 63 48 47 40 39 36 35 32 31 24 23 20 19 0 | 3369 | * 63 48 47 40 39 36 35 32 31 24 23 20 19 0 |
3372 | */ | 3370 | */ |
3373 | printk(KERN_INFO "Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ]" | 3371 | pr_info("Tc[desc] [Ce CoCsIpceCoS] [MssHlRSCm0Plen] [bi->dma ] leng ntw timestmp bi->skb\n"); |
3374 | " leng ntw timestmp bi->skb\n"); | 3372 | pr_info("Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ] leng ntw timestmp bi->skb\n"); |
3375 | printk(KERN_INFO "Td[desc] [address 63:0 ] [VlaPoRSCm1Dlen] [bi->dma ]" | ||
3376 | " leng ntw timestmp bi->skb\n"); | ||
3377 | 3373 | ||
3378 | if (!netif_msg_tx_done(adapter)) | 3374 | if (!netif_msg_tx_done(adapter)) |
3379 | goto rx_ring_summary; | 3375 | goto rx_ring_summary; |
@@ -3383,27 +3379,23 @@ static void e1000_dump(struct e1000_adapter *adapter) | |||
3383 | struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i]; | 3379 | struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i]; |
3384 | struct my_u { u64 a; u64 b; }; | 3380 | struct my_u { u64 a; u64 b; }; |
3385 | struct my_u *u = (struct my_u *)tx_desc; | 3381 | struct my_u *u = (struct my_u *)tx_desc; |
3386 | printk(KERN_INFO "T%c[0x%03X] %016llX %016llX %016llX %04X %3X " | 3382 | const char *type; |
3387 | "%016llX %p", | 3383 | |
3388 | ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i, | ||
3389 | le64_to_cpu(u->a), le64_to_cpu(u->b), | ||
3390 | (u64)buffer_info->dma, buffer_info->length, | ||
3391 | buffer_info->next_to_watch, (u64)buffer_info->time_stamp, | ||
3392 | buffer_info->skb); | ||
3393 | if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean) | 3384 | if (i == tx_ring->next_to_use && i == tx_ring->next_to_clean) |
3394 | printk(KERN_CONT" NTC/U\n"); | 3385 | type = "NTC/U"; |
3395 | else if (i == tx_ring->next_to_use) | 3386 | else if (i == tx_ring->next_to_use) |
3396 | printk(KERN_CONT " NTU\n"); | 3387 | type = "NTU"; |
3397 | else if (i == tx_ring->next_to_clean) | 3388 | else if (i == tx_ring->next_to_clean) |
3398 | printk(KERN_CONT " NTC\n"); | 3389 | type = "NTC"; |
3399 | else | 3390 | else |
3400 | printk(KERN_CONT "\n"); | 3391 | type = ""; |
3401 | 3392 | ||
3402 | 3393 | pr_info("T%c[0x%03X] %016llX %016llX %016llX %04X %3X %016llX %p %s\n", | |
3403 | if (netif_msg_pktdata(adapter) && buffer_info->dma != 0) | 3394 | ((le64_to_cpu(u->b) & (1<<20)) ? 'd' : 'c'), i, |
3404 | print_hex_dump(KERN_INFO, "", DUMP_PREFIX_ADDRESS, | 3395 | le64_to_cpu(u->a), le64_to_cpu(u->b), |
3405 | 16, 1, phys_to_virt(buffer_info->dma), | 3396 | (u64)buffer_info->dma, buffer_info->length, |
3406 | buffer_info->length, true); | 3397 | buffer_info->next_to_watch, |
3398 | (u64)buffer_info->time_stamp, buffer_info->skb, type); | ||
3407 | } | 3399 | } |
3408 | 3400 | ||
3409 | rx_ring_summary: | 3401 | rx_ring_summary: |
@@ -3421,8 +3413,7 @@ rx_ring_summary: | |||
3421 | * +-----------------------------------------------------+ | 3413 | * +-----------------------------------------------------+ |
3422 | * 63 48 47 40 39 32 31 16 15 0 | 3414 | * 63 48 47 40 39 32 31 16 15 0 |
3423 | */ | 3415 | */ |
3424 | printk(KERN_INFO "R[desc] [address 63:0 ] [vl er S cks ln] " | 3416 | pr_info("R[desc] [address 63:0 ] [vl er S cks ln] [bi->dma ] [bi->skb]\n"); |
3425 | "[bi->dma ] [bi->skb]\n"); | ||
3426 | 3417 | ||
3427 | if (!netif_msg_rx_status(adapter)) | 3418 | if (!netif_msg_rx_status(adapter)) |
3428 | goto exit; | 3419 | goto exit; |
@@ -3432,44 +3423,40 @@ rx_ring_summary: | |||
3432 | struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i]; | 3423 | struct e1000_buffer *buffer_info = &rx_ring->buffer_info[i]; |
3433 | struct my_u { u64 a; u64 b; }; | 3424 | struct my_u { u64 a; u64 b; }; |
3434 | struct my_u *u = (struct my_u *)rx_desc; | 3425 | struct my_u *u = (struct my_u *)rx_desc; |
3435 | printk(KERN_INFO "R[0x%03X] %016llX %016llX %016llX %p", | 3426 | const char *type; |
3436 | i, le64_to_cpu(u->a), le64_to_cpu(u->b), | 3427 | |
3437 | (u64)buffer_info->dma, buffer_info->skb); | ||
3438 | if (i == rx_ring->next_to_use) | 3428 | if (i == rx_ring->next_to_use) |
3439 | printk(KERN_CONT " NTU\n"); | 3429 | type = "NTU"; |
3440 | else if (i == rx_ring->next_to_clean) | 3430 | else if (i == rx_ring->next_to_clean) |
3441 | printk(KERN_CONT " NTC\n"); | 3431 | type = "NTC"; |
3442 | else | 3432 | else |
3443 | printk(KERN_CONT "\n"); | 3433 | type = ""; |
3444 | |||
3445 | if (netif_msg_pktdata(adapter)) | ||
3446 | print_hex_dump(KERN_INFO, "", | ||
3447 | DUMP_PREFIX_ADDRESS, 16, 1, | ||
3448 | phys_to_virt(buffer_info->dma), | ||
3449 | buffer_info->length, true); | ||
3450 | 3434 | ||
3435 | pr_info("R[0x%03X] %016llX %016llX %016llX %p %s\n", | ||
3436 | i, le64_to_cpu(u->a), le64_to_cpu(u->b), | ||
3437 | (u64)buffer_info->dma, buffer_info->skb, type); | ||
3451 | } /* for */ | 3438 | } /* for */ |
3452 | 3439 | ||
3453 | /* dump the descriptor caches */ | 3440 | /* dump the descriptor caches */ |
3454 | /* rx */ | 3441 | /* rx */ |
3455 | printk(KERN_INFO "e1000: Rx descriptor cache in 64bit format\n"); | 3442 | pr_info("Rx descriptor cache in 64bit format\n"); |
3456 | for (i = 0x6000; i <= 0x63FF ; i += 0x10) { | 3443 | for (i = 0x6000; i <= 0x63FF ; i += 0x10) { |
3457 | printk(KERN_INFO "R%04X: %08X|%08X %08X|%08X\n", | 3444 | pr_info("R%04X: %08X|%08X %08X|%08X\n", |
3458 | i, | 3445 | i, |
3459 | readl(adapter->hw.hw_addr + i+4), | 3446 | readl(adapter->hw.hw_addr + i+4), |
3460 | readl(adapter->hw.hw_addr + i), | 3447 | readl(adapter->hw.hw_addr + i), |
3461 | readl(adapter->hw.hw_addr + i+12), | 3448 | readl(adapter->hw.hw_addr + i+12), |
3462 | readl(adapter->hw.hw_addr + i+8)); | 3449 | readl(adapter->hw.hw_addr + i+8)); |
3463 | } | 3450 | } |
3464 | /* tx */ | 3451 | /* tx */ |
3465 | printk(KERN_INFO "e1000: Tx descriptor cache in 64bit format\n"); | 3452 | pr_info("Tx descriptor cache in 64bit format\n"); |
3466 | for (i = 0x7000; i <= 0x73FF ; i += 0x10) { | 3453 | for (i = 0x7000; i <= 0x73FF ; i += 0x10) { |
3467 | printk(KERN_INFO "T%04X: %08X|%08X %08X|%08X\n", | 3454 | pr_info("T%04X: %08X|%08X %08X|%08X\n", |
3468 | i, | 3455 | i, |
3469 | readl(adapter->hw.hw_addr + i+4), | 3456 | readl(adapter->hw.hw_addr + i+4), |
3470 | readl(adapter->hw.hw_addr + i), | 3457 | readl(adapter->hw.hw_addr + i), |
3471 | readl(adapter->hw.hw_addr + i+12), | 3458 | readl(adapter->hw.hw_addr + i+12), |
3472 | readl(adapter->hw.hw_addr + i+8)); | 3459 | readl(adapter->hw.hw_addr + i+8)); |
3473 | } | 3460 | } |
3474 | exit: | 3461 | exit: |
3475 | return; | 3462 | return; |