All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bandan Das <bsd@redhat.com>
To: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>
Cc: x86@kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] x86/apic: remove read/write test in verify_local_apic()
Date: Wed, 18 Mar 2015 16:45:54 -0400	[thread overview]
Message-ID: <jpgtwxiuj99.fsf@redhat.com> (raw)


Most newer processors have the APIC_ID read-only and this
test probably fails on most boxes anyway. Fix typos.

Signed-off-by: Bandan Das <bsd@redhat.com>
---
Honestly, I don't think this function is really needed.
It's called for both UP/MP but the return value isn't
used by any of them. Maybe, we should just remove it ?

 arch/x86/kernel/apic/apic.c | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index ad3639a..d54601e 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -1105,13 +1105,13 @@ int __init verify_local_APIC(void)
 	/*
 	 * The two version reads above should print the same
 	 * numbers.  If the second one is different, then we
-	 * poke at a non-APIC.
+	 * are poking at a non-APIC region.
 	 */
 	if (reg1 != reg0)
 		return 0;
 
 	/*
-	 * Check if the version looks reasonably.
+	 * Check if the version looks reasonable.
 	 */
 	reg1 = GET_APIC_VERSION(reg0);
 	if (reg1 == 0x00 || reg1 == 0xff)
@@ -1121,21 +1121,17 @@ int __init verify_local_APIC(void)
 		return 0;
 
 	/*
-	 * The ID register is read/write in a real APIC.
+	 * Just print the APIC ID
+	 * Writing to it is not a reliable test - older processors
+	 * support it, while newer processors don't
 	 */
 	reg0 = apic_read(APIC_ID);
-	apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg0);
-	apic_write(APIC_ID, reg0 ^ apic->apic_id_mask);
-	reg1 = apic_read(APIC_ID);
-	apic_printk(APIC_DEBUG, "Getting ID: %x\n", reg1);
-	apic_write(APIC_ID, reg0);
-	if (reg1 != (reg0 ^ apic->apic_id_mask))
-		return 0;
+	apic_printk(APIC_DEBUG, "Getting Local APIC ID: %x\n", reg0);
 
 	/*
 	 * The next two are just to see if we have sane values.
 	 * They're only really relevant if we're in Virtual Wire
-	 * compatibility mode, but most boxes are anymore.
+	 * compatibility mode, but most boxes aren't anymore.
 	 */
 	reg0 = apic_read(APIC_LVT0);
 	apic_printk(APIC_DEBUG, "Getting LVT0: %x\n", reg0);
-- 
2.1.0


             reply	other threads:[~2015-03-18 20:46 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-18 20:45 Bandan Das [this message]
2015-03-27 12:10 ` [PATCH] x86/apic: remove read/write test in verify_local_apic() Ingo Molnar

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=jpgtwxiuj99.fsf@redhat.com \
    --to=bsd@redhat.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@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.