···159159ENDPROC(v6_coherent_kern_range)160160161161/*162162- * v6_flush_kern_dcache_page(kaddr)162162+ * v6_flush_kern_dcache_area(void *addr, size_t size)163163 *164164 * Ensure that the data held in the page kaddr is written back165165 * to the page in question.166166 *167167- * - kaddr - kernel address (guaranteed to be page aligned)167167+ * - addr - kernel address168168+ * - size - region size168169 */169169-ENTRY(v6_flush_kern_dcache_page)170170- add r1, r0, #PAGE_SZ170170+ENTRY(v6_flush_kern_dcache_area)171171+ add r1, r0, r11711721:172173#ifdef HARVARD_CACHE173174 mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line···272271 .long v6_flush_user_cache_range273272 .long v6_coherent_kern_range274273 .long v6_coherent_user_range275275- .long v6_flush_kern_dcache_page274274+ .long v6_flush_kern_dcache_area276275 .long v6_dma_inv_range277276 .long v6_dma_clean_range278277 .long v6_dma_flush_range
+7-6
arch/arm/mm/cache-v7.S
···186186ENDPROC(v7_coherent_user_range)187187188188/*189189- * v7_flush_kern_dcache_page(kaddr)189189+ * v7_flush_kern_dcache_area(void *addr, size_t size)190190 *191191 * Ensure that the data held in the page kaddr is written back192192 * to the page in question.193193 *194194- * - kaddr - kernel address (guaranteed to be page aligned)194194+ * - addr - kernel address195195+ * - size - region size195196 */196196-ENTRY(v7_flush_kern_dcache_page)197197+ENTRY(v7_flush_kern_dcache_area)197198 dcache_line_size r2, r3198198- add r1, r0, #PAGE_SZ199199+ add r1, r0, r11992001:200201 mcr p15, 0, r0, c7, c14, 1 @ clean & invalidate D line / unified line201202 add r0, r0, r2···204203 blo 1b205204 dsb206205 mov pc, lr207207-ENDPROC(v7_flush_kern_dcache_page)206206+ENDPROC(v7_flush_kern_dcache_area)208207209208/*210209 * v7_dma_inv_range(start,end)···280279 .long v7_flush_user_cache_range281280 .long v7_coherent_kern_range282281 .long v7_coherent_user_range283283- .long v7_flush_kern_dcache_page282282+ .long v7_flush_kern_dcache_area284283 .long v7_dma_inv_range285284 .long v7_dma_clean_range286285 .long v7_dma_flush_range
+2-2
arch/arm/mm/flush.c
···131131 */132132 if (addr)133133#endif134134- __cpuc_flush_dcache_page(addr);134134+ __cpuc_flush_dcache_area(addr, PAGE_SIZE);135135136136 /*137137 * If this is a page cache page, and we have an aliasing VIPT cache,···258258 * in this mapping of the page. FIXME: this is overkill259259 * since we actually ask for a write-back and invalidate.260260 */261261- __cpuc_flush_dcache_page(page_address(page));261261+ __cpuc_flush_dcache_area(page_address(page), PAGE_SIZE);262262}
+1-1
arch/arm/mm/highmem.c
···7979 unsigned int idx = type + KM_TYPE_NR * smp_processor_id();80808181 if (kvaddr >= (void *)FIXADDR_START) {8282- __cpuc_flush_dcache_page((void *)vaddr);8282+ __cpuc_flush_dcache_area((void *)vaddr, PAGE_SIZE);8383#ifdef CONFIG_DEBUG_HIGHMEM8484 BUG_ON(vaddr != __fix_to_virt(FIX_KMAP_BEGIN + idx));8585 set_pte_ext(TOP_PTE(vaddr), __pte(0), 0);