From 976be7358289d46cd5ed8131bbf2e2c5a6838d3c Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Mon, 13 Nov 2017 10:38:04 +0000 Subject: New upstream version 17.11~rc4 Change-Id: I5cc288310eaa28cb8c2e475afce5e19f8c08ba1e Signed-off-by: Luca Boccassi --- drivers/net/liquidio/lio_ethdev.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'drivers/net/liquidio/lio_ethdev.c') diff --git a/drivers/net/liquidio/lio_ethdev.c b/drivers/net/liquidio/lio_ethdev.c index 4b189661..84b8a328 100644 --- a/drivers/net/liquidio/lio_ethdev.c +++ b/drivers/net/liquidio/lio_ethdev.c @@ -1636,6 +1636,11 @@ lio_dev_close(struct rte_eth_dev *eth_dev) rte_write32(pkt_count, droq->pkts_sent_reg); } + if (lio_dev->pci_dev->kdrv == RTE_KDRV_IGB_UIO) { + cn23xx_vf_ask_pf_to_do_flr(lio_dev); + rte_delay_ms(LIO_PCI_FLR_WAIT); + } + /* lio_free_mbox */ lio_dev->fn_list.free_mbox(lio_dev); @@ -2009,6 +2014,13 @@ lio_first_time_init(struct lio_device *lio_dev, if (cn23xx_pfvf_handshake(lio_dev)) goto error; + /* Request and wait for device reset. */ + if (pdev->kdrv == RTE_KDRV_IGB_UIO) { + cn23xx_vf_ask_pf_to_do_flr(lio_dev); + /* FLR wait time doubled as a precaution. */ + rte_delay_ms(LIO_PCI_FLR_WAIT * 2); + } + if (cn23xx_vf_set_io_queues_off(lio_dev)) { lio_dev_err(lio_dev, "Setting io queues off failed\n"); goto error; -- cgit 1.2.3-korg