On Thu, Apr 18, 2024 at 07:04:11PM +0800,It's similar.
Binbin Wu <binbin.wu@xxxxxxxxxxxxxxx> wrote:
That's independent. The part is how to work around guest accesses the
On 4/18/2024 5:29 PM, Binbin Wu wrote:
+Based on the discussion
+static int tdx_emulate_mmio(struct kvm_vcpu *vcpu)
+{
+ struct kvm_memory_slot *slot;
+ int size, write, r;
+ unsigned long val;
+ gpa_t gpa;
+
+ KVM_BUG_ON(vcpu->mmio_needed, vcpu->kvm);
+
+ size = tdvmcall_a0_read(vcpu);
+ write = tdvmcall_a1_read(vcpu);
+ gpa = tdvmcall_a2_read(vcpu);
+ val = write ? tdvmcall_a3_read(vcpu) : 0;
+
+ if (size != 1 && size != 2 && size != 4 && size != 8)
+ goto error;
+ if (write != 0 && write != 1)
+ goto error;
+
+ /* Strip the shared bit, allow MMIO with and without it set. */
https://lore.kernel.org/all/ZcUO5sFEAIH68JIA@xxxxxxxxxx/
Do we still allow the MMIO without shared bit?
MMIO region with private GPA. This part is, the guest issues
TDG.VP.VMCALL<MMMIO> and KVM masks out the shared bit to make it friendly
to the user space VMM.