Messages in this thread | | | Date | Thu, 5 May 2022 13:53:52 -0700 | Subject | Re: [PATCH v5 3/3] x86/tdx: Add Quote generation support | From | Sathyanarayanan Kuppuswamy <> |
| |
Hi Kai,
On 5/4/22 4:28 PM, Kai Huang wrote: > On Wed, 2022-05-04 at 15:49 -0700, Sathyanarayanan Kuppuswamy wrote: >> --- a/arch/x86/coco/tdx/tdx.c >> +++ b/arch/x86/coco/tdx/tdx.c >> @@ -15,6 +15,7 @@ >> #include <asm/idtentry.h> >> #include <asm/irq_regs.h> >> #include <asm/desc.h> >> +#include <asm/io.h> >> >> /* TDX module Call Leaf IDs */ >> #define TDX_GET_INFO 1 >> @@ -680,8 +681,15 @@ static bool try_accept_one(phys_addr_t *start, >> unsigned long len, >> */ >> static bool tdx_enc_status_changed(unsigned long vaddr, int numpages, >> bool enc) >> { >> - phys_addr_t start = __pa(vaddr); >> - phys_addr_t end = __pa(vaddr + numpages * PAGE_SIZE); >> + phys_addr_t start; >> + phys_addr_t end; >> + >> + if (is_vmalloc_addr((void *)vaddr)) >> + start = page_to_phys(vmalloc_to_page((void*)vaddr)); >> + else >> + start = __pa(vaddr); >> + >> + end = start + numpages * PAGE_SIZE; >> >> if (!enc) { >> /* Set the shared (decrypted) bits: */ > > Looks set_memory_decrypted() only works for direct-mapping, so you should not > use this. Instead, you can pass shared bit in 'prot' argument (using > pgprot_decrypted()) when you call vmap(), and explicitly call MapGPA().
Is it because of the above change, or you see other direct-mapping dependencies in set_memory_*() functions?
>
-- Sathyanarayanan Kuppuswamy Linux Kernel Developer
| |