From: Ingo Molnar <mingo@elte.hu>
To: Yinghai Lu <yinghai@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
"H. Peter Anvin" <hpa@zytor.com>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: [PATCH, v3] x86: Fix printk call in print_local_apic()
Date: Thu, 2 Jul 2009 08:50:45 +0200 [thread overview]
Message-ID: <20090702065045.GA28135@elte.hu> (raw)
In-Reply-To: <4A4C5638.20706@kernel.org>
* Yinghai Lu <yinghai@kernel.org> wrote:
> > -__apicdebuginit(void) print_APIC_bitfield(int base)
> > +__apicdebuginit(void) print_APIC_(int base)
>
> ?
Uhm, i should stop mixing Quilt with Git :-/ Tested v3 patch below.
Ingo
---------------->
>From 113179d18752f4a674dc71c59b426a64fa106f63 Mon Sep 17 00:00:00 2001
From: Ingo Molnar <mingo@elte.hu>
Date: Thu, 2 Jul 2009 08:49:14 +0200
Subject: [PATCH] x86: fix printk call in print_local_apic()
Instead of this:
[ 75.690022] <7>printing local APIC contents on CPU#0/0:
[ 75.704406] ... APIC ID: 00000000 (0)
[ 75.707905] ... APIC VERSION: 00060015
[ 75.722551] ... APIC TASKPRI: 00000000 (00)
[ 75.725473] ... APIC PROCPRI: 00000000
[ 75.728592] ... APIC LDR: 00000001
[ 75.742137] ... APIC SPIV: 000001ff
[ 75.744101] ... APIC ISR field:
[ 75.746648] 0123456789abcdef0123456789abcdef
[ 75.746649] <7>00000000000000000000000000000000
Improve the code to be saner and simpler and just print out
the bitfield in a single line using hexa values - not as a
(rather pointless) binary bitfield.
Partially reused Linus's initial fix for this.
Reported-and-Tested-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
LKML-Reference: <4A4C43BC.90506@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/x86/kernel/apic/io_apic.c | 31 +++++++++++++------------------
1 files changed, 13 insertions(+), 18 deletions(-)
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 4d0216f..db277b5 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -1716,25 +1716,19 @@ __apicdebuginit(void) print_IO_APIC(void)
return;
}
-__apicdebuginit(void) print_APIC_bitfield(int base)
+__apicdebuginit(void) print_APIC_field(int base)
{
- unsigned int v;
- int i, j;
+ int i;
if (apic_verbosity == APIC_QUIET)
return;
- printk(KERN_DEBUG "0123456789abcdef0123456789abcdef\n" KERN_DEBUG);
- for (i = 0; i < 8; i++) {
- v = apic_read(base + i*0x10);
- for (j = 0; j < 32; j++) {
- if (v & (1<<j))
- printk("1");
- else
- printk("0");
- }
- printk("\n");
- }
+ printk(KERN_DEBUG);
+
+ for (i = 0; i < 8; i++)
+ printk(KERN_CONT "%08x", i, apic_read(base + i*0x10));
+
+ printk(KERN_CONT "\n");
}
__apicdebuginit(void) print_local_APIC(void *dummy)
@@ -1745,7 +1739,8 @@ __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 "\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());
@@ -1786,11 +1781,11 @@ __apicdebuginit(void) print_local_APIC(void *dummy)
printk(KERN_DEBUG "... APIC SPIV: %08x\n", v);
printk(KERN_DEBUG "... APIC ISR field:\n");
- print_APIC_bitfield(APIC_ISR);
+ print_APIC_field(APIC_ISR);
printk(KERN_DEBUG "... APIC TMR field:\n");
- print_APIC_bitfield(APIC_TMR);
+ print_APIC_field(APIC_TMR);
printk(KERN_DEBUG "... APIC IRR field:\n");
- print_APIC_bitfield(APIC_IRR);
+ print_APIC_field(APIC_IRR);
if (APIC_INTEGRATED(ver)) { /* !82489DX */
if (maxlvt > 3) /* Due to the Pentium erratum 3AP. */
next prev parent reply other threads:[~2009-07-02 6:51 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-02 4:14 printk regression? Yinghai Lu
2009-07-02 4:23 ` Linus Torvalds
2009-07-02 4:28 ` Linus Torvalds
2009-07-02 5:21 ` [PATCH] x86: fix printk calling in print_local_apic Yinghai Lu
2009-07-02 6:12 ` Ingo Molnar
2009-07-02 6:28 ` [PATCH, v2] x86: Fix printk call in print_local_apic() Ingo Molnar
2009-07-02 6:39 ` Yinghai Lu
2009-07-02 6:50 ` Ingo Molnar [this message]
2009-07-02 6:48 ` Andrew Morton
2009-07-02 6:59 ` [PATCH, v4] " Ingo Molnar
2009-07-02 7:09 ` Ingo Molnar
2009-07-02 7:07 ` [tip:x86/urgent] " tip-bot for Ingo Molnar
2009-07-02 5:42 ` printk regression? Joe Perches
2009-07-02 12:29 ` Michael S. Zick
2009-07-02 15:29 ` Joe Perches
2009-07-02 17:42 ` Linus Torvalds
2009-07-02 17:27 ` Linus Torvalds
2009-07-02 17:38 ` Joe Perches
2009-07-02 17:43 ` Linus Torvalds
2009-07-06 20:05 ` [PATCH] Remove multiple KERN_ prefixes from printk formats Joe Perches
2009-07-06 20:23 ` Mike Frysinger
2009-07-06 20:29 ` Joe Perches
2009-07-06 20:33 ` Linus Torvalds
2009-07-06 20:36 ` Mike Frysinger
2009-07-08 21:55 ` [PATCH] arch/blackfin/kernel/traps.c: Add visually separating newlines to printks Joe Perches
2009-07-06 20:38 ` [PATCH] Remove multiple KERN_ prefixes from printk formats Joe Perches
2009-07-08 17:11 ` Joe Perches
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090702065045.GA28135@elte.hu \
--to=mingo@elte.hu \
--cc=akpm@linux-foundation.org \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=yinghai@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.