On 2021-12-17 17:24:43 -0600, Brijesh Singh wrote: > > On 12/17/21 2:47 PM, Venu Busireddy wrote: > > >> * the caches. > >> */ > >> - if ((set | clr) & _PAGE_ENC) > >> + if ((set | clr) & _PAGE_ENC) { > >> clflush_page(address); > >> > >> + /* > >> + * If the encryption attribute is being cleared, then change > >> + * the page state to shared in the RMP table. > >> + */ > >> + if (clr) > > This function is also called by set_page_non_present() with clr set to > > _PAGE_PRESENT. Do we want to change the page state to shared even when > > the page is not present? If not, shouldn't the check be (clr & _PAGE_ENC)? > > I am not able to follow your comment. Here we only pay attention to the > encryption attribute, if encryption attribute is getting cleared then > make PSC. In the case ov set_page_non_present(), the outer if() block > will return false. Am I missing something ? You are right. I missed the outer check. > > The page is not "added", right? Shouldn't we just say: > > Technically, PSC modifies the RMP entry, so I should use that instead > of calling "added". > > > > Validate the page so that it is consistent with the RMP entry. > > Yes, I am okay with it. Thanks, Venu