This test is senseless, in my opinion:
> +		if (cpu_has_pge)					\
> +			__flush_tlb_single(addr);			\
The test _should_ be for something like
	if (cpu_has_invlpg)
		__flush_tlb_single(addr);
since we want to use the invlpg instruction regardless of any PGE issues 
if it is available.
There's another issue, which is the fact that I do not believe that invlpg 
is even guaranteed to invalidate a G page at all - although obviously all 
current CPU's seem to work that way. However, I don't see that documented 
anywhere. It might make sense to mark the places that expect to invalidate 
a global page explicitly, and call that function "flush_one_global_rlb()" 
(even if it - at least for now - does the same thing as the regular single 
invalidate).
		Linus
-
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/