Messages in this thread Patch in this message |  | | | Date | Wed, 1 Jul 2009 21:28:18 -0700 (PDT) | | From | Linus Torvalds <> | | Subject | Re: printk regression? |
On Wed, 1 Jul 2009, Linus Torvalds wrote: > > Same goes for the insane binary printing crap. How about just making it > sane?
Untested.
Note the comment. I kept it doing the insane thing (print out bit#0 as the first bit), but do wonder if that's really what you want. Normally, you print the least-significant-bit right-most.
Linus --- arch/x86/kernel/apic/io_apic.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c index 4d0216f..cf52a29 100644 --- a/arch/x86/kernel/apic/io_apic.c +++ b/arch/x86/kernel/apic/io_apic.c @@ -1724,16 +1724,19 @@ __apicdebuginit(void) print_APIC_bitfield(int base) if (apic_verbosity == APIC_QUIET) return; - printk(KERN_DEBUG "0123456789abcdef0123456789abcdef\n" KERN_DEBUG); + printk(KERN_DEBUG "0123456789abcdef0123456789abcdef\n"); for (i = 0; i < 8; i++) { + char bin[33]; v = apic_read(base + i*0x10); + + /* Do we really want to print out LSB first? */ for (j = 0; j < 32; j++) { - if (v & (1<<j)) - printk("1"); - else - printk("0"); + bin[j] = '0' + (v&1); + v >>= 1; } - printk("\n"); + bin[32] = 0; + + printk(KERN_DEBUG "%s\n", bin); } } @@ -1745,7 +1748,7 @@ __apicdebuginit(void) print_local_APIC(void *dummy) if (apic_verbosity == APIC_QUIET) return; - printk("\n" KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n", + printk(KERN_DEBUG "printing local APIC contents on CPU#%d/%d:\n", smp_processor_id(), hard_smp_processor_id()); v = apic_read(APIC_ID); printk(KERN_INFO "... APIC ID: %08x (%01x)\n", v, read_apic_id());
|  |