[dpdk-dev] [PATCH] igb_uio: revert open and release operations
Thomas Monjalon
thomas at monjalon.net
Fri Oct 13 16:51:04 CEST 2017
Some VF drivers cannot work with igb_uio because of the
reset done in these functions.
First bug report:
http://dpdk.org/ml/archives/dev/2017-September/075236.html
A partial reset was tried:
http://dpdk.org/patch/28940
Second bug report after a partial revert trial:
http://dpdk.org/ml/archives/dev/2017-September/076998.html
The patch author agreed to revert his patch:
http://dpdk.org/ml/archives/dev/2017-October/077158.html
There are also some patches available to fix issues with i40e:
http://dpdk.org/patch/30021
http://dpdk.org/patch/30022
This patch takes the simple option of reverting the initial patch
and gives more time to properly improve igb_uio and PMDs.
Fixes: b58eedfc7dd5 ("igb_uio: issue FLR during open and release of device file")
Reported-by: Qiming Yang <qiming.yang at intel.com>
Reported-by: Jingjing Wu <jingjing.wu at intel.com>
Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 33 -------------------------------
1 file changed, 33 deletions(-)
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 0dda26c7a..e47afb98b 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -220,37 +220,6 @@ 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;
-}
-
/* Remap pci resources described by bar #pci_bar in uio resource n. */
static int
igbuio_pci_setup_iomem(struct pci_dev *dev, struct uio_info *info,
@@ -492,8 +461,6 @@ 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;
udev->info.priv = udev;
udev->pdev = dev;
--
2.14.1
More information about the dev
mailing list