Jerin Jacob <[email protected]> wrote on 28/10/2017 08:22:55:
> From: Jerin Jacob <[email protected]> > To: [email protected] > Cc: [email protected], Jerin Jacob > <[email protected]>, Jonas Pfefferle > <[email protected]>, Anatoly Burakov <[email protected]> > 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 <[email protected]> > Cc: Anatoly Burakov <[email protected]> > > Signed-off-by: Jerin Jacob <[email protected]> > --- > 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 <[email protected]> Thanks, Jonas

