809
810 ret = __change_page_attr_set_clr(&cpa, checkalias);
811
812
813
814
815 if (!(cpa.flags & CPA_FLUSHTLB))
816 goto out;
817
818
819
820
821
822 cache = cache_attr(mask_set);
823
824
825
826
827
828
829
830 if (!ret && cpu_has_clflush) {
831 if (cpa.flags & CPA_ARRAY)
832 cpa_flush_array(addr, numpages, cache);
833 else
834 cpa_flush_range(*addr, numpages, cache);
835 } else
836 cpa_flush_all(cache);
837
838out:
839 return ret;
840}
841
842static inline int change_page_attr_set(unsigned long *addr, int numpages,
843 pgprot_t mask, int array)
844{
845 return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0,
846 array);
847}
848
849static inline int change_page_attr_clear(unsigned long *addr, int numpages,