static int change_page_attr_set_clr(unsigned long *addr, int numpages,
pgprot_t mask_set, pgprot_t mask_clr,
- int force_split, int array)
+ int force_split, int in_flag)
{
struct cpa_data cpa;
int ret, cache, checkalias;
return 0;
/* Ensure we are PAGE_SIZE aligned */
- if (!array) {
+ if (!(in_flag & CPA_ARRAY)) {
if (*addr & ~PAGE_MASK) {
*addr &= PAGE_MASK;
/*
cpa.curpage = 0;
cpa.force_split = force_split;
- if (array)
+ if (in_flag & CPA_ARRAY)
cpa.flags |= CPA_ARRAY;
/* No alias checking for _NX bit modifications */
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, mask, __pgprot(0), 0,
- array);
+ (array ? CPA_ARRAY : 0));
}
static inline int change_page_attr_clear(unsigned long *addr, int numpages,
pgprot_t mask, int array)
{
return change_page_attr_set_clr(addr, numpages, __pgprot(0), mask, 0,
- array);
+ (array ? CPA_ARRAY : 0));
}
int _set_memory_uc(unsigned long addr, int numpages)