[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 1 of 3] Move libxl_device_pci_reset in to libxl_pci.c
On Wed, 2010-07-28 at 20:40 +0100, Gianni Tedesco wrote: > tools/libxl/libxl_device.c | 34 ---------------------------------- > tools/libxl/libxl_pci.c | 33 +++++++++++++++++++++++++++++++++ > 2 files changed, 33 insertions(+), 34 deletions(-) > > > Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx> diff -r ebede381efe8 -r 6d858d8546d4 tools/libxl/libxl_device.c --- a/tools/libxl/libxl_device.c Tue Jul 27 18:09:22 2010 +0100 +++ b/tools/libxl/libxl_device.c Wed Jul 28 18:37:39 2010 +0100 @@ -377,40 +377,6 @@ int libxl_device_del(libxl_ctx *c return 0; } -int libxl_device_pci_reset(libxl_ctx *ctx, unsigned int domain, unsigned int bus, - unsigned int dev, unsigned int func) -{ - char *reset = "/sys/bus/pci/drivers/pciback/do_flr"; - int fd, rc; - - fd = open(reset, O_WRONLY); - if (fd > 0) { - char *buf = libxl_sprintf(ctx, PCI_BDF, domain, bus, dev, func); - rc = write(fd, buf, strlen(buf)); - if (rc < 0) - XL_LOG(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc); - close(fd); - return rc < 0 ? rc : 0; - } - if (errno != ENOENT) - XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access pciback path %s", reset); - reset = libxl_sprintf(ctx, "/sys/bus/pci/devices/"PCI_BDF"/reset", domain, bus, dev, func); - fd = open(reset, O_WRONLY); - if (fd > 0) { - rc = write(fd, "1", 1); - if (rc < 0) - XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc); - close(fd); - return rc < 0 ? rc : 0; - } - if (errno == ENOENT) { - XL_LOG(ctx, XL_LOG_ERROR, "The kernel doesn't support PCI device reset from sysfs"); - } else { - XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access reset path %s", reset); - } - return -1; -} - int libxl_wait_for_device_model(libxl_ctx *ctx, uint32_t domid, char *state, int (*check_callback)(libxl_ctx *ctx, diff -r ebede381efe8 -r 6d858d8546d4 tools/libxl/libxl_pci.c --- a/tools/libxl/libxl_pci.c Tue Jul 27 18:09:22 2010 +0100 +++ b/tools/libxl/libxl_pci.c Wed Jul 28 18:37:39 2010 +0100 @@ -536,3 +536,36 @@ int libxl_device_pci_init(libxl_device_p return 0; } +int libxl_device_pci_reset(libxl_ctx *ctx, unsigned int domain, unsigned int bus, + unsigned int dev, unsigned int func) +{ + char *reset = "/sys/bus/pci/drivers/pciback/do_flr"; + int fd, rc; + + fd = open(reset, O_WRONLY); + if (fd > 0) { + char *buf = libxl_sprintf(ctx, PCI_BDF, domain, bus, dev, func); + rc = write(fd, buf, strlen(buf)); + if (rc < 0) + XL_LOG(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc); + close(fd); + return rc < 0 ? rc : 0; + } + if (errno != ENOENT) + XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access pciback path %s", reset); + reset = libxl_sprintf(ctx, "/sys/bus/pci/devices/"PCI_BDF"/reset", domain, bus, dev, func); + fd = open(reset, O_WRONLY); + if (fd > 0) { + rc = write(fd, "1", 1); + if (rc < 0) + XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc); + close(fd); + return rc < 0 ? rc : 0; + } + if (errno == ENOENT) { + XL_LOG(ctx, XL_LOG_ERROR, "The kernel doesn't support PCI device reset from sysfs"); + } else { + XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access reset path %s", reset); + } + return -1; +} _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |