On Tue, Nov 22, 2011 at 01:08:45PM +0200, Gilad Ben-Yossef wrote: > -static void on_each_cpu_mask(void (*func)(void *), void *info, int wait, > - const struct cpumask *mask) > -{ > - preempt_disable(); > - > - smp_call_function_many(mask, func, info, wait); > - if (cpumask_test_cpu(smp_processor_id(), mask)) > - func(info); > - > - preempt_enable(); > -} What hasn't been said in the descriptions (I couldn't find it) is that there's a semantic change between the new generic version and this version - that is, we run the function with IRQs disabled on the local CPU, whereas the version above runs it with IRQs potentially enabled. Luckily, for TLB flushing this is probably not a problem, but it's something that should've been pointed out in the patch description. -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>