From: Andrew Morton ia64: drivers/net/e1000/e1000_main.c: In function `e1000_dump': drivers/net/e1000/e1000_main.c:3365: warning: long long unsigned int format, u64 arg (arg 3) drivers/net/e1000/e1000_main.c:3365: warning: long long unsigned int format, u64 arg (arg 4) drivers/net/e1000/e1000_main.c:3365: warning: long long unsigned int format, dma_addr_t arg (arg 5) drivers/net/e1000/e1000_main.c:3365: warning: long long unsigned int format, long unsigned int arg (arg 8) drivers/net/e1000/e1000_main.c:3397: warning: long long unsigned int format, u64 arg (arg 3) drivers/net/e1000/e1000_main.c:3397: warning: long long unsigned int format, u64 arg (arg 4) drivers/net/e1000/e1000_main.c:3397: warning: long long unsigned int format, u64 arg (arg 5) drivers/net/e1000/e1000_main.c:3397: warning: long long unsigned int format, u64 arg (arg 6) drivers/net/e1000/e1000_main.c:3405: warning: long long unsigned int format, u64 arg (arg 3) drivers/net/e1000/e1000_main.c:3405: warning: long long unsigned int format, u64 arg (arg 4) drivers/net/e1000/e1000_main.c:3405: warning: long long unsigned int format, u64 arg (arg 5) drivers/net/e1000/e1000_main.c:3405: warning: long long unsigned int format, u64 arg (arg 6) drivers/net/e1000/e1000_main.c:3426: warning: long long unsigned int format, u64 arg (arg 3) drivers/net/e1000/e1000_main.c:3426: warning: long long unsigned int format, u64 arg (arg 4) drivers/net/e1000/e1000_main.c:3426: warning: long long unsigned int format, dma_addr_t arg (arg 5) you do not know what type is used to implement u64 and you cannot print them. Cc: Jeff Garzik Cc: Auke Kok Signed-off-by: Andrew Morton --- drivers/net/e1000/e1000_main.c | 37 +++++++++++++++++++++---------- 1 file changed, 26 insertions(+), 11 deletions(-) diff -puN drivers/net/e1000/e1000_main.c~e1000-printk-warning-fixes drivers/net/e1000/e1000_main.c --- a/drivers/net/e1000/e1000_main.c~e1000-printk-warning-fixes +++ a/drivers/net/e1000/e1000_main.c @@ -3500,11 +3500,16 @@ void e1000_dump(struct e1000_adapter* ad struct e1000_buffer *buffer_info = &tx_ring->buffer_info[i]; struct my_u { u64 a; u64 b;}; struct my_u *u = (struct my_u *)tx_desc; - printk("T[0x%03X] %016llX %016llX %016llX %04X %3X %016llX %p", - i, le64_to_cpu(u->a),le64_to_cpu(u->b), - (u64)buffer_info->dma, buffer_info->length, - buffer_info->next_to_watch, (u64)buffer_info->time_stamp, - buffer_info->skb); + printk("T[0x%03X] %016llX %016llX %016llX %04X %3X " + "%016llX %p", + i, + (unsigned long long)le64_to_cpu(u->a), + (unsigned long long)le64_to_cpu(u->b), + (unsigned long long)buffer_info->dma, + buffer_info->length, + buffer_info->next_to_watch, + (unsigned long long)buffer_info->time_stamp, + buffer_info->skb); if(i == tx_ring->next_to_use && i == tx_ring->next_to_clean) printk(" NTC/U\n"); else if(i == tx_ring->next_to_use) @@ -3534,15 +3539,22 @@ void e1000_dump(struct e1000_adapter* ad uint32_t staterr; staterr = le32_to_cpu(rx_desc->wb.middle.status_error); if (staterr & E1000_RXD_STAT_DD) { - printk("RWB[0x%03X] %016llX %016llX %016llX %016llX %p", - i, le64_to_cpu(u->a),le64_to_cpu(u->b), le64_to_cpu(u->c), le64_to_cpu(u->d), + printk("RWB[0x%03X] %016llX %016llX " + "%016llX %016llX %p", + i, + (unsigned long long)le64_to_cpu(u->a), + (unsigned long long)le64_to_cpu(u->b), + (unsigned long long)le64_to_cpu(u->c), + (unsigned long long)le64_to_cpu(u->d), buffer_info->skb); } else { printk("R [0x%03X] %016llX %016llX %016llX" " %016llX %016llX %p", i, - le64_to_cpu(u->a), le64_to_cpu(u->b), - le64_to_cpu(u->c), le64_to_cpu(u->d), + (unsigned long long)le64_to_cpu(u->a), + (unsigned long long)le64_to_cpu(u->b), + (unsigned long long)le64_to_cpu(u->c), + (unsigned long long)le64_to_cpu(u->d), (unsigned long long)buffer_info->dma, buffer_info->skb); } @@ -3564,8 +3576,11 @@ void e1000_dump(struct e1000_adapter* ad struct my_u { u64 a; u64 b;}; struct my_u *u = (struct my_u *)rx_desc; printk("R[0x%03X] %016llX %016llX %016llX %p", - i, le64_to_cpu(u->a),le64_to_cpu(u->b), - (u64)buffer_info->dma, buffer_info->skb); + i, + (unsigned long long)le64_to_cpu(u->a), + (unsigned long long)le64_to_cpu(u->b), + (unsigned long long)buffer_info->dma, + buffer_info->skb); if(i == rx_ring->next_to_use) printk(" NTU\n"); else if(i == rx_ring->next_to_clean) _