lkml.org 
[lkml]   [2017]   [Aug]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [RFC Part1 PATCH v3 15/17] x86: Add support for changing memory encryption attribute in early boot
From
Date
Hi Boris,


On 8/28/17 5:51 AM, Borislav Petkov wrote:

[..]

> +static int __init early_set_memory_enc_dec(resource_size_t paddr,
>> + unsigned long size, bool enc)
>> +{
>> + unsigned long vaddr, vaddr_end, vaddr_next;
>> + unsigned long psize, pmask;
>> + int split_page_size_mask;
>> + pte_t *kpte;
>> + int level;
>> +
>> + vaddr = (unsigned long)__va(paddr);
>> + vaddr_next = vaddr;
>> + vaddr_end = vaddr + size;
>> +
>> + /*
>> + * We are going to change the physical page attribute from C=1 to C=0
>> + * or vice versa. Flush the caches to ensure that data is written into
>> + * memory with correct C-bit before we change attribute.
>> + */
>> + clflush_cache_range(__va(paddr), size);
>> +
>> + for (; vaddr < vaddr_end; vaddr = vaddr_next) {
>> + kpte = lookup_address(vaddr, &level);
>> + if (!kpte || pte_none(*kpte))
>> + return 1;
> Return before flushing TLBs? Perhaps you mean
>
> ret = 1;
> goto out;
>
> here and out does
>
> __flush_tlb_all();
> return ret;

thanks, good catch. I will fix in next rev.

-Brijesh

\
 
 \ /
  Last update: 2017-08-28 13:50    [W:0.099 / U:6.796 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site