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

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



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 <stefano.stabellini@xxxxxxxxxxxxx>

I'd prefer a wrapper that does the right thing.
No sense in doubling the # of system calls for everyone.

> 
> 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;

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.