.check_intercept = vmx_check_intercept,
        .handle_exit_irqoff = vmx_handle_exit_irqoff,
 
-       .cpu_dirty_log_size = PML_ENTITY_NUM,
+       .cpu_dirty_log_size = PML_LOG_NR_ENTRIES,
        .update_cpu_dirty_logging = vmx_update_cpu_dirty_logging,
 
        .nested_ops = &vmx_nested_ops,
 
        if (!nested_cpu_has_pml(vmcs12))
                return 0;
 
-       if (vmcs12->guest_pml_index >= PML_ENTITY_NUM) {
+       if (vmcs12->guest_pml_index >= PML_LOG_NR_ENTRIES) {
                vmx->nested.pml_full = true;
                return 1;
        }
 
 
        if (enable_pml) {
                vmcs_write64(PML_ADDRESS, page_to_phys(vmx->pml_pg));
-               vmcs_write16(GUEST_PML_INDEX, PML_ENTITY_NUM - 1);
+               vmcs_write16(GUEST_PML_INDEX, PML_HEAD_INDEX);
        }
 
        vmx_write_encls_bitmap(&vmx->vcpu, NULL);
        pml_idx = vmcs_read16(GUEST_PML_INDEX);
 
        /* Do nothing if PML buffer is empty */
-       if (pml_idx == (PML_ENTITY_NUM - 1))
+       if (pml_idx == PML_HEAD_INDEX)
                return;
 
        /* PML index always points to next available PML buffer entity */
-       if (pml_idx >= PML_ENTITY_NUM)
+       if (pml_idx >= PML_LOG_NR_ENTRIES)
                pml_idx = 0;
        else
                pml_idx++;
 
        pml_buf = page_address(vmx->pml_pg);
-       for (; pml_idx < PML_ENTITY_NUM; pml_idx++) {
+       for (; pml_idx < PML_LOG_NR_ENTRIES; pml_idx++) {
                u64 gpa;
 
                gpa = pml_buf[pml_idx];
        }
 
        /* reset PML index */
-       vmcs_write16(GUEST_PML_INDEX, PML_ENTITY_NUM - 1);
+       vmcs_write16(GUEST_PML_INDEX, PML_HEAD_INDEX);
 }
 
 static void vmx_dump_sel(char *name, uint32_t sel)
 
        bool ple_window_dirty;
 
        /* Support for PML */
-#define PML_ENTITY_NUM         512
+#define PML_LOG_NR_ENTRIES     512
+       /* PML is written backwards: this is the first entry written by the CPU */
+#define PML_HEAD_INDEX         (PML_LOG_NR_ENTRIES-1)
+
        struct page *pml_pg;
 
        /* apic deadline value in host tsc */