[dpdk-stable] patch 'igb_uio: issue FLR during open and release of device file' has been queued to LTS release 16.11.9

Luca Boccassi bluca at debian.org
Fri Nov 9 11:43:38 CET 2018


On Fri, 2018-11-09 at 09:32 +0000, Shijith Thotton wrote:
> 
> On 11/08/2018 11:46 PM, Luca Boccassi wrote:
> > External Email
> > 
> > On Thu, 2018-11-08 at 18:01 +0000, Luca Boccassi wrote:
> > > Hi,
> > > 
> > > FYI, your patch has been queued to LTS release 16.11.9
> > > 
> > > Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
> > > yet.
> > > It will be pushed if I get no objections before 11/10/18. So
> > > please
> > > shout if anyone has objections.
> > > 
> > > Also note that after the patch there's a diff of the upstream
> > > commit
> > > vs the patch applied
> > > to the branch. If the code is different (ie: not only metadata
> > > diffs), due for example to
> > > a change in context or macro names, please double check it.
> > > 
> > > Thanks.
> > > 
> > > Luca Boccassi
> > > 
> > > ---
> > >  From 11bb826270d6feb3e810aec77a9252cf65b559a9 Mon Sep 17
> > > 00:00:00
> > > 2001
> > > From: Shijith Thotton <shijith.thotton at caviumnetworks.com>
> > > Date: Fri, 7 Jul 2017 16:43:51 +0530
> > > Subject: [PATCH] igb_uio: issue FLR during open and release of
> > > device
> > > file
> > > 
> > > [ upstream commit b58eedfc7dd57eef6d12e2c654a52c834f36084a ]
> > > 
> > > Set UIO info device file operations open and release. Call pci
> > > reset
> > > function inside open and release to clear device state at start
> > > and
> > > end.
> > > Copied this behaviour from vfio_pci kernel module code. With this
> > > patch,
> > > it is not mandatory to issue FLR by PMD's during init and close.
> > > 
> > > Bus master enable and disable are added in open and release
> > > respectively
> > > to take care of device DMA.
> > > 
> > > Signed-off-by: Shijith Thotton <shijith.thotton at caviumnetworks.co
> > > m>
> > > Reviewed-by: Jianfeng Tan <jianfeng.tan at intel.com>
> > > Acked-by: Ferruh Yigit <ferruh.yigit at intel.com>
> > > Acked-by: Gregory Etelson <gregory at weka.io>
> > > ---
> > >   lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 33
> > > +++++++++++++++++++++++
> > >   1 file changed, 33 insertions(+)
> > > 
> > > diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > > b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > > index 9f00f07ab..4be89ef86 100644
> > > --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > > +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> > > @@ -170,6 +170,37 @@ igbuio_pci_irqhandler(int irq, struct
> > > uio_info
> > > *info)
> > >        return IRQ_HANDLED;
> > >   }
> > > 
> > > +/**
> > > + * This gets called while opening uio device file.
> > > + */
> > > +static int
> > > +igbuio_pci_open(struct uio_info *info, struct inode *inode)
> > > +{
> > > +     struct rte_uio_pci_dev *udev = info->priv;
> > > +     struct pci_dev *dev = udev->pdev;
> > > +
> > > +     pci_reset_function(dev);
> > > +
> > > +     /* set bus master, which was cleared by the reset function
> > > */
> > > +     pci_set_master(dev);
> > > +
> > > +     return 0;
> > > +}
> > > +
> > > +static int
> > > +igbuio_pci_release(struct uio_info *info, struct inode *inode)
> > > +{
> > > +     struct rte_uio_pci_dev *udev = info->priv;
> > > +     struct pci_dev *dev = udev->pdev;
> > > +
> > > +     /* stop the device from further DMA */
> > > +     pci_clear_master(dev);
> > > +
> > > +     pci_reset_function(dev);
> > > +
> > > +     return 0;
> > > +}
> > > +
> > >   #ifdef CONFIG_XEN_DOM0
> > >   static int
> > >   igbuio_dom0_mmap_phys(struct uio_info *info, struct
> > > vm_area_struct
> > > *vma)
> > > @@ -370,6 +401,8 @@ igbuio_pci_probe(struct pci_dev *dev, const
> > > struct pci_device_id *id)
> > >        udev->info.version = "0.1";
> > >        udev->info.handler = igbuio_pci_irqhandler;
> > >        udev->info.irqcontrol = igbuio_pci_irqcontrol;
> > > +     udev->info.open = igbuio_pci_open;
> > > +     udev->info.release = igbuio_pci_release;
> > >   #ifdef CONFIG_XEN_DOM0
> > >        /* check if the driver run on Xen Dom0 */
> > >        if (xen_initial_domain())
> > 
> > Hi,
> > 
> > I've picked up b58eedfc7dd57eef6d12e2c654a52c834f36084a as it is a
> > prerequisite for 70efa4116420b6f7a0734711dd603d3024366c79 as far as
> > I
> > can see, let me know if I should not or do it differently please.
> > 
> 
> Hi Luca,
> 
> Above patch was fixed in following two patches. Please pick them as
> well.
> 
> 369db3a igb_uio: remove device reset in release
> f73b38e igb_uio: remove device reset in open
> 
> Thanks,
> Shijith

Done, thank you for bringing that up.

-- 
Kind regards,
Luca Boccassi


More information about the stable mailing list