|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] x86/traps: Correct overly-general assertion introduced in c/s d5c251c
>>> On 14.12.16 at 15:11, <andrew.cooper3@xxxxxxxxxx> wrote:
> @@ -1831,10 +1827,17 @@ static int fixup_page_fault(unsigned long addr,
> struct cpu_user_regs *regs)
> return EXCRET_fault_fixed;
> }
>
> - /* Logdirty guests call back into the paging code to update shadows. */
> - if ( paging_mode_log_dirty(d) )
> + /*
> + * Logdirty guests call back into the paging code to update shadows. We
> + * don't expect any other paging modes with PV guests.
> + */
> + if ( guest_mode(regs) && paging_mode_enabled(d) )
As said in the (apparently to late) reply to v1 - I think guest_mode()
is wrong to use here, as hypervisor accesses to guest buffers also
need to be handled by paging_fault() when the guest is in log-dirty
mode.
Jan
> {
> - int ret = paging_fault(addr, regs);
> + int ret;
> +
> + ASSERT(paging_mode_only_log_dirty(d));
> +
> + ret = paging_fault(addr, regs);
> if ( ret == EXCRET_fault_fixed )
> trace_trap_two_addr(TRC_PV_PAGING_FIXUP, regs->eip, addr);
> return ret;
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |