>>> On 11.05.15 at 16:57, <roger....@citrix.com> wrote:
> --- a/xen/arch/x86/setup.c
> +++ b/xen/arch/x86/setup.c
> @@ -1446,6 +1446,9 @@ void __init noreturn __start_xen(unsigned long mbi_p)
>  
>      dmi_end_boot();
>  
> +    if ( is_hardware_domain(dom0) )
> +        setup_io_bitmap(dom0);

Is it indeed possible for is_hardware_domain() to be false for dom0
at this point?

> --- a/xen/common/domain.c
> +++ b/xen/common/domain.c
> @@ -42,6 +42,7 @@
>  #include <xsm/xsm.h>
>  #include <xen/trace.h>
>  #include <xen/tmem.h>
> +#include <asm/setup.h>
>  
>  /* Linux config option: propageted to domain0 */
>  /* xen_processor_pmbits: xen control Cx, Px, ... */
> @@ -219,6 +220,7 @@ static int late_hwdom_init(struct domain *d)
>      rangeset_swap(d->iomem_caps, dom0->iomem_caps);
>  #ifdef CONFIG_X86
>      rangeset_swap(d->arch.ioport_caps, dom0->arch.ioport_caps);
> +    setup_io_bitmap(d);
>  #endif

Considering that rangesets are getting swapped rather than
copied, I think you also need to reset Dom0's I/O bitmap here
to the ordinary, non-hardware domain one.

Jan


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to