|
|
@@ -23,7 +23,7 @@
|
|
|
static inline void __ide_flush_prologue(void)
|
|
|
{
|
|
|
#ifdef CONFIG_SMP
|
|
|
- if (cpu_has_dc_aliases)
|
|
|
+ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc)
|
|
|
preempt_disable();
|
|
|
#endif
|
|
|
}
|
|
|
@@ -31,14 +31,14 @@ static inline void __ide_flush_prologue(void)
|
|
|
static inline void __ide_flush_epilogue(void)
|
|
|
{
|
|
|
#ifdef CONFIG_SMP
|
|
|
- if (cpu_has_dc_aliases)
|
|
|
+ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc)
|
|
|
preempt_enable();
|
|
|
#endif
|
|
|
}
|
|
|
|
|
|
static inline void __ide_flush_dcache_range(unsigned long addr, unsigned long size)
|
|
|
{
|
|
|
- if (cpu_has_dc_aliases) {
|
|
|
+ if (cpu_has_dc_aliases || !cpu_has_ic_fills_f_dc) {
|
|
|
unsigned long end = addr + size;
|
|
|
|
|
|
while (addr < end) {
|