public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Thomas Schlichter <schlicht@uni-mannheim.de>
To: Hugh Dickins <hugh@veritas.com>
Cc: Dave Jones <davej@codemonkey.org.uk>,
	Andrew Morton <akpm@digeo.com>,
	Linux Kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH][2.5] replace flush_map() in arch/i386/mm/pageattr.c w ith flush_tlb_all()
Date: Fri, 21 Feb 2003 13:42:12 +0100	[thread overview]
Message-ID: <200302211342.19007.schlicht@uni-mannheim.de> (raw)
In-Reply-To: <Pine.LNX.4.44.0302211217390.1531-100000@localhost.localdomain>


[-- Attachment #1.1: body text --]
[-- Type: text/plain, Size: 350 bytes --]

On Fri, 21 Feb 2003, Hugh Dickins wrote:
> No.  All that does is make sure that the cpu you start out on is
> flushed, once or twice, and the cpu you end up on may be missed.
> Use preempt_disable and preempt_enable.

Oh, you are right! I think I am totally stupid this morning...!
Now finally I hope this is the correct patch...

  Thomas Schlichter

[-- Attachment #1.2: flush_map_preempt.patch --]
[-- Type: text/x-diff, Size: 968 bytes --]

--- linux-2.5.62/arch/i386/mm/pageattr.c.orig	Fri Feb 21 13:27:59 2003
+++ linux-2.5.62/arch/i386/mm/pageattr.c	Fri Feb 21 13:32:39 2003
@@ -131,10 +131,14 @@
 
 static inline void flush_map(void)
 {	
-#ifdef CONFIG_SMP 
+#ifdef CONFIG_SMP
+	preempt_disable();
 	smp_call_function(flush_kernel_map, NULL, 1, 1);
-#endif	
 	flush_kernel_map(NULL);
+	preempt_enable();
+#else
+	flush_kernel_map(NULL);
+#endif
 }
 
 struct deferred_page { 
--- linux-2.5.62/arch/x86_64/mm/pageattr.c.orig	Fri Feb 21 13:33:38 2003
+++ linux-2.5.62/arch/x86_64/mm/pageattr.c	Fri Feb 21 13:34:40 2003
@@ -123,10 +123,14 @@
 
 static inline void flush_map(unsigned long address)
 {	
-#ifdef CONFIG_SMP 
+#ifdef CONFIG_SMP
+	preempt_disable();
 	smp_call_function(flush_kernel_map, (void *)address, 1, 1);
-#endif	
 	flush_kernel_map((void *)address);
+	preempt_enable();
+#else
+	flush_kernel_map((void *)address);
+#endif
 }
 
 struct deferred_page { 

[-- Attachment #2: signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

  reply	other threads:[~2003-02-21 12:32 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-20 20:00 [PATCH][2.5] replace flush_map() in arch/i386/mm/pageattr.c with flush_tlb_all() Thomas Schlichter
2003-02-20 20:20 ` Andrew Morton
2003-02-20 20:36 ` Dave Jones
2003-02-20 20:30   ` Thomas Schlichter
2003-02-20 20:50     ` Dave Jones
2003-02-21 11:24       ` Thomas Schlichter
2003-02-21 12:19         ` [PATCH][2.5] replace flush_map() in arch/i386/mm/pageattr.c w ith flush_tlb_all() Hugh Dickins
2003-02-21 12:42           ` Thomas Schlichter [this message]
2003-02-21 14:20             ` Dave Jones
2003-02-21 14:25               ` Thomas Schlichter
2003-02-21 15:01                 ` Dave Jones
2003-02-21 14:52               ` Hugh Dickins
2003-02-21 15:10                 ` Dave Jones
2003-02-21 17:36               ` Dave Jones
2003-02-22  3:23                 ` [PATCH][2.5] fix preempt-issues with smp_call_function() Thomas Schlichter

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=200302211342.19007.schlicht@uni-mannheim.de \
    --to=schlicht@uni-mannheim.de \
    --cc=akpm@digeo.com \
    --cc=davej@codemonkey.org.uk \
    --cc=hugh@veritas.com \
    --cc=linux-kernel@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox