Re: [PATCH] [26/31] CPA: Fix reference counting when changing already changed pages

Jan Beulich
2008-01-15T09:05:46Z

>+ ref_prot = canon_pgprot(ref_prot);
>+ prot = canon_pgprot(prot);
>+
> if (pgprot_val(prot) != pgprot_val(ref_prot)) {
>...
> } else if (level == 4) {
>...
> } else {
> /*
> * When you're here you either set the same page to PAGE_KERNEL

Doesn't this change require modifying the BUG() here into a BUG_ON() so
that it doesn't trigger if pgprot_val(prot) == pgprot_val(ref_prot) and
level != 4?

>+#define canon_pgprot(p) __pgprot(pgprot_val(p) & __supported_pte_mask)

While I remember you stated the inverse, I continue to think that it'd be
safer to mask out the accessed and dirty flags for the comparisons this
macro is being used for.

Jan