hc
2024-01-03 2f7c68cb55ecb7331f2381deb497c27155f32faf
kernel/arch/parisc/kernel/cache.c
....@@ -327,6 +327,7 @@
327327 struct vm_area_struct *mpnt;
328328 unsigned long offset;
329329 unsigned long addr, old_addr = 0;
330
+ unsigned long flags;
330331 pgoff_t pgoff;
331332
332333 if (mapping && !mapping_mapped(mapping)) {
....@@ -346,7 +347,7 @@
346347 * declared as MAP_PRIVATE or MAP_SHARED), so we only need
347348 * to flush one address here for them all to become coherent */
348349
349
- flush_dcache_mmap_lock(mapping);
350
+ flush_dcache_mmap_lock_irqsave(mapping, flags);
350351 vma_interval_tree_foreach(mpnt, &mapping->i_mmap, pgoff, pgoff) {
351352 offset = (pgoff - mpnt->vm_pgoff) << PAGE_SHIFT;
352353 addr = mpnt->vm_start + offset;
....@@ -369,7 +370,7 @@
369370 old_addr = addr;
370371 }
371372 }
372
- flush_dcache_mmap_unlock(mapping);
373
+ flush_dcache_mmap_unlock_irqrestore(mapping, flags);
373374 }
374375 EXPORT_SYMBOL(flush_dcache_page);
375376