cacheflush.c 696 B

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