From ca4a155783a7e7ca877b6043d64027444e7a187f Mon Sep 17 00:00:00 2001 From: Wenzhuo Lu Date: Thu, 24 Mar 2016 15:07:45 +0800 Subject: [PATCH] ixgbe: fix PF promiscuous mode after VF closed There's an issue reported. In the scenario DPDK PF + DPDK VF, if the VF port is closed, PF port cannot receive packets. I found at that time the promicuous mode is disabled on the PF port. But it should be enabled. When VF port is closed, it will send a message to its PF port to reset it. During this, PF port will also reset its own promicuous mode. Which promiscuous mode should be set depends on the parameter stored in the device data. In the function set_rx_mode, the pointer of device data points to the wrong address. So, the promiscuous mode is wrong. Fixes: 00e30184daa0 ("ixgbe: add PF support") Signed-off-by: Wenzhuo Lu Reported-by: Bernard Iremonger Acked-by: Jingjing Wu --- drivers/net/ixgbe/ixgbe_pf.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/drivers/net/ixgbe/ixgbe_pf.c b/drivers/net/ixgbe/ixgbe_pf.c index b854c72e53..a54034346d 100644 --- a/drivers/net/ixgbe/ixgbe_pf.c +++ b/drivers/net/ixgbe/ixgbe_pf.c @@ -312,8 +312,7 @@ int ixgbe_pf_host_configure(struct rte_eth_dev *eth_dev) static void set_rx_mode(struct rte_eth_dev *dev) { - struct rte_eth_dev_data *dev_data = - (struct rte_eth_dev_data*)dev->data->dev_private; + struct rte_eth_dev_data *dev_data = dev->data; struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private); u32 fctrl, vmolr = IXGBE_VMOLR_BAM | IXGBE_VMOLR_AUPE; uint16_t vfn = dev_num_vf(dev); -- 2.20.1