|
@@ -172,7 +172,7 @@ static void __cpa_flush_all(void *arg)
|
|
|
|
|
|
static void cpa_flush_all(unsigned long cache)
|
|
static void cpa_flush_all(unsigned long cache)
|
|
{
|
|
{
|
|
- BUG_ON(irqs_disabled());
|
|
|
|
|
|
+ BUG_ON(irqs_disabled() && !early_boot_irqs_disabled);
|
|
|
|
|
|
on_each_cpu(__cpa_flush_all, (void *) cache, 1);
|
|
on_each_cpu(__cpa_flush_all, (void *) cache, 1);
|
|
}
|
|
}
|
|
@@ -236,7 +236,7 @@ static void cpa_flush_array(unsigned long *start, int numpages, int cache,
|
|
unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
|
|
unsigned long do_wbinvd = cache && numpages >= 1024; /* 4M threshold */
|
|
#endif
|
|
#endif
|
|
|
|
|
|
- BUG_ON(irqs_disabled());
|
|
|
|
|
|
+ BUG_ON(irqs_disabled() && !early_boot_irqs_disabled);
|
|
|
|
|
|
on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1);
|
|
on_each_cpu(__cpa_flush_all, (void *) do_wbinvd, 1);
|
|
|
|
|