qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 0/19] xen-2015-09-08-tag


From: Stefano Stabellini
Subject: Re: [Qemu-devel] [PULL 0/19] xen-2015-09-08-tag
Date: Thu, 10 Sep 2015 13:00:35 +0100
User-agent: Alpine 2.02 (DEB 1266 2009-07-14)

On Thu, 10 Sep 2015, Michael S. Tsirkin wrote:
> On Thu, Sep 10, 2015 at 12:26:21PM +0100, Stefano Stabellini wrote:
> > On Thu, 10 Sep 2015, Michael S. Tsirkin wrote:
> > > On Thu, Sep 10, 2015 at 11:29:18AM +0100, Stefano Stabellini wrote:
> > > > CC Michael
> > > > 
> > > > On Thu, 10 Sep 2015, Stefano Stabellini wrote:
> > > > > On Thu, 10 Sep 2015, Chen, Tiejun wrote:
> > > > > > > xen-host-pci-device.c is only compiled if 
> > > > > > > CONFIG_XEN_PCI_PASSTHROUGH
> > > > > > > was set by configure. That won't be the case on OSX or Windows, 
> > > > > > > where
> > > > > > > the Xen headers don't exist.
> > > > > > > 
> > > > > > 
> > > > > > Okay. This actually shouldn't be enabled on Windows so what about 
> > > > > > this?
> > > > > 
> > > > > I think it would be nicer to replace the pread than introducing 
> > > > > ifdefs.
> > > > 
> > > > Something like:
> > > > 
> > > > ---
> > > > Replace pread with read to avoid build breakages on Windows
> > > > 
> > > > Signed-off-by: Stefano Stabellini <address@hidden>
> > > 
> > > I'd prefer a wrapper that does the right thing.
> > > No sense in doubling the # of system calls for everyone.
> > 
> > If this was done on an hot path I would agree with you, but it is just
> > one call at initialization time (igd_pt_i440fx_initfn).
> 
> I missed this fact. OK then.

Thanks! I'll fold it the offending patch
(http://marc.info/?l=qemu-devel&m=144174596628052&w=2) and resend.


> > > > diff --git a/hw/pci-host/piix.c b/hw/pci-host/piix.c
> > > > index 58a33fb..9a40429 100644
> > > > --- a/hw/pci-host/piix.c
> > > > +++ b/hw/pci-host/piix.c
> > > > @@ -774,8 +774,11 @@ static int host_pci_config_read(int pos, int len, 
> > > > uint32_t val)
> > > >          return -ENODEV;
> > > >      }
> > > >  
> > > > +    if (lseek(config_fd, pos, SEEK_SET) != pos) {
> > > > +        return -errno;
> > > > +    }
> > > >      do {
> > > > -        rc = pread(config_fd, (uint8_t *)&val, len, pos);
> > > > +        rc = read(config_fd, (uint8_t *)&val, len);
> > > >      } while (rc < 0 && (errno == EINTR || errno == EAGAIN));
> > > >      if (rc != len) {
> > > >          return -errno;
> > > 
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]