> -----Original Message-----
> From: Roger Pau Monne <roger....@citrix.com>
> Sent: 04 September 2019 08:49
> To: Andrew Cooper <andrew.coop...@citrix.com>
> Cc: xen-devel@lists.xenproject.org; Paul Durrant <paul.durr...@citrix.com>; 
> Jan Beulich
> <jbeul...@suse.com>; Wei Liu <w...@xen.org>
> Subject: Re: [PATCH v2 02/11] ioreq: terminate cf8 handling at hypervisor 
> level
> 
> On Tue, Sep 03, 2019 at 06:13:59PM +0100, Andrew Cooper wrote:
> > On 03/09/2019 17:14, Roger Pau Monne wrote:
> > > diff --git a/xen/arch/x86/hvm/ioreq.c b/xen/arch/x86/hvm/ioreq.c
> > > index 692b710b02..69652e1080 100644
> > > --- a/xen/arch/x86/hvm/ioreq.c
> > > +++ b/xen/arch/x86/hvm/ioreq.c
> > > @@ -1015,6 +1015,12 @@ int hvm_map_io_range_to_ioreq_server(struct domain 
> > > *d, ioservid_t id,
> > >      switch ( type )
> > >      {
> > >      case XEN_DMOP_IO_RANGE_PORT:
> > > +        rc = -EINVAL;
> > > +        /* PCI config space accesses are handled internally. */
> > > +        if ( start <= 0xcf8 + 8 && 0xcf8 <= end )
> > > +            goto out;
> > > +        else
> > > +            /* fallthrough. */
> >
> > You need to drop the else, or it may still trigger warnings.
> 
> Yes, my mistake. The else branch is not needed.
> 
> > Furthermore, qemu registers cf8-cff so I think you need some fix-ups
> > there first before throwing errors back here.
> 
> The version of QEMU I have doesn't seem to register 0xcf8 or 0xcfc,
> there are no errors on the log and QEMU seems to work just fine.
> 
> I always assumed QEMU was getting accesses to cf8/cfc forwarded
> because it was the default device model, and everything not trapped by
> Xen would be forwarded to it. This default device model behaviour was
> removed by Paul some time ago, and now QEMU registers explicitly which
> IO accesses it wants to trap.

Yes, it used to need them to work correctly as a default emulator. However, we 
don't generally stop an external emulator from registering ranges that are 
handled by emulation directly in Xen (e.g. pmtimer) so I don't think you need 
special-case these ports.

  Paul

> 
> > Finally, this prohibits registering cf9 which may legitimately not be
> > terminated in Xen.
> 
> Yes, that should be cf8 - 7 not 8, thanks for catching it! Will update
> on the next version.
> 
> Roger.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to