Sean Christopherson wrote:
> On Thu, Aug 07, 2025, Sagi Shahar wrote:
> > From: Erdem Aktas <erdemak...@google.com>

[snip]

> > +
> > +static void load_td_memory_region(struct kvm_vm *vm,
> > +                             struct userspace_mem_region *region)
> > +{
> > +   const struct sparsebit *pages = region->protected_phy_pages;
> > +   const vm_paddr_t gpa_base = region->region.guest_phys_addr;
> > +   const uint64_t hva_base = region->region.userspace_addr;
> > +   const sparsebit_idx_t lowest_page_in_region = gpa_base >> 
> > vm->page_shift;
> > +
> > +   sparsebit_idx_t i;
> > +   sparsebit_idx_t j;
> > +
> > +   if (!sparsebit_any_set(pages))
> > +           return;
> > +
> > +   sparsebit_for_each_set_range(pages, i, j) {
> > +           const uint64_t size_to_load = (j - i + 1) * vm->page_size;
> > +           const uint64_t offset =
> > +                   (i - lowest_page_in_region) * vm->page_size;
> > +           const uint64_t hva = hva_base + offset;
> > +           const uint64_t gpa = gpa_base + offset;
> > +           void *source_addr;
> > +
> > +           /*
> > +            * KVM_TDX_INIT_MEM_REGION ioctl cannot encrypt memory in place.
> 
> We should really fix that.

I'm working on it.

This code will change with those changes.  But I'd like this to land, or
be close to landing, first.

Ira

[snip]

Reply via email to