|
@@ -319,26 +319,12 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
|
|
|
int in_flags, struct page **pages)
|
|
|
{
|
|
|
unsigned int i, level;
|
|
|
-#ifdef CONFIG_PREEMPT
|
|
|
- /*
|
|
|
- * Avoid wbinvd() because it causes latencies on all CPUs,
|
|
|
- * regardless of any CPU isolation that may be in effect.
|
|
|
- *
|
|
|
- * This should be extended for CAT enabled systems independent of
|
|
|
- * PREEMPT because wbinvd() does not respect the CAT partitions and
|
|
|
- * this is exposed to unpriviledged users through the graphics
|
|
|
- * subsystem.
|
|
|
- */
|
|
|
- unsigned long do_wbinvd = 0;
|
|
|
-#else
|
|
|
- unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
|
|
|
-#endif
|
|
|
|
|
|
BUG_ON(irqs_disabled() && !early_boot_irqs_disabled);
|
|
|
|
|
|
- on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1);
|
|
|
+ flush_tlb_all();
|
|
|
|
|
|
- if (!cache || do_wbinvd)
|
|
|
+ if (!cache)
|
|
|
return;
|
|
|
|
|
|
/*
|