Messages in this thread Patch in this message | | | From | Thomas Schlichter <> | Subject | Re: [PATCH][2.5] replace flush_map() in arch/i386/mm/pageattr.c with flush_tlb_all() | Date | Fri, 21 Feb 2003 12:24:32 +0100 |
| |
On Thu, Feb 20, 2003 21:50, Dave Jones wrote: > Its hinting at a possible optimisation, not saying > that it is unneeded.
OK, sorry, than I just misunderstood the comment...
So here is a minimal change patch that should solve the preempt issue in flush_map().
Instead of just doing a preempt_disable() before and a preempt_enable() after the flush_kernel_map() calls I just changed the order so that the preempt point is not between them...
Thomas--- linux-2.5.62/arch/i386/mm/pageattr.c.orig Fri Feb 21 11:47:19 2003 +++ linux-2.5.62/arch/i386/mm/pageattr.c Fri Feb 21 12:12:15 2003 @@ -131,10 +131,10 @@ static inline void flush_map(void) { + flush_kernel_map(NULL); #ifdef CONFIG_SMP smp_call_function(flush_kernel_map, NULL, 1, 1); #endif - flush_kernel_map(NULL); } struct deferred_page { --- linux-2.5.62/arch/x86_64/mm/pageattr.c.orig Fri Feb 21 12:14:25 2003 +++ linux-2.5.62/arch/x86_64/mm/pageattr.c Fri Feb 21 12:14:30 2003 @@ -123,10 +123,10 @@ static inline void flush_map(unsigned long address) { + flush_kernel_map((void *)address); #ifdef CONFIG_SMP smp_call_function(flush_kernel_map, (void *)address, 1, 1); #endif - flush_kernel_map((void *)address); } struct deferred_page { [unhandled content-type:application/pgp-signature] | |