lkml.org 
[lkml]   [2008]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] [26/31] CPA: Fix reference counting when changing already changed pages
>>> Andi Kleen <ak@suse.de> 15.01.08 11:04 >>>
>On Tuesday 15 January 2008 10:05:44 Jan Beulich wrote:
>> >+ 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?
>
>I addressed this in the comment
>
>+ /*
>+ * When you're here you either set the same page to PAGE_KERNEL
>+ * two times in a row or the page table reference counting is
>+ * broken again. To catch the later bug for now (sorry)
>+ */
>
>Do you think it's important to handle? The function already has too many
>special cases and setting something several times in a row to PAGE_KERNEL
>is usually a bug in the caller anyways (or a cpa bug)

It definitely is when making ref_prot variable (as discussed in an earlier
reply regarding a different patch), but I think it's even inconsistent given
the possible presence/absence of _PAGE_NX.

Jan



\
 
 \ /
  Last update: 2008-01-15 13:03    [W:0.299 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site