From: "Huang, Ying" <ying.huang@intel.com>
To: Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Thomas Gleixner <tglx@linutronix.de>, Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org
Subject: [PATCH 2/5] x86: c_p_a clflush_cache_range fix
Date: Thu, 31 Jan 2008 15:36:02 +0800 [thread overview]
Message-ID: <1201764962.12950.23.camel@caritas-dev.intel.com> (raw)
Because in i386 early boot stage, boot_cpu_data may be not available,
which makes clflush_cach_range() into infinite loop, which is called
by change_page_attr(). This patch fixes this by providing a default
clflush_size of 64. But the better method may be providing a
early_identify_cpu() for i386.
Signed-off-by: Huang Ying <ying.huang@intel.com>
---
arch/x86/mm/pageattr.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/arch/x86/mm/pageattr.c
+++ b/arch/x86/mm/pageattr.c
@@ -36,11 +36,14 @@ within(unsigned long addr, unsigned long
*/
void clflush_cache_range(void *vaddr, unsigned int size)
{
+ int clflush_size;
void *vend = vaddr + size - 1;
mb();
- for (; vaddr < vend; vaddr += boot_cpu_data.x86_clflush_size)
+ /* In boot stage, boot_cpu_data may be not available */
+ clflush_size = boot_cpu_data.x86_clflush_size ? : 64;
+ for (; vaddr < vend; vaddr += clflush_size)
clflush(vaddr);
/*
* Flush any possible final partial cacheline:
next reply other threads:[~2008-01-31 7:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-31 7:36 Huang, Ying [this message]
2008-01-31 7:40 ` [PATCH 2/5] x86: c_p_a clflush_cache_range fix Andi Kleen
2008-01-31 8:27 ` Huang, Ying
2008-01-31 12:08 ` 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=1201764962.12950.23.camel@caritas-dev.intel.com \
--to=ying.huang@intel.com \
--cc=ak@suse.de \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
/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.