| /* |
| * Copyright (C) 2017 SiFive |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation, version 2. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| */ |
| |
| #include <asm/pgtable.h> |
| #include <asm/cacheflush.h> |
| |
| void flush_icache_pte(pte_t pte) |
| { |
| struct page *page = pte_page(pte); |
| |
| if (!test_and_set_bit(PG_dcache_clean, &page->flags)) |
| flush_icache_all(); |
| } |