Re: [PATCH][2.5] replace flush_map() in arch/i386/mm/pageattr.c w ith flush_tlb_all()

From: Dave Jones (davej@codemonkey.org.uk)
Date: Fri Feb 21 2003 - 09:20:39 EST


On Fri, Feb 21, 2003 at 01:42:12PM +0100, Thomas Schlichter 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...

That would appear to do what you want, but its an ugly construct to
be repeating everywhere that wants to call a function on all CPUs.
It would probably clean things up a lot if we had a function to do..

static inline void on_each_cpu(void *func)
{
#ifdef CONFIG_SMP
        preempt_disable();
        smp_call_function(func, NULL, 1, 1);
        func(NULL);
        preempt_enable();
#else
        func(NULL);
#endif
}

Bluesmoke and agpgart could both use this to cleanup some mess,
and no doubt there are others

Comments?

                Dave

-- 
| Dave Jones.        http://www.codemonkey.org.uk
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sun Feb 23 2003 - 22:00:33 EST