x86: CPA return early when requested feature is not available
Mask out the not supported bits (e.g. NX). If the clr/set masks are empty after the mask return without changing anything. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
1c083eb2cb
commit
331e406588
|
@ -405,8 +405,18 @@ static int __change_page_attr_set_clr(unsigned long addr, int numpages,
|
||||||
static int change_page_attr_set_clr(unsigned long addr, int numpages,
|
static int change_page_attr_set_clr(unsigned long addr, int numpages,
|
||||||
pgprot_t mask_set, pgprot_t mask_clr)
|
pgprot_t mask_set, pgprot_t mask_clr)
|
||||||
{
|
{
|
||||||
int ret = __change_page_attr_set_clr(addr, numpages, mask_set,
|
int ret;
|
||||||
mask_clr);
|
|
||||||
|
/*
|
||||||
|
* Check, if we are requested to change a not supported
|
||||||
|
* feature:
|
||||||
|
*/
|
||||||
|
mask_set = canon_pgprot(mask_set);
|
||||||
|
mask_clr = canon_pgprot(mask_clr);
|
||||||
|
if (!pgprot_val(mask_set) && !pgprot_val(mask_clr))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
ret = __change_page_attr_set_clr(addr, numpages, mask_set, mask_clr);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* On success we use clflush, when the CPU supports it to
|
* On success we use clflush, when the CPU supports it to
|
||||||
|
|
Loading…
Reference in New Issue