Jerin Jacob <jerin.ja...@caviumnetworks.com> wrote on 28/10/2017 08:22:55:
> From: Jerin Jacob <jerin.ja...@caviumnetworks.com> > To: dev@dpdk.org > Cc: tho...@monjalon.net, Jerin Jacob > <jerin.ja...@caviumnetworks.com>, Jonas Pfefferle > <j...@zurich.ibm.com>, Anatoly Burakov <anatoly.bura...@intel.com> > Date: 28/10/2017 08:23 > Subject: [dpdk-dev] [PATCH] bus/pci: fix vfio device reset > > If the device is not capable of resetting, then Linux kernel updates > the errno as EINVAL. > https://urldefense.proofpoint.com/v2/url? > u=http-3A__elixir.free-2Delectrons.com_linux_v4. > 9_source_drivers_vfio_pci_vfio-5Fpci.c-23L887&d=DwIBAg&c=jf_iaSHvJObTbx- > siA1ZOg&r=rOdXhRsgn8Iur7bDE0vgwvo6TC8OpoDN-pXjigIjRW0&m=V- > sbOkvx7qxOMbwyk3n1Fb_1NCjAhl0io- > hqldJ0r6M&s=OXV7lrxTpahVIsA3J3nCNUlLqW21nlMiQiYveAzyQhc&e= > > Honor the EINVAL errno value to avoid pci vfio setup failure. > > Fixes: f25f8f367644 ("bus/pci: check VFIO reset ioctl error") > > Cc: Jonas Pfefferle <j...@zurich.ibm.com> > Cc: Anatoly Burakov <anatoly.bura...@intel.com> > > Signed-off-by: Jerin Jacob <jerin.ja...@caviumnetworks.com> > --- > drivers/bus/pci/linux/pci_vfio.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/ > linux/pci_vfio.c > index 360eed380..11df64846 100644 > --- a/drivers/bus/pci/linux/pci_vfio.c > +++ b/drivers/bus/pci/linux/pci_vfio.c > @@ -338,8 +338,11 @@ pci_vfio_setup_device(struct rte_pci_device > *dev, int vfio_dev_fd) > return -1; > } > > - /* Reset the device */ > - if (ioctl(vfio_dev_fd, VFIO_DEVICE_RESET)) { > + /* > + * Reset the device. If the device is not capable of resetting, > + * then it updates errno as EINVAL. > + */ > + if (ioctl(vfio_dev_fd, VFIO_DEVICE_RESET) && errno != EINVAL) { > RTE_LOG(ERR, EAL, "Unable to reset device! Error: %d (%s)\n", > errno, strerror(errno)); > return -1; > -- > 2.14.3 > Looks good to me. Reviewed-by: Jonas Pfefferle <j...@zurich.ibm.com> Thanks, Jonas