[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v7] x86/emulate: Send vm_event from emulate
>>>>> @@ -629,6 +697,14 @@ static void *hvmemul_map_linear_addr( >>>>> >>>>> ASSERT(p2mt == p2m_ram_logdirty || >>>>> !p2m_is_readonly(p2mt)); >>>>> } >>>>> + >>>>> + if ( curr->arch.vm_event && >>>>> + curr->arch.vm_event->send_event && >>>>> + hvm_emulate_send_vm_event(addr, gfn, pfec) ) >>>>> + { >>>>> + err = ERR_PTR(~X86EMUL_RETRY); >>>>> + goto out; >>>>> + } >>>> >>>> Did you notice that there's an immediate exit from the loop only >>>> in case the linear -> physical translation fails? This is >>>> relevant for page fault delivery correctness for accesses >>>> crossing page boundaries. I think you want to use >>>> update_map_err() and drop the "goto out". I can't really make up >>> >>> By update_map_err() are you saying to have the err var assigned and then >>> drop "goto out"? If so how do I keep the err from my access violation >>> without exiting from the loop? >> >> Counter question: Why do you _need_ to keep "your" value of err? >> If, just as an example, there's going to be a #PF on the other >> half of the access, then "your" access violation is of no interest >> at all. > > You are right, there is no need to keep the "goto out" here. It was just > for optimization in the idea that there is no need to do further steps > but I can drop the "goto out" and the code will work the same. > There is a problem with dropping the "goto out". If everything goes fine then it will return the mapping and I don't want that. This can be stopped by checking if ( err ) after the loop and it is not null then goto out. And going with this idea I can init *err = NULL and drop the err = NULL from hvmemul_map_linear_addr(). Is this ok for the next version? Regards, Alex _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |